summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRicardo Garcia <rgarcia@igalia.com>2023-02-23 16:03:25 +0100
committerPiotr Byszewski <piotr.byszewski@mobica.com>2023-03-16 16:46:03 +0000
commit9cd188eecece27788d9f5199751e6eab77b49825 (patch)
tree6f2f799e7bc0f75a7e17ac74759fc1db92f89fdc
parented927fae7db2b63853c3cd0af8ec3918b9a53ef7 (diff)
downloadVK-GL-CTS-9cd188eecece27788d9f5199751e6eab77b49825.tar.gz
VK-GL-CTS-9cd188eecece27788d9f5199751e6eab77b49825.tar.bz2
VK-GL-CTS-9cd188eecece27788d9f5199751e6eab77b49825.zip
Check conservativeRasterizationPostDepthCoverage in affected tests
When using both conservative rasterization and post depth coverage, the conservative rasterization property mentioned above indicates if the functionality for both can be combined. Affects: dEQP-VK.pipeline.*multisample*.conservative*post_depth_coverage* VK-GL-CTS issue: 4298 Components: Vulkan Change-Id: I988a5f44956ab9ba40ab734bf2c078b73686d5a8
-rw-r--r--external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleTests.cpp18
1 files changed, 11 insertions, 7 deletions
diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleTests.cpp
index 3c4dbb55a..647026f11 100644
--- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleTests.cpp
+++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleTests.cpp
@@ -1701,18 +1701,22 @@ void SampleMaskWithConservativeTest::checkSupport(Context& context) const
if (m_useFragmentShadingRate && !checkFragmentShadingRateRequirements(context, m_rasterizationSamples))
TCU_THROW(NotSupportedError, "Required FragmentShadingRate not supported");
- if (m_enablePostDepthCoverage)
- context.requireDeviceFunctionality("VK_EXT_post_depth_coverage");
-
context.requireDeviceFunctionality("VK_EXT_conservative_rasterization");
- const VkPhysicalDeviceConservativeRasterizationPropertiesEXT conservativeRasterizationProperties = context.getConservativeRasterizationPropertiesEXT();
- const deUint32 subPixelPrecisionBits = context.getDeviceProperties().limits.subPixelPrecisionBits;
- const deUint32 subPixelPrecision = 1 << subPixelPrecisionBits;
- const float primitiveOverestimationSizeMult = float(subPixelPrecision) * conservativeRasterizationProperties.primitiveOverestimationSize;
+ const auto& conservativeRasterizationProperties = context.getConservativeRasterizationPropertiesEXT();
+ const deUint32 subPixelPrecisionBits = context.getDeviceProperties().limits.subPixelPrecisionBits;
+ const deUint32 subPixelPrecision = (1 << subPixelPrecisionBits);
+ const float primitiveOverestimationSizeMult = float(subPixelPrecision) * conservativeRasterizationProperties.primitiveOverestimationSize;
DE_ASSERT(subPixelPrecisionBits < sizeof(deUint32) * 8);
+ if (m_enablePostDepthCoverage)
+ {
+ context.requireDeviceFunctionality("VK_EXT_post_depth_coverage");
+ if (!conservativeRasterizationProperties.conservativeRasterizationPostDepthCoverage)
+ TCU_THROW(NotSupportedError, "conservativeRasterizationPostDepthCoverage not supported");
+ }
+
context.getTestContext().getLog()
<< tcu::TestLog::Message
<< "maxExtraPrimitiveOverestimationSize=" << conservativeRasterizationProperties.maxExtraPrimitiveOverestimationSize << '\n'