TGSI On-Disk Shader Cache For Mesa: Caching Comes To R600g/RadeonSI
Timothy Arceri of Collabora has sent out his latest patches to Mesa in regards to the ongoing work for shader caches. The 40 patches published over night do benefit RadeonSI and R600g.
Up to now Arceri's GLSL shader cache has been about having a cache of the compiled shaders on-disk for the hardware being targeted and that focus up until recently was just for the Intel i965 driver. The shader cache effort being worked on now is adding support for caching of TGSI (Gallium3D's IR) for drivers with RadeonSI caching now on his radar. With the TGSI effort, basically allowing an on-disk cache of the intermediate representation that is then consumed by the Gallium3D hardware drivers for generating their hardware-specific code.
Left out of these patches is the cache support within the RadeonSI back-end, similar to the i965 shader cache back-end, for caching the hardware-specific shader code. He's going to post that patch once a chance is made to LLVM for being able to query the version at runtime. Arceri commented about the RadeonSI performance, "Without the radeonsi patch min fps still goes up around 4 fps in the Shadow of Mordor benchmark (although the stalls are still very noticeable)."
The TGSI cache may help the R600g driver, but Arceri hasn't been able to test it. Other Gallium3D drivers like Nouveau that consume TGSI IR should also be able to enable that cache support too. The TGSI caching code was added to Gallium3D's Mesa OpenGL state tracker -- thus the actual G3D wiring is quite small.
The series can be found on Mesa-dev. Hopefully all of this caching work will come to fruition for Mesa 17.1. The more profound work for RadeonSI gamers should be the back-end within the RadeonSI driver once Arceri is able to get past the LLVM version issue.
Up to now Arceri's GLSL shader cache has been about having a cache of the compiled shaders on-disk for the hardware being targeted and that focus up until recently was just for the Intel i965 driver. The shader cache effort being worked on now is adding support for caching of TGSI (Gallium3D's IR) for drivers with RadeonSI caching now on his radar. With the TGSI effort, basically allowing an on-disk cache of the intermediate representation that is then consumed by the Gallium3D hardware drivers for generating their hardware-specific code.
Left out of these patches is the cache support within the RadeonSI back-end, similar to the i965 shader cache back-end, for caching the hardware-specific shader code. He's going to post that patch once a chance is made to LLVM for being able to query the version at runtime. Arceri commented about the RadeonSI performance, "Without the radeonsi patch min fps still goes up around 4 fps in the Shadow of Mordor benchmark (although the stalls are still very noticeable)."
The TGSI cache may help the R600g driver, but Arceri hasn't been able to test it. Other Gallium3D drivers like Nouveau that consume TGSI IR should also be able to enable that cache support too. The TGSI caching code was added to Gallium3D's Mesa OpenGL state tracker -- thus the actual G3D wiring is quite small.
The series can be found on Mesa-dev. Hopefully all of this caching work will come to fruition for Mesa 17.1. The more profound work for RadeonSI gamers should be the back-end within the RadeonSI driver once Arceri is able to get past the LLVM version issue.
14 Comments