From b392942486a31dbe7e2c864be51799506e9fc3a6 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Tue, 29 Nov 2022 12:00:41 +0100 Subject: [PATCH] radv: disable VRS entirely on GFX11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Based on registers, VRS changed a lot and it's unclear how to program it. This disable VK_KHR_fragment_shading_rate, VRS flat shading and RADV_FORCE_VRS. Cc: 22.3 mesa-stable Signed-off-by: Samuel Pitoiset Reviewed-by: Timur Kristóf Reviewed-by: Bas Nieuwenhuizen Part-of: (cherry picked from commit 80072df8246f580a4c7d31fb82a9f746c3e1ba8d) --- .pick_status.json | 2 +- src/amd/vulkan/radv_device.c | 4 ++-- src/amd/vulkan/radv_pipeline.c | 3 +++ 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index b8c57706eaf..414ed448de8 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -112,7 +112,7 @@ "description": "radv: disable VRS entirely on GFX11", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null }, diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c index b1e816f3dfb..9b26685ac92 100644 --- a/src/amd/vulkan/radv_device.c +++ b/src/amd/vulkan/radv_device.c @@ -489,7 +489,7 @@ radv_physical_device_get_supported_extensions(const struct radv_physical_device .KHR_external_semaphore = true, .KHR_external_semaphore_fd = true, .KHR_format_feature_flags2 = true, - .KHR_fragment_shading_rate = device->rad_info.gfx_level >= GFX10_3, + .KHR_fragment_shading_rate = device->rad_info.gfx_level == GFX10_3, .KHR_get_memory_requirements2 = true, .KHR_global_priority = true, .KHR_image_format_list = true, @@ -3816,7 +3816,7 @@ radv_CreateDevice(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo *pCr } } - if (device->physical_device->rad_info.gfx_level >= GFX10_3) { + if (device->physical_device->rad_info.gfx_level == GFX10_3) { if (getenv("RADV_FORCE_VRS_CONFIG_FILE")) { const char *file = radv_get_force_vrs_config_file(); diff --git a/src/amd/vulkan/radv_pipeline.c b/src/amd/vulkan/radv_pipeline.c index d5c5b03743a..46b37e536df 100644 --- a/src/amd/vulkan/radv_pipeline.c +++ b/src/amd/vulkan/radv_pipeline.c @@ -5697,6 +5697,9 @@ gfx103_pipeline_vrs_coarse_shading(const struct radv_graphics_pipeline *pipeline struct radv_shader *ps = pipeline->base.shaders[MESA_SHADER_FRAGMENT]; struct radv_device *device = pipeline->base.device; + if (device->physical_device->rad_info.gfx_level != GFX10_3) + return false; + if (device->instance->debug_flags & RADV_DEBUG_NO_VRS_FLAT_SHADING) return false;