Add missing vertexPipelineStoresAndAtomics checks in ray query tests
authorJohn Anthony <john.anthony@arm.com>
Wed, 18 Aug 2021 20:16:53 +0000 (22:16 +0200)
committerJohn Anthony <john.anthony@arm.com>
Fri, 20 Aug 2021 10:07:34 +0000 (12:07 +0200)
Affected tests:
dEQP-VK.ray_query.acceleration_structures.*.vertex_shader.*
dEQP-VK.ray_query.acceleration_structures.*.tess_control_shader.*
dEQP-VK.ray_query.acceleration_structures.*.tess_evaluation_shader.*
dEQP-VK.ray_query.acceleration_structures.*.geometry_shader.*
dEQP-VK.ray_query.ray_flags.vertex_shader.*
dEQP-VK.ray_query.ray_flags.tess_control_shader.*
dEQP-VK.ray_query.ray_flags.tess_evaluation_shader.*
dEQP-VK.ray_query.ray_flags.geometry_shader.*
dEQP-VK.ray_query.traversal_control.vertex_shader.*
dEQP-VK.ray_query.traversal_control.tess_control_shader.*
dEQP-VK.ray_query.traversal_control.tess_evaluation_shader.*
dEQP-VK.ray_query.traversal_control.geometry_shader.*

Components: Vulkan

VK-GL-CTS Issue: 3069

Change-Id: I49c37d292380fda47b113bf4fa14a6395f8e81a5

external/vulkancts/modules/vulkan/ray_query/vktRayQueryAccelerationStructuresTests.cpp
external/vulkancts/modules/vulkan/ray_query/vktRayQueryCullRayFlagsTests.cpp
external/vulkancts/modules/vulkan/ray_query/vktRayQueryTraversalControlTests.cpp

index 068d424..fcbe645 100644 (file)
@@ -1548,6 +1548,18 @@ void RayQueryASBasicTestCase::checkSupport (Context& context) const
                        TCU_THROW(NotSupportedError, "Requires VkPhysicalDeviceRayTracingPipelineFeaturesKHR.rayTracingPipeline");
        }
 
+       switch (m_data.shaderSourceType)
+       {
+       case SST_VERTEX_SHADER:
+       case SST_TESSELATION_CONTROL_SHADER:
+       case SST_TESSELATION_EVALUATION_SHADER:
+       case SST_GEOMETRY_SHADER:
+               context.requireDeviceCoreFeature(DEVICE_CORE_FEATURE_VERTEX_PIPELINE_STORES_AND_ATOMICS);
+               break;
+       default:
+               break;
+       }
+
        if (m_data.buildType == VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR && accelerationStructureFeaturesKHR.accelerationStructureHostCommands == DE_FALSE)
                TCU_THROW(NotSupportedError, "Requires VkPhysicalDeviceAccelerationStructureFeaturesKHR.accelerationStructureHostCommands");
 
index a383e54..ada6059 100644 (file)
@@ -1221,6 +1221,18 @@ void RayQueryCullRayFlagsTestCase::checkSupport (Context& context) const
                features2.features.geometryShader == DE_FALSE )
                TCU_THROW(NotSupportedError, "Requires VkPhysicalDeviceFeatures2.geometryShader");
 
+       switch (m_data.shaderSourceType)
+       {
+       case SST_VERTEX_SHADER:
+       case SST_TESSELATION_CONTROL_SHADER:
+       case SST_TESSELATION_EVALUATION_SHADER:
+       case SST_GEOMETRY_SHADER:
+               context.requireDeviceCoreFeature(DEVICE_CORE_FEATURE_VERTEX_PIPELINE_STORES_AND_ATOMICS);
+               break;
+       default:
+               break;
+       }
+
        if ( m_data.shaderSourceType == SST_RAY_GENERATION_SHADER ||
                 m_data.shaderSourceType == SST_INTERSECTION_SHADER ||
                 m_data.shaderSourceType == SST_ANY_HIT_SHADER ||
index e36d68a..d51f05f 100644 (file)
@@ -1278,6 +1278,18 @@ void RayQueryTraversalControlTestCase::checkSupport (Context& context) const
                features2.features.geometryShader == DE_FALSE )
                TCU_THROW(NotSupportedError, "Requires VkPhysicalDeviceFeatures2.geometryShader");
 
+       switch (m_data.shaderSourceType)
+       {
+       case SST_VERTEX_SHADER:
+       case SST_TESSELATION_CONTROL_SHADER:
+       case SST_TESSELATION_EVALUATION_SHADER:
+       case SST_GEOMETRY_SHADER:
+               context.requireDeviceCoreFeature(DEVICE_CORE_FEATURE_VERTEX_PIPELINE_STORES_AND_ATOMICS);
+               break;
+       default:
+               break;
+       }
+
        if (m_data.shaderSourceType == SST_RAY_GENERATION_SHADER ||
                m_data.shaderSourceType == SST_INTERSECTION_SHADER ||
                m_data.shaderSourceType == SST_ANY_HIT_SHADER ||