Update binding tests to VK_KHR_ray_tracing v10
authorPawel Ksiezopolski <pawel.ksiezopolski@mobica.com>
Mon, 13 Jul 2020 09:26:36 +0000 (11:26 +0200)
committerAlexander Galazin <Alexander.Galazin@arm.com>
Mon, 13 Jul 2020 20:08:40 +0000 (16:08 -0400)
Affects tests:
dEQP-VK.binding_model.descriptorset_random.*

Components: Vulkan, Framework

Change-Id: I328015c9faab6349b5d0d57c4edd0ffa2e337afa

external/vulkancts/framework/vulkan/vkRayTracingUtil.cpp
external/vulkancts/framework/vulkan/vkRayTracingUtil.hpp
external/vulkancts/modules/vulkan/binding_model/vktBindingDescriptorSetRandomTests.cpp

index 516588f..a61d6c2 100644 (file)
@@ -62,11 +62,6 @@ std::string getCommonRayGenerationShader (void)
                "}\n";
 }
 
-const char* getRayTracingExtensionUsed (void)
-{
-       return "VK_KHR_ray_tracing";
-}
-
 RaytracedGeometryBase::RaytracedGeometryBase (VkGeometryTypeKHR geometryType, VkFormat vertexFormat, VkIndexType indexType)
        : m_geometryType        (geometryType)
        , m_vertexFormat        (vertexFormat)
index af1c187..b267fb9 100644 (file)
@@ -70,8 +70,6 @@ inline std::string updateRayTracingGLSL (const std::string& str)
 
 std::string getCommonRayGenerationShader (void);
 
-const char* getRayTracingExtensionUsed (void);
-
 class RaytracedGeometryBase
 {
 public:
index 64bd6df..4ba05f6 100644 (file)
@@ -271,7 +271,16 @@ void DescriptorSetRandomTestCase::checkSupport(Context& context) const
        }
        else if (isRayTracingStageKHR(m_data.stage))
        {
-               context.requireDeviceFunctionality(getRayTracingExtensionUsed());
+               context.requireDeviceFunctionality("VK_KHR_acceleration_structure");
+               context.requireDeviceFunctionality("VK_KHR_ray_tracing_pipeline");
+
+               const VkPhysicalDeviceRayTracingPipelineFeaturesKHR&    rayTracingPipelineFeaturesKHR = context.getRayTracingPipelineFeatures();
+               if (rayTracingPipelineFeaturesKHR.rayTracingPipeline == DE_FALSE)
+                       TCU_THROW(NotSupportedError, "Requires VkPhysicalDeviceRayTracingPipelineFeaturesKHR.rayTracingPipeline");
+
+               const VkPhysicalDeviceAccelerationStructureFeaturesKHR& accelerationStructureFeaturesKHR = context.getAccelerationStructureFeatures();
+               if (accelerationStructureFeaturesKHR.accelerationStructure == DE_FALSE)
+                       TCU_THROW(TestError, "VK_KHR_ray_tracing_pipeline requires VkPhysicalDeviceAccelerationStructureFeaturesKHR.accelerationStructure");
        }
 
        if ((m_data.indexType == INDEX_TYPE_PUSHCONSTANT ||