anv: fixup physical device properties of fragment shading rate

We've only enabled the extension on Gfx11+ so no need to care about
prior values.

Also fixup values of (min|max)FragmentShadingRateAttachmentTexelSize.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 231651fd89 ("anv: implement VK_KHR_fragment_shading_rate")
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10607>
This commit is contained in:
Lionel Landwerlin 2021-05-04 09:46:08 +03:00
parent 1bbbdfe590
commit 790ff1ceac

View file

@ -2218,43 +2218,27 @@ void anv_GetPhysicalDeviceProperties2(
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR: { case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR: {
VkPhysicalDeviceFragmentShadingRatePropertiesKHR *props = VkPhysicalDeviceFragmentShadingRatePropertiesKHR *props =
(VkPhysicalDeviceFragmentShadingRatePropertiesKHR *)ext; (VkPhysicalDeviceFragmentShadingRatePropertiesKHR *)ext;
if (pdevice->info.ver < 11) { /* Those must be 0 if attachmentFragmentShadingRate is not
props->minFragmentShadingRateAttachmentTexelSize = (VkExtent2D) { 0, 0 }; * supported.
props->maxFragmentShadingRateAttachmentTexelSize = (VkExtent2D) { 0, 0 }; */
props->maxFragmentShadingRateAttachmentTexelSizeAspectRatio = 0; props->minFragmentShadingRateAttachmentTexelSize = (VkExtent2D) { 0, 0 };
props->primitiveFragmentShadingRateWithMultipleViewports = false; props->maxFragmentShadingRateAttachmentTexelSize = (VkExtent2D) { 0, 0 };
props->layeredShadingRateAttachments = false; props->maxFragmentShadingRateAttachmentTexelSizeAspectRatio = 0;
props->fragmentShadingRateNonTrivialCombinerOps = true;
props->maxFragmentSize = (VkExtent2D) { 1, 1 }; props->primitiveFragmentShadingRateWithMultipleViewports = pdevice->info.ver >= 12;
props->maxFragmentSizeAspectRatio = 1; props->layeredShadingRateAttachments = false;
props->maxFragmentShadingRateCoverageSamples = 0; props->fragmentShadingRateNonTrivialCombinerOps = true;
props->maxFragmentShadingRateRasterizationSamples = 0; props->maxFragmentSize = (VkExtent2D) { 4, 4 };
props->fragmentShadingRateWithShaderDepthStencilWrites = false; props->maxFragmentSizeAspectRatio = 4;
props->fragmentShadingRateWithSampleMask = false; props->maxFragmentShadingRateCoverageSamples = 4 * 4;
props->fragmentShadingRateWithShaderSampleMask = false; props->maxFragmentShadingRateRasterizationSamples = VK_SAMPLE_COUNT_16_BIT;
props->fragmentShadingRateWithConservativeRasterization = true; props->fragmentShadingRateWithShaderDepthStencilWrites = false;
props->fragmentShadingRateWithFragmentShaderInterlock = false; props->fragmentShadingRateWithSampleMask = true;
props->fragmentShadingRateWithCustomSampleLocations = false; props->fragmentShadingRateWithShaderSampleMask = false;
props->fragmentShadingRateStrictMultiplyCombiner = false; props->fragmentShadingRateWithConservativeRasterization = true;
} else { props->fragmentShadingRateWithFragmentShaderInterlock = true;
props->minFragmentShadingRateAttachmentTexelSize = (VkExtent2D) { 1, 1 }; props->fragmentShadingRateWithCustomSampleLocations = true;
props->maxFragmentShadingRateAttachmentTexelSize = (VkExtent2D) { 4, 4 }; props->fragmentShadingRateStrictMultiplyCombiner = false;
props->maxFragmentShadingRateAttachmentTexelSizeAspectRatio = 0;
props->primitiveFragmentShadingRateWithMultipleViewports = pdevice->info.ver >= 12;
props->layeredShadingRateAttachments = false;
props->fragmentShadingRateNonTrivialCombinerOps = true;
props->maxFragmentSize = (VkExtent2D) { 4, 4 };
props->maxFragmentSizeAspectRatio = 4;
props->maxFragmentShadingRateCoverageSamples = 4 * 4;
props->maxFragmentShadingRateRasterizationSamples = VK_SAMPLE_COUNT_16_BIT;
props->fragmentShadingRateWithShaderDepthStencilWrites = false;
props->fragmentShadingRateWithSampleMask = true;
props->fragmentShadingRateWithShaderSampleMask = false;
props->fragmentShadingRateWithConservativeRasterization = true;
props->fragmentShadingRateWithFragmentShaderInterlock = true;
props->fragmentShadingRateWithCustomSampleLocations = true;
props->fragmentShadingRateStrictMultiplyCombiner = false;
}
break; break;
} }