I’m using pipeline statistics queries to get shader invocation counts for a simple project. The vertex shader counts match my expectations (around 20k). But I’m getting some surprising results for fragment shader invocations. Theoretically, they should be around 550k. Practically, I tried them with 3 GPUs and am getting:
- NVIDIA GeForce MX250: ~550k
- Intel Iris Plus: ~650k
- AMD Vega 64: ~1.3M
Is there some way to figure out why the difference?
I’ve read about “helper fragment shader invocations”, but could there be that many of them to explain more than double the number of total invocations?
I’ve also thought of multisampling, but as far as I can tell, the AMD drivers are set to “Application Settings” and I’m not doing anything in my code to request multisampling. Is it possible that the driver does it anyway? Is there some way to tell?
Context: the scene is relatively simple: a grid of 2D characters and background gradients. I’m measuring the invocations to check the effects of some optimizations. I wouldn’t compare numbers across devices anyway, but the differences made me curious.