RadeonSI Primitive Culling Lands In Mesa 19.2
The past few months AMD's Marek Olšák has been working on primitive culling support for the RadeonSI Gallium3D driver and last week that code was merged into the Mesa 19.2 development code.
Marek has been working on primitive culling via asynchronous compute prior to the vertex shader process to eliminate geometry that ends up being invisible. Marek found that this functionality helps in workloads like the workstation ParaView software we use as part of our OpenGL test suite.
Benchmarks we did back in February did see big gains in ParaView but for common Linux OpenGL games there wasn't much of a difference. However, with this latest code now in Mesa 19.2-devel, I'll be running more benchmarks soon.
The code for culling primitives with async compute for large draw calls ends up being more than two thousand lines of new code. The primitive discard functionality can be toggled with AMD_DEBUG= and values of alwayspd/pd/nopd.
Marek has been working on primitive culling via asynchronous compute prior to the vertex shader process to eliminate geometry that ends up being invisible. Marek found that this functionality helps in workloads like the workstation ParaView software we use as part of our OpenGL test suite.
Benchmarks we did back in February did see big gains in ParaView but for common Linux OpenGL games there wasn't much of a difference. However, with this latest code now in Mesa 19.2-devel, I'll be running more benchmarks soon.
The code for culling primitives with async compute for large draw calls ends up being more than two thousand lines of new code. The primitive discard functionality can be toggled with AMD_DEBUG= and values of alwayspd/pd/nopd.
25 Comments