radv: disable VRS entirely on GFX11
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Tue, 29 Nov 2022 11:00:41 +0000 (12:00 +0100)
committerEric Engestrom <eric@engestrom.ch>
Wed, 30 Nov 2022 21:12:44 +0000 (21:12 +0000)
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 <samuel.pitoiset@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20054>
(cherry picked from commit 80072df8246f580a4c7d31fb82a9f746c3e1ba8d)

.pick_status.json
src/amd/vulkan/radv_device.c
src/amd/vulkan/radv_pipeline.c

index b8c5770..414ed44 100644 (file)
         "description": "radv: disable VRS entirely on GFX11",
         "nominated": true,
         "nomination_type": 0,
-        "resolution": 0,
+        "resolution": 1,
         "main_sha": null,
         "because_sha": null
     },
index b1e816f..9b26685 100644 (file)
@@ -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();
 
index d5c5b03..46b37e5 100644 (file)
@@ -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;