diff options
author | Ricardo Garcia <rgarcia@igalia.com> | 2023-02-23 16:03:25 +0100 |
---|---|---|
committer | Piotr Byszewski <piotr.byszewski@mobica.com> | 2023-03-16 16:46:03 +0000 |
commit | 9cd188eecece27788d9f5199751e6eab77b49825 (patch) | |
tree | 6f2f799e7bc0f75a7e17ac74759fc1db92f89fdc | |
parent | ed927fae7db2b63853c3cd0af8ec3918b9a53ef7 (diff) | |
download | VK-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.cpp | 18 |
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' |