RadeonSI Gets Patches To Finally Tap The Parallel Shader Compile Extensions
Written by Michael Larabel in Radeon on 25 February 2019 at 01:55 PM EST. 7 Comments
Marek Olšák of AMD has published a set of patches today plumbing in support for Mesa/Gallium3D with the KHR_parallel_shader_compile and ARB_parallel_shader_compile while enabling these parallel shader compile extensions for the RadeonSI Gallium3D OpenGL driver.

KHR_parallel_shader_compile is the OpenGL 4.6 extension allowing the application / game engine to offer a hint to the driver with the maximum number of CPU threads it would recommend for compiling shaders and also a means to find out if the shader compilation process has finished. ARB_parallel_shader_compile is the former, pre-KHR ratified version of this extension that offers the same functionality.

NVIDIA's Linux driver has offered this parallel shader compile functionality since early 2017. In April 2017 there were some Mesa patches working on the ARB_parallel_shader_compile support but it was never fully vetted and merged.

Now Marek has taken this on as his latest RadeonSI driver performance optimizing effort. There are 7 patches laying the groundwork into the common Mesa/Gallium3D code and filling in the necessary bits for the RadeonSI driver. So hopefully this work will be reviewed and merged in time for the Mesa 19.1 debut next quarter. Hopefully the Intel i965/Iris and Nouveau drivers will also follow with this parallel_shader_compile support.
Related News
About The Author
Author picture

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter or contacted via MichaelLarabel.com.

Popular News This Week