From e4f67f2106768eeb34ea40ac73a298e19fe5969f Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Wed, 2 Oct 2024 18:08:45 +0200 Subject: [PATCH] radv: do not expose NV DGC extensions on GFX6-7 These extensions were experimental and only exposed with radv_dgc=true for vkd3d-proton. Only two games require DGC (Starfield and Halo Infinite) and both also require sparse support which GFX6-7 can't support. GFX6-7 support is also mostly broken because IB2 can't be used when indirect draw packets are used and RADV uses that to preprocess IBO. Also with the EXT, indirect draws are more common and can't be supported. Everything could work with a bunch of time and workarounds but I don't think it's worth the effort given there is no real use. Cc: mesa-stable Signed-off-by: Samuel Pitoiset Part-of: --- src/amd/vulkan/radv_physical_device.c | 4 ++-- src/util/driconf.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/amd/vulkan/radv_physical_device.c b/src/amd/vulkan/radv_physical_device.c index 0c252ddee12..3776f2676a3 100644 --- a/src/amd/vulkan/radv_physical_device.c +++ b/src/amd/vulkan/radv_physical_device.c @@ -747,8 +747,8 @@ radv_physical_device_get_supported_extensions(const struct radv_physical_device .INTEL_shader_integer_functions2 = true, .MESA_image_alignment_control = pdev->info.gfx_level >= GFX9 && pdev->info.gfx_level <= GFX11_5, .NV_compute_shader_derivatives = true, - .NV_device_generated_commands = instance->drirc.enable_dgc, - .NV_device_generated_commands_compute = instance->drirc.enable_dgc, + .NV_device_generated_commands = pdev->info.gfx_level >= GFX8 && instance->drirc.enable_dgc, + .NV_device_generated_commands_compute = pdev->info.gfx_level >= GFX8 && instance->drirc.enable_dgc, /* Undocumented extension purely for vkd3d-proton. This check is to prevent anyone else from * using it. */ diff --git a/src/util/driconf.h b/src/util/driconf.h index a5d5086c8af..0886119f48e 100644 --- a/src/util/driconf.h +++ b/src/util/driconf.h @@ -694,7 +694,7 @@ #define DRI_CONF_RADV_DGC(def) \ DRI_CONF_OPT_B(radv_dgc, def, \ - "Expose an experimental implementation of VK_NV_device_generated_commands") + "Expose an experimental implementation of VK_NV_device_generated_commands on GFX8+") #define DRI_CONF_RADV_FLUSH_BEFORE_QUERY_COPY(def) \ DRI_CONF_OPT_B( \