radv: force enable VK_AMD_shader_ballot for Wolfenstein Youngblood
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Tue, 20 Aug 2019 14:50:57 +0000 (16:50 +0200)
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>
Wed, 21 Aug 2019 13:14:29 +0000 (15:14 +0200)
This gives a nice boost, +20% at this time on my Vega 56. Shader
ballot should be enabled by default at some point but it reduces
performance a bit (-6%) with Wolfeinstein II. Enable it only for
Youngblood at the moment, like what we did for Talos in the past.

As a bonus point, it gets rid of some minor artifacts that only
happens when ballot is disabled for some reasons.

Cc: 19.2 <mesa-stable@lists.freedesktop.org
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
src/amd/vulkan/radv_device.c

index f77430d55be3d7bbac85ea2f575c1c41389f217f..7101567b66a2120d5002cf0a750309776f18a064 100644 (file)
@@ -555,6 +555,14 @@ radv_handle_per_app_options(struct radv_instance *instance,
                 */
                if (HAVE_LLVM < 0x900)
                        instance->debug_flags |= RADV_DEBUG_NO_LOAD_STORE_OPT;
+       } else if (!strcmp(name, "Wolfenstein: Youngblood")) {
+               if (!(instance->debug_flags & RADV_DEBUG_NO_SHADER_BALLOT)) {
+                       /* Force enable VK_AMD_shader_ballot because it looks
+                        * safe and it gives a nice boost (+20% on Vega 56 at
+                        * this time).
+                        */
+                       instance->perftest_flags |= RADV_PERFTEST_SHADER_BALLOT;
+               }
        }
 }