HiZ Improvement For Intel Mesa Driver Has Possible Small Performance Gains
Mesa Git continues to be an exciting place to live for open-source GPU driver fans.
Landing Tuesday in Mesa Git was a HiZ auxiliary buffer support for Skylake "Gen 9" hardware and that was followed by support for sampling with HiZ, again something for Skylake and newer.
With this HiZ-based sampling, performance improvements can be expected in some cases. The Git commit notes of gains between 0.4~2.2% for some OpenGL tests. While their Vulkan driver has taken much focus lately along with completing OpenGL 4.5 compliance, great to see the Intel Mesa driver continuing to receive performance optimizations.
While not Intel-related at all, but as another small improvement yesterday in Mesa Git to mention is using vectorized calculations for fetch in the Gallium3D draw code. As explained by VMware developer Roland Scheidegger, "Instead of doing all the math with scalars, use vectors...Instanced fetch however stays roughly the same as before, except that no longer the same element is fetched multiple times (I've seen a reduction of ~3 times in main shader loop size due to apparently llvm not being able to deduce it's really all the same with a couple instanced elements)...The generated shaders are smaller and faster to compile (not entirely sure about execution speed, but generally unless there's just single vertices to handle I would expect it to be faster - there's more opportunities for future improvements by using soa fetch)."
Landing Tuesday in Mesa Git was a HiZ auxiliary buffer support for Skylake "Gen 9" hardware and that was followed by support for sampling with HiZ, again something for Skylake and newer.
With this HiZ-based sampling, performance improvements can be expected in some cases. The Git commit notes of gains between 0.4~2.2% for some OpenGL tests. While their Vulkan driver has taken much focus lately along with completing OpenGL 4.5 compliance, great to see the Intel Mesa driver continuing to receive performance optimizations.
While not Intel-related at all, but as another small improvement yesterday in Mesa Git to mention is using vectorized calculations for fetch in the Gallium3D draw code. As explained by VMware developer Roland Scheidegger, "Instead of doing all the math with scalars, use vectors...Instanced fetch however stays roughly the same as before, except that no longer the same element is fetched multiple times (I've seen a reduction of ~3 times in main shader loop size due to apparently llvm not being able to deduce it's really all the same with a couple instanced elements)...The generated shaders are smaller and faster to compile (not entirely sure about execution speed, but generally unless there's just single vertices to handle I would expect it to be faster - there's more opportunities for future improvements by using soa fetch)."
1 Comment