Fix primitive fragment shading rate mesh feature requirements
authorRicardo Garcia <rgarcia@igalia.com>
Mon, 5 Dec 2022 09:55:16 +0000 (10:55 +0100)
committerPiotr Byszewski <piotr.byszewski@mobica.com>
Mon, 19 Dec 2022 10:44:18 +0000 (10:44 +0000)
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

external/vulkancts/framework/vulkan/generated/vulkan/vkMandatoryFeatures.inl
external/vulkancts/framework/vulkan/generated/vulkansc/vkMandatoryFeatures.inl
external/vulkancts/scripts/gen_framework_sc.py
external/vulkancts/scripts/src/extensions/VK_EXT_mesh_shader.json

index 83e4af3..deb25ee 100644 (file)
@@ -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 )
                {
index dfa0ff0..502a03d 100644 (file)
@@ -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<VkPhysicalDeviceFragmentShadingRateFeaturesKHR>();
                *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 )
                {
index 33a1b30..dc7dc98 100644 (file)
@@ -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 + '>();',
index 576bbf0..9c47b25 100644 (file)
@@ -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"] }
                ]
        }
 }