4 ms·
Huh, I always thought tilers re-ran their vertex shaders multiple times -- once with position-only to do binning, and then again when computing for all attribut
by Jasper_ 4y ago
Huh, I always thought tilers re-ran their vertex shaders multiple times -- once with position-only to do binning, and then again when computing for all attributes with each tile; that's what the "forward tilers" like Adreno/Mali do. That's crazy they dump all geometry to main memory rather than keeping it in pipe. It explains why geometry is more of a limit on AGX/PVR than Adreno/Mali.
- atq2119 4y agoI was under that impression as well. If they write out all attributes, what is really the remaining difference to a traditional immediate more renderer? Nvidia reportedly has vertex attributes going through memory for many generations already (and they are at least partially tiled...). I suppose the difference is whether the render target lives in the "SM" and is explicitly loaded and flushed (by a shader, no less!) or whether it lives in a separate hardware block that acts as a cache.
- Jasper_ 4y agoNV has vertex attributes "in-pipe" (hence mesh shaders), and the appearance of a tiler is a misread, it's just a change to the macro-rasterizer about which quads get dispatched first, it's not a true tiler. The big difference is the end of the pipe, as mentioned; whether you have ROPs or whether your shader cores load/store from a framebuffer segment. Basically, whether or not framebuffer clears are expensive (assuming no fast-clear cheats), or free.
- pocak 4y agoThat's what I thought, too, until I saw ARM's Hot Chips 2016 slides. Page 24 shows that they write transformed positions to RAM, and later write varyings to RAM. That's for Bifrost, but it's implied Midgard is the same, except it doesn't filter out vertices from culled primitives. That makes me wonder whether the other GPUs with position-only shading - Intel and Adreno - do the same. As for PowerVR, I've never seen them described as position-only shaders - I think they've always done full vertex processing upfront. edit: slides are at https://old.hotchips.org/wp-content/uploads/hc_archives/hc28/HC28.22-Monday-Epub/HC28.22.10-GPU-HPC-Epub/HC28.22.110-Bifrost-JemDavies-ARM-v04-9.pdf https://old.hotchips.org/wp-content/uploads/hc_archives/hc28...
- Jasper_ 4y agoMali's slides here still show them doing two vertex shading passes, one for positions, and again for other attributes. I'm guessing "memory" here means high-performance in-unit memory like TMEM, rather than a full frame's worth of data, but I'm not sure!