Mesa Git Lands RadeonSI 32-bit Pointers Support

Written by Michael Larabel in Mesa on 17 February 2018 at 11:53 AM EST. 4 Comments
MESA
At the start of the new year Marek Olšák of AMD posted a set of patches for 32-bit GPU pointers in RadeonSI. That work has now landed in mainline Mesa Git.

The function of the RadeonSI Gallium3D driver adding this 32-bit pointers support would be freeing up some SGPR registers. In the comments to that article Marek noted, "32-bit pointers will only be used internally by the driver for passing pointers to shaders. Older GCN has 64 bytes (and Vega has 128 bytes) of shader input storage. 32-bit pointers will help use that storage more effectively. For example, in Vulkan, the pointers typically point to descriptor pools. In OpenGL, the pointers point to texture/UBO/TBO/SSBO/etc. descriptor lists...32-bit pointers are necessary for decreasing the number of used user data SGPRs on AMD GCN. It's an internal driver micro-optimization that can help all applications."

Overnight landing in Mesa Git was the 32-bit pointers for user data SGPRs and the related code for 32-bit VM allocations in the Radeon winsys and other necessary changes.

It will be interesting to see if this has any real-world impact on the performance for freeing up some scalar general purpose registers (SGPRs). This change is in Git for Mesa 18.1.
Related News
About The Author
Michael Larabel

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, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week