Extend existing RT pipeline library tests to use DHO support if available.
authorDominik Witczak <dominik.witczak@amd.com>
Tue, 18 Aug 2020 15:21:22 +0000 (17:21 +0200)
committerAlexander Galazin <Alexander.Galazin@arm.com>
Thu, 27 Aug 2020 07:11:48 +0000 (03:11 -0400)
New tests:

 dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation_dho.*

Components: Vulkan
VK-GL-CTS issue: 2491

Change-Id: I2eec49d3424b22f4fcace2ba6495bb33dc44ccdd

android/cts/master/vk-master-2020-03-01.txt
android/cts/master/vk-master.txt
external/vulkancts/modules/vulkan/ray_tracing/vktRayTracingPipelineLibraryTests.cpp
external/vulkancts/mustpass/master/vk-default.txt

index 9acc0dc..7020d7c 100644 (file)
@@ -306557,6 +306557,18 @@ dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compi
 dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation.s3_l2_l3
 dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation.s3_l232
 dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation.s3_l22_l22
+dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation_dho.s0_l1
+dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation_dho.s1_l1
+dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation_dho.s0_l11
+dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation_dho.s3_l11
+dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation_dho.s0_l23
+dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation_dho.s2_l23
+dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation_dho.s0_l1_l1
+dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation_dho.s1_l1_l1
+dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation_dho.s0_l2_l3
+dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation_dho.s3_l2_l3
+dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation_dho.s3_l232
+dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation_dho.s3_l22_l22
 dEQP-VK.ray_tracing_pipeline.memguarantee.inside.rgen
 dEQP-VK.ray_tracing_pipeline.memguarantee.inside.chit
 dEQP-VK.ray_tracing_pipeline.memguarantee.inside.sect
index 34eb21d..a722ad4 100644 (file)
@@ -716750,6 +716750,18 @@ dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compi
 dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation.s3_l2_l3
 dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation.s3_l232
 dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation.s3_l22_l22
+dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation_dho.s0_l1
+dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation_dho.s1_l1
+dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation_dho.s0_l11
+dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation_dho.s3_l11
+dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation_dho.s0_l23
+dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation_dho.s2_l23
+dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation_dho.s0_l1_l1
+dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation_dho.s1_l1_l1
+dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation_dho.s0_l2_l3
+dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation_dho.s3_l2_l3
+dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation_dho.s3_l232
+dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation_dho.s3_l22_l22
 dEQP-VK.ray_tracing_pipeline.memguarantee.inside.rgen
 dEQP-VK.ray_tracing_pipeline.memguarantee.inside.chit
 dEQP-VK.ray_tracing_pipeline.memguarantee.inside.sect
index 18d4d96..e18b67d 100644 (file)
@@ -68,6 +68,7 @@ struct TestParams
 {
        LibraryConfiguration                            libraryConfiguration;
        bool                                                            multithreadedCompilation;
+       bool                                                            pipelinesCreatedUsingDHO;
        deUint32                                                        width;
        deUint32                                                        height;
 };
@@ -167,6 +168,11 @@ void RayTracingPipelineLibraryTestCase::checkSupport(Context& context) const
        const VkPhysicalDeviceAccelerationStructureFeaturesKHR& accelerationStructureFeaturesKHR        = context.getAccelerationStructureFeatures();
        if (accelerationStructureFeaturesKHR.accelerationStructure == DE_FALSE)
                TCU_THROW(TestError, "VK_KHR_ray_tracing_pipeline requires VkPhysicalDeviceAccelerationStructureFeaturesKHR.accelerationStructure");
+
+       if (m_data.pipelinesCreatedUsingDHO)
+       {
+               context.requireDeviceFunctionality("VK_KHR_deferred_host_operations");
+       }
 }
 
 void RayTracingPipelineLibraryTestCase::initPrograms (SourceCollections& programCollection) const
@@ -399,6 +405,9 @@ de::MovePtr<BufferWithMemory> RayTracingPipelineLibraryTestInstance::runTest ()
 
                // create pipeline objects
                de::SharedPtr<de::MovePtr<RayTracingPipeline>> pipeline = makeVkSharedPtr(de::MovePtr<RayTracingPipeline>(new RayTracingPipeline));
+
+               (*pipeline)->setDeferredOperation(m_data.pipelinesCreatedUsingDHO);
+
                // all pipelines are pipeline libraries, except for the main pipeline
                if(idx>0)
                        pipeline->get()->setCreateFlags(VK_PIPELINE_CREATE_LIBRARY_BIT_KHR);
@@ -590,11 +599,13 @@ void addPipelineLibraryConfigurationsTests (tcu::TestCaseGroup* group)
        struct ThreadData
        {
                bool                                                                    multithreaded;
+               bool                                                                    pipelinesCreatedUsingDHO;
                const char*                                                             name;
        } threadData[] =
        {
-               { false,        "singlethreaded_compilation"    },
-               { true,         "multithreaded_compilation"     },
+               { false,        false,  "singlethreaded_compilation"    },
+               { true,         false,  "multithreaded_compilation"             },
+               { true,         true,   "multithreaded_compilation_dho" },
        };
 
        struct LibraryConfigurationData
@@ -627,6 +638,7 @@ void addPipelineLibraryConfigurationsTests (tcu::TestCaseGroup* group)
                        {
                                libraryConfigurationData[libConfigNdx].libraryConfiguration,
                                threadData[threadNdx].multithreaded,
+                               threadData[threadNdx].pipelinesCreatedUsingDHO,
                                RTPL_DEFAULT_SIZE,
                                RTPL_DEFAULT_SIZE
                        };
index 8f27730..791a53e 100644 (file)
@@ -718984,6 +718984,18 @@ dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compi
 dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation.s3_l2_l3
 dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation.s3_l232
 dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation.s3_l22_l22
+dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation_dho.s0_l1
+dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation_dho.s1_l1
+dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation_dho.s0_l11
+dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation_dho.s3_l11
+dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation_dho.s0_l23
+dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation_dho.s2_l23
+dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation_dho.s0_l1_l1
+dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation_dho.s1_l1_l1
+dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation_dho.s0_l2_l3
+dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation_dho.s3_l2_l3
+dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation_dho.s3_l232
+dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation_dho.s3_l22_l22
 dEQP-VK.ray_tracing_pipeline.memguarantee.inside.rgen
 dEQP-VK.ray_tracing_pipeline.memguarantee.inside.chit
 dEQP-VK.ray_tracing_pipeline.memguarantee.inside.sect