Add missing vertex pipeline stores check with ray queries
authorRicardo Garcia <rgarcia@igalia.com>
Wed, 12 May 2021 14:53:19 +0000 (16:53 +0200)
committerAlexander Galazin <Alexander.Galazin@arm.com>
Thu, 20 May 2021 06:45:29 +0000 (06:45 +0000)
Several tests related to ray queries were performing image stores from
vertex pipeline shader stages without checking support for vertex
pipeline stores and atomics support.

Affected tests:
dEQP-VK.ray_query.watertightness.*.vert.*
dEQP-VK.ray_query.watertightness.*.tesc.*
dEQP-VK.ray_query.watertightness.*.tese.*
dEQP-VK.ray_query.watertightness.*.geom.*
dEQP-VK.ray_query.builtin.*.vert.*
dEQP-VK.ray_query.builtin.*.tesc.*
dEQP-VK.ray_query.builtin.*.tese.*
dEQP-VK.ray_query.builtin.*.geom.*
dEQP-VK.ray_query.advanced.*.vert.*
dEQP-VK.ray_query.advanced.*.tesc.*
dEQP-VK.ray_query.advanced.*.tese.*
dEQP-VK.ray_query.advanced.*.geom.*
dEQP-VK.binding_model.descriptor_update.acceleration_structure.ray_query.*vert*
dEQP-VK.binding_model.descriptor_update.acceleration_structure.ray_query.*tesc*
dEQP-VK.binding_model.descriptor_update.acceleration_structure.ray_query.*tese*
dEQP-VK.binding_model.descriptor_update.acceleration_structure.ray_query.*geom*

Components: Vulkan
VK-GL-CTS issue: 2907

Change-Id: I1d13c227bb52dfad393c9b52681083598bff2f80

external/vulkancts/modules/vulkan/binding_model/vktBindingDescriptorUpdateASTests.cpp
external/vulkancts/modules/vulkan/ray_query/vktRayQueryBuiltinTests.cpp
external/vulkancts/modules/vulkan/ray_query/vktRayQueryWatertightnessTests.cpp

index 685c6f7..531c52f 100644 (file)
@@ -781,29 +781,28 @@ void BindingAcceleratioStructureGraphicsTestInstance::checkSupport (Context&                      c
 {
        switch (testParams.stage)
        {
-               case VK_SHADER_STAGE_VERTEX_BIT:
-                       break;
-
-               case VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT:
-               case VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT:
-               {
-                       context.requireDeviceCoreFeature(DEVICE_CORE_FEATURE_TESSELLATION_SHADER);
-
-                       break;
-               }
-
-               case VK_SHADER_STAGE_GEOMETRY_BIT:
-               {
-                       context.requireDeviceCoreFeature(DEVICE_CORE_FEATURE_GEOMETRY_SHADER);
-
-                       break;
-               }
-
-               case VK_SHADER_STAGE_FRAGMENT_BIT:
-                       break;
+       case VK_SHADER_STAGE_VERTEX_BIT:
+       case VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT:
+       case VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT:
+       case VK_SHADER_STAGE_GEOMETRY_BIT:
+               context.requireDeviceCoreFeature(DEVICE_CORE_FEATURE_VERTEX_PIPELINE_STORES_AND_ATOMICS);
+               break;
+       default:
+               TCU_THROW(InternalError, "Unknown stage");
+               break;
+       }
 
-               default:
-                       TCU_THROW(InternalError, "Unknown stage");
+       switch (testParams.stage)
+       {
+       case VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT:
+       case VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT:
+               context.requireDeviceCoreFeature(DEVICE_CORE_FEATURE_TESSELLATION_SHADER);
+               break;
+       case VK_SHADER_STAGE_GEOMETRY_BIT:
+               context.requireDeviceCoreFeature(DEVICE_CORE_FEATURE_GEOMETRY_SHADER);
+               break;
+       default:
+               break;
        }
 }
 
index f387b4e..5048c8a 100644 (file)
@@ -449,28 +449,27 @@ namespace vkt
                                switch (testParams.stage)
                                {
                                case VK_SHADER_STAGE_VERTEX_BIT:
+                               case VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT:
+                               case VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT:
+                               case VK_SHADER_STAGE_GEOMETRY_BIT:
+                                       context.requireDeviceCoreFeature(DEVICE_CORE_FEATURE_VERTEX_PIPELINE_STORES_AND_ATOMICS);
+                                       break;
+                               default:
+                                       TCU_THROW(InternalError, "Unknown stage");
                                        break;
+                               }
 
+                               switch (testParams.stage)
+                               {
                                case VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT:
                                case VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT:
-                               {
                                        context.requireDeviceCoreFeature(DEVICE_CORE_FEATURE_TESSELLATION_SHADER);
-
                                        break;
-                               }
-
                                case VK_SHADER_STAGE_GEOMETRY_BIT:
-                               {
                                        context.requireDeviceCoreFeature(DEVICE_CORE_FEATURE_GEOMETRY_SHADER);
-
                                        break;
-                               }
-
-                               case VK_SHADER_STAGE_FRAGMENT_BIT:
-                                       break;
-
                                default:
-                                       TCU_THROW(InternalError, "Unknown stage");
+                                       break;
                                }
                        }
 
index 3a70550..de91664 100644 (file)
@@ -407,29 +407,28 @@ void GraphicsConfiguration::checkSupport (Context&                        context,
 {
        switch (testParams.stage)
        {
-               case VK_SHADER_STAGE_VERTEX_BIT:
-                       break;
-
-               case VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT:
-               case VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT:
-               {
-                       context.requireDeviceCoreFeature(DEVICE_CORE_FEATURE_TESSELLATION_SHADER);
-
-                       break;
-               }
-
-               case VK_SHADER_STAGE_GEOMETRY_BIT:
-               {
-                       context.requireDeviceCoreFeature(DEVICE_CORE_FEATURE_GEOMETRY_SHADER);
-
-                       break;
-               }
-
-               case VK_SHADER_STAGE_FRAGMENT_BIT:
-                       break;
+       case VK_SHADER_STAGE_VERTEX_BIT:
+       case VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT:
+       case VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT:
+       case VK_SHADER_STAGE_GEOMETRY_BIT:
+               context.requireDeviceCoreFeature(DEVICE_CORE_FEATURE_VERTEX_PIPELINE_STORES_AND_ATOMICS);
+               break;
+       default:
+               TCU_THROW(InternalError, "Unknown stage");
+               break;
+       }
 
-               default:
-                       TCU_THROW(InternalError, "Unknown stage");
+       switch (testParams.stage)
+       {
+       case VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT:
+       case VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT:
+               context.requireDeviceCoreFeature(DEVICE_CORE_FEATURE_TESSELLATION_SHADER);
+               break;
+       case VK_SHADER_STAGE_GEOMETRY_BIT:
+               context.requireDeviceCoreFeature(DEVICE_CORE_FEATURE_GEOMETRY_SHADER);
+               break;
+       default:
+               break;
        }
 }