Hacker News new | ask | show | jobs
by aappleby 1511 days ago
Very rough guesstimates:

200000 * 200 * 2 = 80M tris/sec

200000 * 200 * 32x32px = 40 gpix/sec (if no occlusion culling)

Neither of those numbers are particularly huge for modern GPUs.

I'd wager that a compute shader + mesh shader based version of this could hit 2M sprites at 200 fps, though at some point we'd have to argue about what counts as "cheating" - if I do a clustered occlusion query that results in my pipeline discarding an invisible batch of 128 sprites, does that still count as "rendering" them?

3 comments

This demo program is obviously FPS limited in some other way - it's locked at 200fps from the start. The true limits are higher than what is shown.
I've been able to reach 5M particles at 60 fps on a very naive (as a GPU noob) implementation that uses Qt's RHI, which has some unnecessary copying and safeties, with compute + vertex + fragment.
writing 100% of the code on the gpu can render 10,000,000 triangles per frame at 60fps ... even in the web browser! (because there's no javascript running) https://www.youtube.com/watch?v=UNX4PR92BpI

but yes, that's cheating, since it's impractical to work with