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");
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 ||
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 ||