David Airlie Exploring MRT Performance Optimization For RADV
When comparing differences between the RADV Vulkan driver and the AMDGPU-PRO still-proprietary Vulkan driver, David Airlie has uncovered a new area to explore for potentially getting closer performance out of the open-source driver.
Airlie has been exploring the performance of MRT, or Multiple Render Targets. MRT is rendering images to multiple render target textures at once and can be used commonly for deferred shading/rendering. Airlie noted some "magic" happening within the AMDGPU-PRO driver and realized it could be a area of performance improvement for not only RADV but also RadeonSI. He explains the technical bits in this mailing list post and these IRC logs.
He's since come up with an experimental patch. In MRT rendering when offsetting each image by 0x3800, the performance is much better. When setting this magic number in RADV, a deferred rendering Vulkan demo goes from 800 FPS to 1150 FPS on a RX 480. But the reasoning behind this MRT offset still isn't clear and Airlie is hoping the AMD developers will be able to shed some light on the matter.
Airlie has been exploring the performance of MRT, or Multiple Render Targets. MRT is rendering images to multiple render target textures at once and can be used commonly for deferred shading/rendering. Airlie noted some "magic" happening within the AMDGPU-PRO driver and realized it could be a area of performance improvement for not only RADV but also RadeonSI. He explains the technical bits in this mailing list post and these IRC logs.
He's since come up with an experimental patch. In MRT rendering when offsetting each image by 0x3800, the performance is much better. When setting this magic number in RADV, a deferred rendering Vulkan demo goes from 800 FPS to 1150 FPS on a RX 480. But the reasoning behind this MRT offset still isn't clear and Airlie is hoping the AMD developers will be able to shed some light on the matter.
3 Comments