Here's an example of Bevy WebGL vs Bevy WebGPU:
I get 50 fps on 78k birds with WebGPU: https://bevyengine.org/examples-webgpu/stress-tests/bevymark...
I get 50 fps on 90k birds with WebGL: https://bevyengine.org/examples/stress-tests/bevymark/
So you test the difference between them with technically the same code.
(They can get 78k birds, which is way better than my triangles, because they batch 'em. I know 10k drawcalls doesn't seem good, but any 2024 computer can handle that load with ease.)
Older frameworks will get x10 better results , such as Kha (https://lemon07r.github.io/kha-html5-bunnymark/) or OpenFL (https://lemon07r.github.io/openfl-bunnymark/), but they run at lower res and this is a very CPU based benchmark, so I'm not gonna count them.
> be limited by the fill rate of your GPU
They're 10k triangles and they're not overlapping... There are no textures per se. No passes except the main one, with a 1080p render texture. No microtriangles. And I bet the shader is less than 0.25 ALU.
> at which point you should see roughly the same performance across all APIs.
Nah, ANGLE (OpenGL) does just fine. Unity as well.
> a lower GPU usage could actually suggest that you're bottlenecked by the CPU
No. I have yet to see a game on my computer that uses more than 0.5% of my CPU. Games are usually GPU bound.