radv: expose R8_UINT as the only supported format for VRS attachments
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Fri, 9 Apr 2021 11:58:15 +0000 (13:58 +0200)
committerMarge Bot <eric+marge@anholt.net>
Wed, 14 Apr 2021 09:31:13 +0000 (09:31 +0000)
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10187>

src/amd/vulkan/radv_formats.c

index 5770e27..a120224 100644 (file)
@@ -785,6 +785,17 @@ radv_physical_device_get_format_properties(struct radv_physical_device *physical
    if (vk_format_is_compressed(format))
       linear = 0;
 
+   /* From the Vulkan spec 1.2.163:
+    *
+    * "VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR must be supported for the
+    *  following formats if the attachmentFragmentShadingRate feature is supported:"
+    *
+    * - VK_FORMAT_R8_UINT
+    */
+   if (format == VK_FORMAT_R8_UINT) {
+      tiled |= VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR;
+   }
+
    out_properties->linearTilingFeatures = linear;
    out_properties->optimalTilingFeatures = tiled;
    out_properties->bufferFeatures = buffer;