VK_AMD_shader_ballot Support For RADV, Lets DOOM Use AMD-Optimized Code Path
Connor Abbott who has been working for Valve over the summer on the RADV Vulkan driver sent out one of his last patch series before going back to school: VK_AMD_shader_ballot for RADV. This extension paired with other work allows DOOM on Wine to run through an AMD-optimized Vulkan code path.
Connor has been working on VK_AMD_shader_ballot as the AMD-developed extension building off VK_EXT_shader_subgroup_ballot and VK_EXT_shader_subgroup_vote extensions. This ended up being a hairy extension to implement, but when VK_AMD_shader_ballot is present paired with some other mostly trivial AMD extensions, the DOOM game using Vulkan on Wine will use a different code path with shaders tuned for AMD hardware.
He hasn't yet tested these new code paths for DOOM to look at the performance impact, but RADV core developers Bas or David will likely be doing so in time. The AMD shader ballot support does depend upon some AMDGPU LLVM changes just merged into the SVN code for LLVM 6.0 (not the imminent 5.0 release). These 15 new patches also depend upon Connor's previous VK_EXT_shader_subgroup_vote and VK_EXT_shader_subgroup_ballot patches.
Connor is sadly going back to school this week so it will be the last of his major Mesa contributions for now, likely not until next summer again. But this nearly two thousand lines of new RADV code can be found via Mesa-dev for review.
Connor has been working on VK_AMD_shader_ballot as the AMD-developed extension building off VK_EXT_shader_subgroup_ballot and VK_EXT_shader_subgroup_vote extensions. This ended up being a hairy extension to implement, but when VK_AMD_shader_ballot is present paired with some other mostly trivial AMD extensions, the DOOM game using Vulkan on Wine will use a different code path with shaders tuned for AMD hardware.
He hasn't yet tested these new code paths for DOOM to look at the performance impact, but RADV core developers Bas or David will likely be doing so in time. The AMD shader ballot support does depend upon some AMDGPU LLVM changes just merged into the SVN code for LLVM 6.0 (not the imminent 5.0 release). These 15 new patches also depend upon Connor's previous VK_EXT_shader_subgroup_vote and VK_EXT_shader_subgroup_ballot patches.
Connor is sadly going back to school this week so it will be the last of his major Mesa contributions for now, likely not until next summer again. But this nearly two thousand lines of new RADV code can be found via Mesa-dev for review.
11 Comments