Last month Primitive binning support was added for Vega cards. This was supposed to enable performance on the Vega-based GPUs. Primitive binning was added with the announcement that it was tuned for Raven, not Vega. They don’t know for now how Vega will perform on it, hopefully not worse.
After a month it has become clear that shading binning operations is causing stability issues and more harm to the GPU, therefore the programming team at AMD has decided to disable the feature.
Marek Olšák, a well known independent contributor to open-source Radeon graphics drivers, has disabled primitive binning. He claimed that the driver implementation is known to decrease performance for some tests. They are currently not sure of the apps and benchmarks. They’re disabling the feature just to be safe.
The feature can be manually turned back with R600_DEBUG=dpbb, dfsm. Testing was done with newest AMD GPU DC Kernel code paired with Mesa 17.3. The testing results came with a number of stability issues from RadeonSI.
They tested Bioshock Infinite, Dota 2, Metro Last Light Redux, 4K HDMI settings etc. The RX Vega 64 primitive binning didn’t help or hurt the OpenGL tests being run. Even though the same feature gave performance increases in the Raven Ridge APUs.
But that’s how driver improvements are always like. They either give an increase in the performance of certain games, or they don’t. Officially the depth and stencil tests are to be executed after rasterization. Most triangles can be safely tested and rejected before the pixel shaders are run.
But it doesn’t stop there, hardware can also chunk the screen into tiles and stores a low res approximation of the depth and stencil buffer and test this buffer before hitting the full res buffer, to save a lot of bandwidth. Meaning the feature is there if it’s not doing any good, It will be disabled.
Let us know what you think about the Primitive binning support being disabled.