radv: advertise attachmentFragmentShadingRate on GFX10.3
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Tue, 15 Dec 2020 10:54:31 +0000 (11:54 +0100)
committerMarge Bot <eric+marge@anholt.net>
Wed, 14 Apr 2021 09:31:13 +0000 (09:31 +0000)
Layered VRS attachments is for later.
The CTS failures are similar to the existing ones, I will investigate
soon.

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>

docs/relnotes/new_features.txt
src/amd/ci/deqp-radv-sienna_cichlid-aco-fails.txt
src/amd/vulkan/radv_device.c

index de628d6..680ae66 100644 (file)
@@ -8,3 +8,4 @@ GL_ARB_texture_filter_minmax on nvc0 (gm200+)
 GL_ARB_post_depth_coverage on zink
 VK_KHR_copy_commands2 on lavapipe
 lavapipe exposes Vulkan 1.1
+VRS attachment on RADV
index c43e779..d21e84f 100644 (file)
@@ -130,3 +130,27 @@ dEQP-VK.fragment_shading_rate.fragstencil.dynamic.noattachment.shaderrate.keep.k
 dEQP-VK.fragment_shading_rate.fragstencil.dynamic.noattachment.shaderrate.keep.keep.256x256.samples8.vs,Fail
 dEQP-VK.fragment_shading_rate.fragstencil.dynamic.noattachment.shaderrate.replace.keep.151x431.samples8.vs,Fail
 dEQP-VK.fragment_shading_rate.fragstencil.dynamic.noattachment.shaderrate.replace.keep.256x256.samples8.vs,Fail
+dEQP-VK.fragment_shading_rate.fragstencil.dynamic.noattachment.noshaderrate.keep.replace.151x431.samples8.vs,Fail
+dEQP-VK.fragment_shading_rate.fragstencil.dynamic.noattachment.noshaderrate.keep.replace.256x256.samples8.vs,Fail
+dEQP-VK.fragment_shading_rate.fragstencil.dynamic.noattachment.noshaderrate.replace.replace.151x431.samples8.vs,Fail
+dEQP-VK.fragment_shading_rate.fragstencil.dynamic.noattachment.noshaderrate.replace.replace.256x256.samples8.vs,Fail
+dEQP-VK.fragment_shading_rate.fragstencil.dynamic.noattachment.shaderrate.keep.replace.151x431.samples8.vs,Fail
+dEQP-VK.fragment_shading_rate.fragstencil.dynamic.noattachment.shaderrate.replace.replace.256x256.samples8.vs,Fail
+dEQP-VK.fragment_shading_rate.fragstencil.dynamic.noattachment.shaderrate.keep.replace.256x256.samples8.vs,Fail
+dEQP-VK.fragment_shading_rate.fragstencil.dynamic.noattachment.shaderrate.replace.replace.151x431.samples8.vs,Fail
+dEQP-VK.fragment_shading_rate.fragstencil.dynamic.attachment.noshaderrate.keep.keep.151x431.samples8.vs,Fail
+dEQP-VK.fragment_shading_rate.fragstencil.dynamic.attachment.noshaderrate.keep.keep.256x256.samples8.vs,Fail
+dEQP-VK.fragment_shading_rate.fragstencil.dynamic.attachment.noshaderrate.replace.keep.151x431.samples8.vs,Fail
+dEQP-VK.fragment_shading_rate.fragstencil.dynamic.attachment.noshaderrate.replace.keep.256x256.samples8.vs,Fail
+dEQP-VK.fragment_shading_rate.fragstencil.dynamic.attachment.shaderrate.keep.keep.151x431.samples8.vs,Fail
+dEQP-VK.fragment_shading_rate.fragstencil.dynamic.attachment.shaderrate.keep.keep.256x256.samples8.vs,Fail
+dEQP-VK.fragment_shading_rate.fragstencil.dynamic.attachment.shaderrate.replace.keep.151x431.samples8.vs,Fail
+dEQP-VK.fragment_shading_rate.fragstencil.dynamic.attachment.shaderrate.replace.keep.256x256.samples8.vs,Fail
+dEQP-VK.fragment_shading_rate.fragstencil.dynamic.attachment.noshaderrate.keep.replace.256x256.samples8.vs,Fail
+dEQP-VK.fragment_shading_rate.fragstencil.dynamic.attachment.noshaderrate.replace.replace.151x431.samples8.vs,Fail
+dEQP-VK.fragment_shading_rate.fragstencil.dynamic.attachment.noshaderrate.replace.replace.256x256.samples8.vs,Fail
+dEQP-VK.fragment_shading_rate.fragstencil.dynamic.attachment.shaderrate.keep.replace.151x431.samples8.vs,Fail
+dEQP-VK.fragment_shading_rate.fragstencil.dynamic.attachment.shaderrate.replace.replace.151x431.samples8.vs,Fail
+dEQP-VK.fragment_shading_rate.fragstencil.dynamic.attachment.shaderrate.keep.replace.256x256.samples8.vs,Fail
+dEQP-VK.fragment_shading_rate.fragstencil.dynamic.attachment.noshaderrate.keep.replace.151x431.samples8.vsœ
+dEQP-VK.fragment_shading_rate.fragstencil.dynamic.attachment.shaderrate.replace.replace.256x256.samples8.vs
index 7f2cd74..ed11e27 100644 (file)
@@ -1621,7 +1621,7 @@ radv_GetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice,
             (VkPhysicalDeviceFragmentShadingRateFeaturesKHR *)ext;
          features->pipelineFragmentShadingRate = true;
          features->primitiveFragmentShadingRate = true;
-         features->attachmentFragmentShadingRate = false; /* TODO */
+         features->attachmentFragmentShadingRate = true;
          break;
       }
       case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR: {
@@ -2285,11 +2285,11 @@ radv_GetPhysicalDeviceProperties2(VkPhysicalDevice physicalDevice,
       case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR: {
          VkPhysicalDeviceFragmentShadingRatePropertiesKHR *props =
             (VkPhysicalDeviceFragmentShadingRatePropertiesKHR *)ext;
-         props->minFragmentShadingRateAttachmentTexelSize = (VkExtent2D){0, 0};
-         props->maxFragmentShadingRateAttachmentTexelSize = (VkExtent2D){0, 0};
-         props->maxFragmentShadingRateAttachmentTexelSizeAspectRatio = 0;
+         props->minFragmentShadingRateAttachmentTexelSize = (VkExtent2D){8, 8};
+         props->maxFragmentShadingRateAttachmentTexelSize = (VkExtent2D){8, 8};
+         props->maxFragmentShadingRateAttachmentTexelSizeAspectRatio = 1;
          props->primitiveFragmentShadingRateWithMultipleViewports = true;
-         props->layeredShadingRateAttachments = false;
+         props->layeredShadingRateAttachments = false; /* TODO */
          props->fragmentShadingRateNonTrivialCombinerOps = true;
          props->maxFragmentSize = (VkExtent2D){2, 2};
          props->maxFragmentSizeAspectRatio = 1;