RadeonSI Disables SDMA For Polaris To Fix Corruption Bugs
For those plagued by OpenGL corruption issues with the RadeonSI driver on Polaris GPUs like the Radeon RX 580, System DMA (SDMA) support is now being disabled as a workaround.
There have been bug reports going back to at least last June and others more recent about in-game artifacts or other corruption issues within OpenGL programs on some games with Polaris discrete GPUs.
Users have observed that the AMD_DEBUG=nodma environment variable tends to workaround the issues, so now the default behavior of Mesa 20.0-devel (and queued for back-porting to Mesa 19.2 and 19.3) is disabling of SDMA support for Polaris / GFX8 AMD graphics hardware.
There are possible performance implications from disabling SDMA but we'll see if it materializes into any significant difference. Then again, GFX10/Navi with RadeonSI still has SDMA disabled too over random timeouts. Navi SDMA support was disabled by default fairly quickly in order to address hangs. For GFX9/Vega between these generations, SDMA copy support was added just last month but for discrete GPUs currently requires an environment variable to enable.
There have been bug reports going back to at least last June and others more recent about in-game artifacts or other corruption issues within OpenGL programs on some games with Polaris discrete GPUs.
Users have observed that the AMD_DEBUG=nodma environment variable tends to workaround the issues, so now the default behavior of Mesa 20.0-devel (and queued for back-porting to Mesa 19.2 and 19.3) is disabling of SDMA support for Polaris / GFX8 AMD graphics hardware.
There are possible performance implications from disabling SDMA but we'll see if it materializes into any significant difference. Then again, GFX10/Navi with RadeonSI still has SDMA disabled too over random timeouts. Navi SDMA support was disabled by default fairly quickly in order to address hangs. For GFX9/Vega between these generations, SDMA copy support was added just last month but for discrete GPUs currently requires an environment variable to enable.
25 Comments