From 1a6b6f1604dc5e1451b3f9c739acc134c43b0f38 Mon Sep 17 00:00:00 2001 From: Ricardo Garcia Date: Mon, 5 Dec 2022 10:55:16 +0100 Subject: [PATCH] Fix primitive fragment shading rate mesh feature requirements primitiveFragmentShadingRate is mandatory if primitiveFragmentShadingRateMeshShader is supported. This was not correctly expressed in the feature requirements test. Affects: dEQP-VK.info.device_mandatory_features dEQP-VKSC.info.device_mandatory_features Components: Vulkan VK-GL-CTS issue: 4154 Change-Id: If34eeb119c0dc8404dbca14271119fc09461fe16 --- .../vulkan/generated/vulkan/vkMandatoryFeatures.inl | 2 +- .../vulkan/generated/vulkansc/vkMandatoryFeatures.inl | 4 ++-- external/vulkancts/scripts/gen_framework_sc.py | 12 +++++++----- .../vulkancts/scripts/src/extensions/VK_EXT_mesh_shader.json | 2 +- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/external/vulkancts/framework/vulkan/generated/vulkan/vkMandatoryFeatures.inl b/external/vulkancts/framework/vulkan/generated/vulkan/vkMandatoryFeatures.inl index 83e4af3..deb25ee 100644 --- a/external/vulkancts/framework/vulkan/generated/vulkan/vkMandatoryFeatures.inl +++ b/external/vulkancts/framework/vulkan/generated/vulkan/vkMandatoryFeatures.inl @@ -1402,7 +1402,7 @@ bool checkMandatoryFeatures(const vkt::Context& context) } #if defined(CTS_USES_VULKAN) - if ( isExtensionStructSupported(deviceExtensions, RequiredExtension("VK_KHR_fragment_shading_rate")) && physicalDeviceMeshShaderFeaturesEXT.primitiveFragmentShadingRateMeshShader ) + if ( physicalDeviceMeshShaderFeaturesEXT.primitiveFragmentShadingRateMeshShader ) { if ( physicalDeviceFragmentShadingRateFeaturesKHR.primitiveFragmentShadingRate == VK_FALSE ) { diff --git a/external/vulkancts/framework/vulkan/generated/vulkansc/vkMandatoryFeatures.inl b/external/vulkancts/framework/vulkan/generated/vulkansc/vkMandatoryFeatures.inl index dfa0ff0..502a03d 100644 --- a/external/vulkancts/framework/vulkan/generated/vulkansc/vkMandatoryFeatures.inl +++ b/external/vulkancts/framework/vulkan/generated/vulkansc/vkMandatoryFeatures.inl @@ -112,7 +112,7 @@ bool checkMandatoryFeatures(const vkt::Context& context) vk::VkPhysicalDeviceFragmentShadingRateFeaturesKHR physicalDeviceFragmentShadingRateFeaturesKHR; deMemset(&physicalDeviceFragmentShadingRateFeaturesKHR, 0, sizeof(physicalDeviceFragmentShadingRateFeaturesKHR)); - if ( isExtensionStructSupported(deviceExtensions, RequiredExtension("VK_KHR_fragment_shading_rate")) ) + if ( false ) { physicalDeviceFragmentShadingRateFeaturesKHR.sType = getStructureType(); *nextPtr = &physicalDeviceFragmentShadingRateFeaturesKHR; @@ -770,7 +770,7 @@ bool checkMandatoryFeatures(const vkt::Context& context) } #if defined(CTS_USES_VULKAN) - if ( isExtensionStructSupported(deviceExtensions, RequiredExtension("VK_KHR_fragment_shading_rate")) && physicalDeviceMeshShaderFeaturesEXT.primitiveFragmentShadingRateMeshShader ) + if ( physicalDeviceMeshShaderFeaturesEXT.primitiveFragmentShadingRateMeshShader ) { if ( physicalDeviceFragmentShadingRateFeaturesKHR.primitiveFragmentShadingRate == VK_FALSE ) { diff --git a/external/vulkancts/scripts/gen_framework_sc.py b/external/vulkancts/scripts/gen_framework_sc.py index 33a1b30..dc7dc98 100644 --- a/external/vulkancts/scripts/gen_framework_sc.py +++ b/external/vulkancts/scripts/gen_framework_sc.py @@ -2823,15 +2823,17 @@ def writeMandatoryFeatures(api, filename): '']) reqs = v[0][1:] if len(reqs) > 0 : - cond = 'if ( ' + cond = '' for i, req in enumerate(reqs) : + if len(cond) > 0: + cond += ' || ' if (req.startswith("ApiVersion")): cond = cond + 'context.contextSupports(vk::' + req + ')' - else: + elif (req.startswith("VK_")): cond = cond + 'isExtensionStructSupported(deviceExtensions, RequiredExtension("' + req + '"))' - if i+1 < len(reqs) : - cond = cond + ' || ' - cond = cond + ' )' + if len(cond) == 0: + cond = 'false' + cond = 'if ( ' + cond + ' )' stream.append('\t' + cond) stream.extend(['\t{', '\t\t' + v[0][0] + '.sType = getStructureType<' + k + '>();', diff --git a/external/vulkancts/scripts/src/extensions/VK_EXT_mesh_shader.json b/external/vulkancts/scripts/src/extensions/VK_EXT_mesh_shader.json index 576bbf0..9c47b25 100644 --- a/external/vulkancts/scripts/src/extensions/VK_EXT_mesh_shader.json +++ b/external/vulkancts/scripts/src/extensions/VK_EXT_mesh_shader.json @@ -12,7 +12,7 @@ ], "VkPhysicalDeviceFragmentShadingRateFeaturesKHR": [ - { "features": ["primitiveFragmentShadingRate"], "requirements": ["VK_KHR_fragment_shading_rate", "physicalDeviceMeshShaderFeaturesEXT.primitiveFragmentShadingRateMeshShader"], "mandatory_variant": ["vulkan"] } + { "features": ["primitiveFragmentShadingRate"], "requirements": ["physicalDeviceMeshShaderFeaturesEXT.primitiveFragmentShadingRateMeshShader"], "mandatory_variant": ["vulkan"] } ] } } -- 2.7.4