Forgot to respond to this, sorry! The swaying is definitely the heaviest part, it's doing 3 vertices * 4 3D noise samples (base + detail, X and Z displacement) for every blade. I've used Godot's built-in noise textures in the past but they always had a considerable increase in load time so I was trying out the noise implementation here. It ran very poorly on my dad's Mac too, but his is absolutely ancient, so I was hoping it would be better on anything Apple silicon and later. Will definitely try and include quality settings in the future (and post-jam patch), and/or maybe just eat the file size cost of a baked texture.