Mesa (main): anv: fix feature/property/sizes reported for fragment shading rate
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Sat Jul 17 00:56:30 UTC 2021
Module: Mesa
Branch: main
Commit: d27f7fa1b334f799bcb75d185bf359a4c5091572
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=d27f7fa1b334f799bcb75d185bf359a4c5091572
Author: Iván Briano <ivan.briano at intel.com>
Date: Wed Jul 14 19:38:28 2021 -0700
anv: fix feature/property/sizes reported for fragment shading rate
Fixes: 790ff1ceac8 ("anv: fixup physical device properties of fragment shading rate")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11897>
---
src/intel/vulkan/anv_device.c | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c
index b31e9120022..c57a0321486 100644
--- a/src/intel/vulkan/anv_device.c
+++ b/src/intel/vulkan/anv_device.c
@@ -1519,7 +1519,9 @@ void anv_GetPhysicalDeviceFeatures2(
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR: {
VkPhysicalDeviceFragmentShadingRateFeaturesKHR *features =
(VkPhysicalDeviceFragmentShadingRateFeaturesKHR *)ext;
+ features->attachmentFragmentShadingRate = false;
features->pipelineFragmentShadingRate = true;
+ features->primitiveFragmentShadingRate = false;
break;
}
@@ -2321,12 +2323,12 @@ void anv_GetPhysicalDeviceProperties2(
props->maxFragmentShadingRateAttachmentTexelSize = (VkExtent2D) { 0, 0 };
props->maxFragmentShadingRateAttachmentTexelSizeAspectRatio = 0;
- props->primitiveFragmentShadingRateWithMultipleViewports = pdevice->info.ver >= 12;
+ props->primitiveFragmentShadingRateWithMultipleViewports = false;
props->layeredShadingRateAttachments = false;
- props->fragmentShadingRateNonTrivialCombinerOps = true;
+ props->fragmentShadingRateNonTrivialCombinerOps = false;
props->maxFragmentSize = (VkExtent2D) { 4, 4 };
props->maxFragmentSizeAspectRatio = 4;
- props->maxFragmentShadingRateCoverageSamples = 4 * 4;
+ props->maxFragmentShadingRateCoverageSamples = 4 * 4 * 16;
props->maxFragmentShadingRateRasterizationSamples = VK_SAMPLE_COUNT_16_BIT;
props->fragmentShadingRateWithShaderDepthStencilWrites = false;
props->fragmentShadingRateWithSampleMask = true;
@@ -4930,7 +4932,11 @@ VkResult anv_GetPhysicalDeviceFragmentShadingRatesKHR(
for (uint32_t x = 4; x >= 1; x /= 2) {
for (uint32_t y = 4; y >= 1; y /= 2) {
- append_rate(sample_counts, x, y);
+ /* For size {1, 1}, the sample count must be ~0 */
+ if (x == 1 && y == 1)
+ append_rate(~0, x, y);
+ else
+ append_rate(sample_counts, x, y);
}
}
More information about the mesa-commit
mailing list