From 5df14d7c1b22d3675604dc70ba925e8ee97f8bd9 Mon Sep 17 00:00:00 2001 From: Boris Zanin Date: Wed, 15 Apr 2020 16:19:17 +0200 Subject: [PATCH] Tests for VK_KHR_deferred_host_operations Implementation of deferred host operations tests for: * vkCreateRayTracingPipelinesKHR * vkBuildAccelerationStructureKHR * vkCopyAccelerationStructureToMemoryKHR Add tests: * dEQP-VK.ray_tracing.large_shader_set.cpu_ht_* * dEQP-VK.ray_tracing.build.cpuht_* * dEQP-VK.ray_tracing.acceleration_structures.host_threading.* Affects tests: * dEQP-VK.ray_tracing.large_shader_set.gpu* * dEQP-VK.ray_tracing.large_shader_set.cpu_ht.* * dEQP-VK.ray_tracing.build.gpu_cpu.* * dEQP-VK.ray_tracing.build.gpu_cpuht.* * dEQP-VK.ray_tracing.acceleration_structures.* Components: Vulkan VK-GL-CTS issue: 2308 Change-Id: I9d0ba23b9badd24afc4efe944cde686bd07e9c74 --- android/cts/master/vk-master-2020-03-01.txt | 648 ++++++++++++++++++--- android/cts/master/vk-master.txt | 648 ++++++++++++++++++--- .../framework/vulkan/vkRayTracingUtil.cpp | 196 ++++++- .../framework/vulkan/vkRayTracingUtil.hpp | 10 +- .../vktRayTracingAccelerationStructuresTests.cpp | 106 +++- .../ray_tracing/vktRayTracingBuildLargeTests.cpp | 121 +++- .../vulkan/ray_tracing/vktRayTracingBuildTests.cpp | 179 ++++-- external/vulkancts/mustpass/master/vk-default.txt | 648 ++++++++++++++++++--- 8 files changed, 2231 insertions(+), 325 deletions(-) diff --git a/android/cts/master/vk-master-2020-03-01.txt b/android/cts/master/vk-master-2020-03-01.txt index a76fc39..32ff475 100644 --- a/android/cts/master/vk-master-2020-03-01.txt +++ b/android/cts/master/vk-master-2020-03-01.txt @@ -205001,78 +205001,30 @@ dEQP-VK.ray_tracing.large_shader_set.cpu_ht.64 dEQP-VK.ray_tracing.large_shader_set.cpu_ht.256 dEQP-VK.ray_tracing.large_shader_set.cpu_ht.1024 dEQP-VK.ray_tracing.large_shader_set.cpu_ht.4096 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_1_1_16 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_1_1_256 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_1_1_4096 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_1_1_65536 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_1_1_1048576 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_4_4_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_4_4_16 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_4_4_256 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_4_4_4096 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_4_4_65536 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_1_1_16 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_1_1_256 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_1_1_4096 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_1_1_65536 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_1_1_1048576 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_4_4_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_4_4_16 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_4_4_256 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_4_4_4096 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_4_4_65536 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.mixed_4_4_16 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.mixed_4_4_256 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.mixed_4_4_4096 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.mixed_4_4_65536 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_1_16_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_1_256_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_1_4096_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_1_65536_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_1_1048576_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_4_1_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_4_16_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_4_256_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_4_4096_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_4_65536_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_1_16_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_1_256_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_1_4096_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_1_65536_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_1_1048576_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_4_1_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_4_16_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_4_256_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_4_4096_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_4_65536_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.mixed_4_16_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.mixed_4_256_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.mixed_4_4096_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.mixed_4_65536_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_16_1_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_256_1_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_4096_1_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_65536_1_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_1048576_1_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_1_4_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_16_4_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_256_4_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_4096_4_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_65536_4_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_16_1_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_256_1_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_4096_1_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_65536_1_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_1048576_1_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_1_4_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_16_4_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_256_4_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_4096_4_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_65536_4_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.mixed_16_4_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.mixed_256_4_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.mixed_4096_4_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.mixed_65536_4_4 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_1.64 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_1.256 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_1.1024 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_1.4096 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_2.64 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_2.256 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_2.1024 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_2.4096 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_3.64 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_3.256 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_3.1024 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_3.4096 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_4.64 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_4.256 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_4.1024 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_4.4096 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_8.64 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_8.256 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_8.1024 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_8.4096 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_max.64 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_max.256 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_max.1024 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_max.4096 dEQP-VK.ray_tracing.build.gpu_cpuht.level_primitives.triangles_1_1_16 dEQP-VK.ray_tracing.build.gpu_cpuht.level_primitives.triangles_1_1_256 dEQP-VK.ray_tracing.build.gpu_cpuht.level_primitives.triangles_1_1_4096 @@ -205145,6 +205097,510 @@ dEQP-VK.ray_tracing.build.gpu_cpuht.level_instances.mixed_16_4_4 dEQP-VK.ray_tracing.build.gpu_cpuht.level_instances.mixed_256_4_4 dEQP-VK.ray_tracing.build.gpu_cpuht.level_instances.mixed_4096_4_4 dEQP-VK.ray_tracing.build.gpu_cpuht.level_instances.mixed_65536_4_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.triangles_1_1_16 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.triangles_1_1_256 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.triangles_1_1_4096 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.triangles_1_1_65536 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.triangles_1_1_1048576 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.triangles_4_4_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.triangles_4_4_16 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.triangles_4_4_256 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.triangles_4_4_4096 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.triangles_4_4_65536 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.aabbs_1_1_16 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.aabbs_1_1_256 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.aabbs_1_1_4096 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.aabbs_1_1_65536 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.aabbs_1_1_1048576 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.aabbs_4_4_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.aabbs_4_4_16 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.aabbs_4_4_256 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.aabbs_4_4_4096 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.aabbs_4_4_65536 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.mixed_4_4_16 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.mixed_4_4_256 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.mixed_4_4_4096 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.mixed_4_4_65536 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.triangles_1_16_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.triangles_1_256_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.triangles_1_4096_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.triangles_1_65536_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.triangles_1_1048576_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.triangles_4_1_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.triangles_4_16_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.triangles_4_256_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.triangles_4_4096_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.triangles_4_65536_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.aabbs_1_16_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.aabbs_1_256_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.aabbs_1_4096_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.aabbs_1_65536_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.aabbs_1_1048576_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.aabbs_4_1_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.aabbs_4_16_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.aabbs_4_256_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.aabbs_4_4096_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.aabbs_4_65536_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.mixed_4_16_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.mixed_4_256_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.mixed_4_4096_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.mixed_4_65536_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.triangles_16_1_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.triangles_256_1_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.triangles_4096_1_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.triangles_65536_1_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.triangles_1048576_1_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.triangles_1_4_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.triangles_16_4_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.triangles_256_4_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.triangles_4096_4_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.triangles_65536_4_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.aabbs_16_1_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.aabbs_256_1_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.aabbs_4096_1_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.aabbs_65536_1_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.aabbs_1048576_1_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.aabbs_1_4_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.aabbs_16_4_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.aabbs_256_4_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.aabbs_4096_4_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.aabbs_65536_4_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.mixed_16_4_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.mixed_256_4_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.mixed_4096_4_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.mixed_65536_4_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.triangles_1_1_16 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.triangles_1_1_256 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.triangles_1_1_4096 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.triangles_1_1_65536 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.triangles_1_1_1048576 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.triangles_4_4_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.triangles_4_4_16 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.triangles_4_4_256 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.triangles_4_4_4096 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.triangles_4_4_65536 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.aabbs_1_1_16 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.aabbs_1_1_256 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.aabbs_1_1_4096 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.aabbs_1_1_65536 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.aabbs_1_1_1048576 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.aabbs_4_4_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.aabbs_4_4_16 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.aabbs_4_4_256 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.aabbs_4_4_4096 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.aabbs_4_4_65536 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.mixed_4_4_16 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.mixed_4_4_256 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.mixed_4_4_4096 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.mixed_4_4_65536 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.triangles_1_16_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.triangles_1_256_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.triangles_1_4096_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.triangles_1_65536_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.triangles_1_1048576_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.triangles_4_1_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.triangles_4_16_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.triangles_4_256_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.triangles_4_4096_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.triangles_4_65536_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.aabbs_1_16_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.aabbs_1_256_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.aabbs_1_4096_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.aabbs_1_65536_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.aabbs_1_1048576_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.aabbs_4_1_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.aabbs_4_16_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.aabbs_4_256_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.aabbs_4_4096_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.aabbs_4_65536_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.mixed_4_16_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.mixed_4_256_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.mixed_4_4096_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.mixed_4_65536_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.triangles_16_1_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.triangles_256_1_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.triangles_4096_1_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.triangles_65536_1_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.triangles_1048576_1_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.triangles_1_4_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.triangles_16_4_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.triangles_256_4_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.triangles_4096_4_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.triangles_65536_4_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.aabbs_16_1_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.aabbs_256_1_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.aabbs_4096_1_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.aabbs_65536_1_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.aabbs_1048576_1_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.aabbs_1_4_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.aabbs_16_4_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.aabbs_256_4_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.aabbs_4096_4_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.aabbs_65536_4_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.mixed_16_4_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.mixed_256_4_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.mixed_4096_4_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.mixed_65536_4_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.triangles_1_1_16 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.triangles_1_1_256 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.triangles_1_1_4096 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.triangles_1_1_65536 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.triangles_1_1_1048576 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.triangles_4_4_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.triangles_4_4_16 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.triangles_4_4_256 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.triangles_4_4_4096 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.triangles_4_4_65536 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.aabbs_1_1_16 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.aabbs_1_1_256 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.aabbs_1_1_4096 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.aabbs_1_1_65536 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.aabbs_1_1_1048576 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.aabbs_4_4_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.aabbs_4_4_16 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.aabbs_4_4_256 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.aabbs_4_4_4096 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.aabbs_4_4_65536 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.mixed_4_4_16 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.mixed_4_4_256 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.mixed_4_4_4096 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.mixed_4_4_65536 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.triangles_1_16_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.triangles_1_256_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.triangles_1_4096_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.triangles_1_65536_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.triangles_1_1048576_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.triangles_4_1_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.triangles_4_16_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.triangles_4_256_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.triangles_4_4096_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.triangles_4_65536_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.aabbs_1_16_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.aabbs_1_256_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.aabbs_1_4096_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.aabbs_1_65536_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.aabbs_1_1048576_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.aabbs_4_1_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.aabbs_4_16_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.aabbs_4_256_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.aabbs_4_4096_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.aabbs_4_65536_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.mixed_4_16_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.mixed_4_256_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.mixed_4_4096_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.mixed_4_65536_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.triangles_16_1_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.triangles_256_1_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.triangles_4096_1_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.triangles_65536_1_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.triangles_1048576_1_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.triangles_1_4_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.triangles_16_4_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.triangles_256_4_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.triangles_4096_4_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.triangles_65536_4_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.aabbs_16_1_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.aabbs_256_1_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.aabbs_4096_1_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.aabbs_65536_1_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.aabbs_1048576_1_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.aabbs_1_4_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.aabbs_16_4_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.aabbs_256_4_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.aabbs_4096_4_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.aabbs_65536_4_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.mixed_16_4_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.mixed_256_4_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.mixed_4096_4_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.mixed_65536_4_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.triangles_1_1_16 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.triangles_1_1_256 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.triangles_1_1_4096 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.triangles_1_1_65536 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.triangles_1_1_1048576 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.triangles_4_4_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.triangles_4_4_16 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.triangles_4_4_256 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.triangles_4_4_4096 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.triangles_4_4_65536 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.aabbs_1_1_16 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.aabbs_1_1_256 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.aabbs_1_1_4096 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.aabbs_1_1_65536 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.aabbs_1_1_1048576 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.aabbs_4_4_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.aabbs_4_4_16 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.aabbs_4_4_256 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.aabbs_4_4_4096 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.aabbs_4_4_65536 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.mixed_4_4_16 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.mixed_4_4_256 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.mixed_4_4_4096 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.mixed_4_4_65536 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.triangles_1_16_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.triangles_1_256_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.triangles_1_4096_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.triangles_1_65536_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.triangles_1_1048576_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.triangles_4_1_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.triangles_4_16_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.triangles_4_256_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.triangles_4_4096_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.triangles_4_65536_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.aabbs_1_16_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.aabbs_1_256_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.aabbs_1_4096_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.aabbs_1_65536_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.aabbs_1_1048576_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.aabbs_4_1_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.aabbs_4_16_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.aabbs_4_256_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.aabbs_4_4096_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.aabbs_4_65536_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.mixed_4_16_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.mixed_4_256_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.mixed_4_4096_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.mixed_4_65536_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.triangles_16_1_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.triangles_256_1_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.triangles_4096_1_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.triangles_65536_1_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.triangles_1048576_1_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.triangles_1_4_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.triangles_16_4_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.triangles_256_4_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.triangles_4096_4_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.triangles_65536_4_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.aabbs_16_1_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.aabbs_256_1_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.aabbs_4096_1_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.aabbs_65536_1_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.aabbs_1048576_1_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.aabbs_1_4_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.aabbs_16_4_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.aabbs_256_4_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.aabbs_4096_4_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.aabbs_65536_4_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.mixed_16_4_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.mixed_256_4_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.mixed_4096_4_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.mixed_65536_4_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.triangles_1_1_16 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.triangles_1_1_256 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.triangles_1_1_4096 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.triangles_1_1_65536 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.triangles_1_1_1048576 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.triangles_4_4_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.triangles_4_4_16 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.triangles_4_4_256 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.triangles_4_4_4096 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.triangles_4_4_65536 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.aabbs_1_1_16 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.aabbs_1_1_256 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.aabbs_1_1_4096 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.aabbs_1_1_65536 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.aabbs_1_1_1048576 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.aabbs_4_4_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.aabbs_4_4_16 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.aabbs_4_4_256 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.aabbs_4_4_4096 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.aabbs_4_4_65536 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.mixed_4_4_16 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.mixed_4_4_256 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.mixed_4_4_4096 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.mixed_4_4_65536 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.triangles_1_16_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.triangles_1_256_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.triangles_1_4096_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.triangles_1_65536_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.triangles_1_1048576_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.triangles_4_1_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.triangles_4_16_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.triangles_4_256_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.triangles_4_4096_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.triangles_4_65536_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.aabbs_1_16_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.aabbs_1_256_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.aabbs_1_4096_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.aabbs_1_65536_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.aabbs_1_1048576_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.aabbs_4_1_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.aabbs_4_16_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.aabbs_4_256_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.aabbs_4_4096_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.aabbs_4_65536_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.mixed_4_16_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.mixed_4_256_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.mixed_4_4096_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.mixed_4_65536_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.triangles_16_1_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.triangles_256_1_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.triangles_4096_1_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.triangles_65536_1_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.triangles_1048576_1_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.triangles_1_4_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.triangles_16_4_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.triangles_256_4_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.triangles_4096_4_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.triangles_65536_4_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.aabbs_16_1_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.aabbs_256_1_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.aabbs_4096_1_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.aabbs_65536_1_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.aabbs_1048576_1_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.aabbs_1_4_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.aabbs_16_4_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.aabbs_256_4_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.aabbs_4096_4_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.aabbs_65536_4_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.mixed_16_4_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.mixed_256_4_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.mixed_4096_4_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.mixed_65536_4_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.triangles_1_1_16 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.triangles_1_1_256 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.triangles_1_1_4096 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.triangles_1_1_65536 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.triangles_1_1_1048576 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.triangles_4_4_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.triangles_4_4_16 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.triangles_4_4_256 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.triangles_4_4_4096 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.triangles_4_4_65536 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.aabbs_1_1_16 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.aabbs_1_1_256 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.aabbs_1_1_4096 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.aabbs_1_1_65536 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.aabbs_1_1_1048576 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.aabbs_4_4_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.aabbs_4_4_16 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.aabbs_4_4_256 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.aabbs_4_4_4096 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.aabbs_4_4_65536 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.mixed_4_4_16 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.mixed_4_4_256 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.mixed_4_4_4096 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.mixed_4_4_65536 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.triangles_1_16_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.triangles_1_256_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.triangles_1_4096_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.triangles_1_65536_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.triangles_1_1048576_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.triangles_4_1_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.triangles_4_16_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.triangles_4_256_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.triangles_4_4096_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.triangles_4_65536_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.aabbs_1_16_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.aabbs_1_256_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.aabbs_1_4096_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.aabbs_1_65536_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.aabbs_1_1048576_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.aabbs_4_1_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.aabbs_4_16_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.aabbs_4_256_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.aabbs_4_4096_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.aabbs_4_65536_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.mixed_4_16_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.mixed_4_256_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.mixed_4_4096_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.mixed_4_65536_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.triangles_16_1_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.triangles_256_1_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.triangles_4096_1_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.triangles_65536_1_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.triangles_1048576_1_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.triangles_1_4_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.triangles_16_4_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.triangles_256_4_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.triangles_4096_4_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.triangles_65536_4_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.aabbs_16_1_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.aabbs_256_1_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.aabbs_4096_1_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.aabbs_65536_1_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.aabbs_1048576_1_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.aabbs_1_4_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.aabbs_16_4_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.aabbs_256_4_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.aabbs_4096_4_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.aabbs_65536_4_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.mixed_16_4_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.mixed_256_4_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.mixed_4096_4_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.mixed_65536_4_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_1_1_16 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_1_1_256 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_1_1_4096 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_1_1_65536 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_1_1_1048576 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_4_4_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_4_4_16 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_4_4_256 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_4_4_4096 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_4_4_65536 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_1_1_16 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_1_1_256 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_1_1_4096 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_1_1_65536 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_1_1_1048576 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_4_4_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_4_4_16 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_4_4_256 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_4_4_4096 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_4_4_65536 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.mixed_4_4_16 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.mixed_4_4_256 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.mixed_4_4_4096 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.mixed_4_4_65536 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_1_16_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_1_256_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_1_4096_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_1_65536_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_1_1048576_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_4_1_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_4_16_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_4_256_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_4_4096_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_4_65536_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_1_16_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_1_256_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_1_4096_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_1_65536_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_1_1048576_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_4_1_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_4_16_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_4_256_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_4_4096_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_4_65536_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.mixed_4_16_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.mixed_4_256_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.mixed_4_4096_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.mixed_4_65536_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_16_1_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_256_1_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_4096_1_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_65536_1_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_1048576_1_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_1_4_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_16_4_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_256_4_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_4096_4_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_65536_4_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_16_1_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_256_1_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_4096_1_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_65536_1_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_1048576_1_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_1_4_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_16_4_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_256_4_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_4096_4_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_65536_4_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.mixed_16_4_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.mixed_256_4_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.mixed_4096_4_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.mixed_65536_4_4 dEQP-VK.ray_tracing.callable_shader.rgen_call dEQP-VK.ray_tracing.callable_shader.rgen_call_call dEQP-VK.ray_tracing.callable_shader.hit_call @@ -206149,6 +206605,54 @@ dEQP-VK.ray_tracing.acceleration_structures.operations.serialization.gpu_built.b dEQP-VK.ray_tracing.acceleration_structures.operations.serialization.gpu_built.bottom_acceleration_structure.aabbs dEQP-VK.ray_tracing.acceleration_structures.requirements.memory_build_scratch dEQP-VK.ray_tracing.acceleration_structures.requirements.memory_update_scratch +dEQP-VK.ray_tracing.acceleration_structures.host_threading.1.copy.cpu_built.top_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.1.copy.cpu_built.top_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.1.copy.cpu_built.bottom_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.1.copy.cpu_built.bottom_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.1.serialization.cpu_built.top_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.1.serialization.cpu_built.top_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.1.serialization.cpu_built.bottom_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.1.serialization.cpu_built.bottom_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.2.copy.cpu_built.top_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.2.copy.cpu_built.top_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.2.copy.cpu_built.bottom_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.2.copy.cpu_built.bottom_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.2.serialization.cpu_built.top_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.2.serialization.cpu_built.top_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.2.serialization.cpu_built.bottom_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.2.serialization.cpu_built.bottom_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.3.copy.cpu_built.top_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.3.copy.cpu_built.top_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.3.copy.cpu_built.bottom_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.3.copy.cpu_built.bottom_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.3.serialization.cpu_built.top_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.3.serialization.cpu_built.top_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.3.serialization.cpu_built.bottom_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.3.serialization.cpu_built.bottom_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.4.copy.cpu_built.top_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.4.copy.cpu_built.top_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.4.copy.cpu_built.bottom_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.4.copy.cpu_built.bottom_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.4.serialization.cpu_built.top_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.4.serialization.cpu_built.top_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.4.serialization.cpu_built.bottom_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.4.serialization.cpu_built.bottom_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.8.copy.cpu_built.top_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.8.copy.cpu_built.top_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.8.copy.cpu_built.bottom_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.8.copy.cpu_built.bottom_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.8.serialization.cpu_built.top_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.8.serialization.cpu_built.top_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.8.serialization.cpu_built.bottom_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.8.serialization.cpu_built.bottom_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.max.copy.cpu_built.top_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.max.copy.cpu_built.top_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.max.copy.cpu_built.bottom_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.max.copy.cpu_built.bottom_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.max.serialization.cpu_built.top_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.max.serialization.cpu_built.top_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.max.serialization.cpu_built.bottom_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.max.serialization.cpu_built.bottom_acceleration_structure.aabbs dEQP-VK.ray_tracing.indirect.build_structure dEQP-VK.ray_tracing.watertightness.0.4 dEQP-VK.ray_tracing.watertightness.0.16 diff --git a/android/cts/master/vk-master.txt b/android/cts/master/vk-master.txt index 5488fe3..c8e8c4e 100644 --- a/android/cts/master/vk-master.txt +++ b/android/cts/master/vk-master.txt @@ -601415,78 +601415,30 @@ dEQP-VK.ray_tracing.large_shader_set.cpu_ht.64 dEQP-VK.ray_tracing.large_shader_set.cpu_ht.256 dEQP-VK.ray_tracing.large_shader_set.cpu_ht.1024 dEQP-VK.ray_tracing.large_shader_set.cpu_ht.4096 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_1_1_16 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_1_1_256 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_1_1_4096 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_1_1_65536 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_1_1_1048576 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_4_4_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_4_4_16 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_4_4_256 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_4_4_4096 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_4_4_65536 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_1_1_16 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_1_1_256 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_1_1_4096 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_1_1_65536 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_1_1_1048576 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_4_4_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_4_4_16 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_4_4_256 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_4_4_4096 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_4_4_65536 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.mixed_4_4_16 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.mixed_4_4_256 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.mixed_4_4_4096 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.mixed_4_4_65536 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_1_16_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_1_256_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_1_4096_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_1_65536_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_1_1048576_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_4_1_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_4_16_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_4_256_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_4_4096_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_4_65536_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_1_16_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_1_256_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_1_4096_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_1_65536_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_1_1048576_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_4_1_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_4_16_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_4_256_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_4_4096_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_4_65536_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.mixed_4_16_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.mixed_4_256_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.mixed_4_4096_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.mixed_4_65536_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_16_1_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_256_1_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_4096_1_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_65536_1_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_1048576_1_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_1_4_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_16_4_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_256_4_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_4096_4_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_65536_4_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_16_1_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_256_1_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_4096_1_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_65536_1_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_1048576_1_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_1_4_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_16_4_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_256_4_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_4096_4_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_65536_4_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.mixed_16_4_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.mixed_256_4_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.mixed_4096_4_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.mixed_65536_4_4 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_1.64 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_1.256 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_1.1024 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_1.4096 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_2.64 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_2.256 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_2.1024 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_2.4096 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_3.64 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_3.256 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_3.1024 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_3.4096 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_4.64 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_4.256 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_4.1024 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_4.4096 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_8.64 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_8.256 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_8.1024 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_8.4096 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_max.64 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_max.256 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_max.1024 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_max.4096 dEQP-VK.ray_tracing.build.gpu_cpuht.level_primitives.triangles_1_1_16 dEQP-VK.ray_tracing.build.gpu_cpuht.level_primitives.triangles_1_1_256 dEQP-VK.ray_tracing.build.gpu_cpuht.level_primitives.triangles_1_1_4096 @@ -601559,6 +601511,510 @@ dEQP-VK.ray_tracing.build.gpu_cpuht.level_instances.mixed_16_4_4 dEQP-VK.ray_tracing.build.gpu_cpuht.level_instances.mixed_256_4_4 dEQP-VK.ray_tracing.build.gpu_cpuht.level_instances.mixed_4096_4_4 dEQP-VK.ray_tracing.build.gpu_cpuht.level_instances.mixed_65536_4_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.triangles_1_1_16 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.triangles_1_1_256 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.triangles_1_1_4096 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.triangles_1_1_65536 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.triangles_1_1_1048576 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.triangles_4_4_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.triangles_4_4_16 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.triangles_4_4_256 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.triangles_4_4_4096 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.triangles_4_4_65536 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.aabbs_1_1_16 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.aabbs_1_1_256 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.aabbs_1_1_4096 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.aabbs_1_1_65536 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.aabbs_1_1_1048576 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.aabbs_4_4_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.aabbs_4_4_16 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.aabbs_4_4_256 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.aabbs_4_4_4096 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.aabbs_4_4_65536 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.mixed_4_4_16 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.mixed_4_4_256 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.mixed_4_4_4096 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.mixed_4_4_65536 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.triangles_1_16_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.triangles_1_256_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.triangles_1_4096_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.triangles_1_65536_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.triangles_1_1048576_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.triangles_4_1_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.triangles_4_16_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.triangles_4_256_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.triangles_4_4096_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.triangles_4_65536_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.aabbs_1_16_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.aabbs_1_256_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.aabbs_1_4096_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.aabbs_1_65536_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.aabbs_1_1048576_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.aabbs_4_1_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.aabbs_4_16_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.aabbs_4_256_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.aabbs_4_4096_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.aabbs_4_65536_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.mixed_4_16_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.mixed_4_256_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.mixed_4_4096_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.mixed_4_65536_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.triangles_16_1_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.triangles_256_1_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.triangles_4096_1_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.triangles_65536_1_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.triangles_1048576_1_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.triangles_1_4_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.triangles_16_4_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.triangles_256_4_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.triangles_4096_4_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.triangles_65536_4_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.aabbs_16_1_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.aabbs_256_1_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.aabbs_4096_1_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.aabbs_65536_1_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.aabbs_1048576_1_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.aabbs_1_4_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.aabbs_16_4_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.aabbs_256_4_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.aabbs_4096_4_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.aabbs_65536_4_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.mixed_16_4_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.mixed_256_4_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.mixed_4096_4_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.mixed_65536_4_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.triangles_1_1_16 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.triangles_1_1_256 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.triangles_1_1_4096 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.triangles_1_1_65536 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.triangles_1_1_1048576 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.triangles_4_4_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.triangles_4_4_16 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.triangles_4_4_256 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.triangles_4_4_4096 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.triangles_4_4_65536 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.aabbs_1_1_16 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.aabbs_1_1_256 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.aabbs_1_1_4096 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.aabbs_1_1_65536 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.aabbs_1_1_1048576 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.aabbs_4_4_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.aabbs_4_4_16 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.aabbs_4_4_256 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.aabbs_4_4_4096 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.aabbs_4_4_65536 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.mixed_4_4_16 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.mixed_4_4_256 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.mixed_4_4_4096 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.mixed_4_4_65536 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.triangles_1_16_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.triangles_1_256_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.triangles_1_4096_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.triangles_1_65536_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.triangles_1_1048576_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.triangles_4_1_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.triangles_4_16_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.triangles_4_256_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.triangles_4_4096_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.triangles_4_65536_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.aabbs_1_16_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.aabbs_1_256_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.aabbs_1_4096_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.aabbs_1_65536_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.aabbs_1_1048576_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.aabbs_4_1_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.aabbs_4_16_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.aabbs_4_256_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.aabbs_4_4096_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.aabbs_4_65536_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.mixed_4_16_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.mixed_4_256_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.mixed_4_4096_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.mixed_4_65536_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.triangles_16_1_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.triangles_256_1_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.triangles_4096_1_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.triangles_65536_1_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.triangles_1048576_1_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.triangles_1_4_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.triangles_16_4_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.triangles_256_4_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.triangles_4096_4_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.triangles_65536_4_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.aabbs_16_1_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.aabbs_256_1_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.aabbs_4096_1_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.aabbs_65536_1_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.aabbs_1048576_1_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.aabbs_1_4_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.aabbs_16_4_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.aabbs_256_4_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.aabbs_4096_4_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.aabbs_65536_4_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.mixed_16_4_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.mixed_256_4_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.mixed_4096_4_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.mixed_65536_4_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.triangles_1_1_16 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.triangles_1_1_256 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.triangles_1_1_4096 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.triangles_1_1_65536 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.triangles_1_1_1048576 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.triangles_4_4_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.triangles_4_4_16 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.triangles_4_4_256 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.triangles_4_4_4096 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.triangles_4_4_65536 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.aabbs_1_1_16 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.aabbs_1_1_256 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.aabbs_1_1_4096 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.aabbs_1_1_65536 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.aabbs_1_1_1048576 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.aabbs_4_4_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.aabbs_4_4_16 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.aabbs_4_4_256 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.aabbs_4_4_4096 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.aabbs_4_4_65536 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.mixed_4_4_16 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.mixed_4_4_256 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.mixed_4_4_4096 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.mixed_4_4_65536 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.triangles_1_16_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.triangles_1_256_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.triangles_1_4096_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.triangles_1_65536_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.triangles_1_1048576_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.triangles_4_1_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.triangles_4_16_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.triangles_4_256_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.triangles_4_4096_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.triangles_4_65536_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.aabbs_1_16_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.aabbs_1_256_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.aabbs_1_4096_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.aabbs_1_65536_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.aabbs_1_1048576_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.aabbs_4_1_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.aabbs_4_16_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.aabbs_4_256_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.aabbs_4_4096_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.aabbs_4_65536_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.mixed_4_16_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.mixed_4_256_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.mixed_4_4096_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.mixed_4_65536_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.triangles_16_1_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.triangles_256_1_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.triangles_4096_1_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.triangles_65536_1_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.triangles_1048576_1_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.triangles_1_4_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.triangles_16_4_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.triangles_256_4_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.triangles_4096_4_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.triangles_65536_4_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.aabbs_16_1_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.aabbs_256_1_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.aabbs_4096_1_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.aabbs_65536_1_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.aabbs_1048576_1_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.aabbs_1_4_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.aabbs_16_4_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.aabbs_256_4_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.aabbs_4096_4_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.aabbs_65536_4_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.mixed_16_4_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.mixed_256_4_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.mixed_4096_4_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.mixed_65536_4_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.triangles_1_1_16 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.triangles_1_1_256 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.triangles_1_1_4096 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.triangles_1_1_65536 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.triangles_1_1_1048576 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.triangles_4_4_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.triangles_4_4_16 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.triangles_4_4_256 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.triangles_4_4_4096 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.triangles_4_4_65536 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.aabbs_1_1_16 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.aabbs_1_1_256 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.aabbs_1_1_4096 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.aabbs_1_1_65536 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.aabbs_1_1_1048576 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.aabbs_4_4_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.aabbs_4_4_16 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.aabbs_4_4_256 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.aabbs_4_4_4096 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.aabbs_4_4_65536 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.mixed_4_4_16 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.mixed_4_4_256 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.mixed_4_4_4096 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.mixed_4_4_65536 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.triangles_1_16_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.triangles_1_256_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.triangles_1_4096_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.triangles_1_65536_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.triangles_1_1048576_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.triangles_4_1_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.triangles_4_16_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.triangles_4_256_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.triangles_4_4096_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.triangles_4_65536_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.aabbs_1_16_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.aabbs_1_256_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.aabbs_1_4096_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.aabbs_1_65536_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.aabbs_1_1048576_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.aabbs_4_1_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.aabbs_4_16_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.aabbs_4_256_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.aabbs_4_4096_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.aabbs_4_65536_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.mixed_4_16_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.mixed_4_256_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.mixed_4_4096_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.mixed_4_65536_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.triangles_16_1_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.triangles_256_1_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.triangles_4096_1_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.triangles_65536_1_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.triangles_1048576_1_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.triangles_1_4_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.triangles_16_4_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.triangles_256_4_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.triangles_4096_4_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.triangles_65536_4_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.aabbs_16_1_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.aabbs_256_1_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.aabbs_4096_1_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.aabbs_65536_1_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.aabbs_1048576_1_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.aabbs_1_4_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.aabbs_16_4_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.aabbs_256_4_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.aabbs_4096_4_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.aabbs_65536_4_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.mixed_16_4_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.mixed_256_4_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.mixed_4096_4_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.mixed_65536_4_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.triangles_1_1_16 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.triangles_1_1_256 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.triangles_1_1_4096 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.triangles_1_1_65536 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.triangles_1_1_1048576 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.triangles_4_4_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.triangles_4_4_16 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.triangles_4_4_256 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.triangles_4_4_4096 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.triangles_4_4_65536 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.aabbs_1_1_16 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.aabbs_1_1_256 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.aabbs_1_1_4096 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.aabbs_1_1_65536 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.aabbs_1_1_1048576 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.aabbs_4_4_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.aabbs_4_4_16 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.aabbs_4_4_256 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.aabbs_4_4_4096 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.aabbs_4_4_65536 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.mixed_4_4_16 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.mixed_4_4_256 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.mixed_4_4_4096 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.mixed_4_4_65536 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.triangles_1_16_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.triangles_1_256_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.triangles_1_4096_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.triangles_1_65536_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.triangles_1_1048576_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.triangles_4_1_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.triangles_4_16_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.triangles_4_256_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.triangles_4_4096_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.triangles_4_65536_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.aabbs_1_16_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.aabbs_1_256_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.aabbs_1_4096_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.aabbs_1_65536_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.aabbs_1_1048576_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.aabbs_4_1_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.aabbs_4_16_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.aabbs_4_256_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.aabbs_4_4096_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.aabbs_4_65536_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.mixed_4_16_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.mixed_4_256_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.mixed_4_4096_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.mixed_4_65536_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.triangles_16_1_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.triangles_256_1_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.triangles_4096_1_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.triangles_65536_1_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.triangles_1048576_1_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.triangles_1_4_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.triangles_16_4_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.triangles_256_4_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.triangles_4096_4_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.triangles_65536_4_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.aabbs_16_1_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.aabbs_256_1_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.aabbs_4096_1_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.aabbs_65536_1_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.aabbs_1048576_1_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.aabbs_1_4_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.aabbs_16_4_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.aabbs_256_4_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.aabbs_4096_4_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.aabbs_65536_4_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.mixed_16_4_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.mixed_256_4_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.mixed_4096_4_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.mixed_65536_4_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.triangles_1_1_16 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.triangles_1_1_256 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.triangles_1_1_4096 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.triangles_1_1_65536 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.triangles_1_1_1048576 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.triangles_4_4_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.triangles_4_4_16 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.triangles_4_4_256 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.triangles_4_4_4096 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.triangles_4_4_65536 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.aabbs_1_1_16 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.aabbs_1_1_256 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.aabbs_1_1_4096 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.aabbs_1_1_65536 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.aabbs_1_1_1048576 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.aabbs_4_4_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.aabbs_4_4_16 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.aabbs_4_4_256 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.aabbs_4_4_4096 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.aabbs_4_4_65536 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.mixed_4_4_16 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.mixed_4_4_256 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.mixed_4_4_4096 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.mixed_4_4_65536 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.triangles_1_16_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.triangles_1_256_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.triangles_1_4096_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.triangles_1_65536_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.triangles_1_1048576_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.triangles_4_1_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.triangles_4_16_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.triangles_4_256_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.triangles_4_4096_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.triangles_4_65536_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.aabbs_1_16_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.aabbs_1_256_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.aabbs_1_4096_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.aabbs_1_65536_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.aabbs_1_1048576_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.aabbs_4_1_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.aabbs_4_16_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.aabbs_4_256_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.aabbs_4_4096_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.aabbs_4_65536_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.mixed_4_16_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.mixed_4_256_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.mixed_4_4096_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.mixed_4_65536_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.triangles_16_1_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.triangles_256_1_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.triangles_4096_1_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.triangles_65536_1_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.triangles_1048576_1_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.triangles_1_4_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.triangles_16_4_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.triangles_256_4_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.triangles_4096_4_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.triangles_65536_4_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.aabbs_16_1_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.aabbs_256_1_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.aabbs_4096_1_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.aabbs_65536_1_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.aabbs_1048576_1_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.aabbs_1_4_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.aabbs_16_4_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.aabbs_256_4_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.aabbs_4096_4_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.aabbs_65536_4_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.mixed_16_4_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.mixed_256_4_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.mixed_4096_4_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.mixed_65536_4_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_1_1_16 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_1_1_256 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_1_1_4096 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_1_1_65536 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_1_1_1048576 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_4_4_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_4_4_16 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_4_4_256 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_4_4_4096 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_4_4_65536 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_1_1_16 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_1_1_256 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_1_1_4096 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_1_1_65536 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_1_1_1048576 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_4_4_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_4_4_16 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_4_4_256 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_4_4_4096 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_4_4_65536 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.mixed_4_4_16 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.mixed_4_4_256 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.mixed_4_4_4096 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.mixed_4_4_65536 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_1_16_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_1_256_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_1_4096_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_1_65536_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_1_1048576_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_4_1_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_4_16_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_4_256_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_4_4096_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_4_65536_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_1_16_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_1_256_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_1_4096_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_1_65536_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_1_1048576_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_4_1_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_4_16_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_4_256_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_4_4096_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_4_65536_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.mixed_4_16_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.mixed_4_256_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.mixed_4_4096_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.mixed_4_65536_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_16_1_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_256_1_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_4096_1_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_65536_1_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_1048576_1_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_1_4_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_16_4_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_256_4_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_4096_4_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_65536_4_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_16_1_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_256_1_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_4096_1_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_65536_1_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_1048576_1_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_1_4_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_16_4_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_256_4_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_4096_4_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_65536_4_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.mixed_16_4_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.mixed_256_4_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.mixed_4096_4_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.mixed_65536_4_4 dEQP-VK.ray_tracing.callable_shader.rgen_call dEQP-VK.ray_tracing.callable_shader.rgen_call_call dEQP-VK.ray_tracing.callable_shader.hit_call @@ -602563,6 +603019,54 @@ dEQP-VK.ray_tracing.acceleration_structures.operations.serialization.gpu_built.b dEQP-VK.ray_tracing.acceleration_structures.operations.serialization.gpu_built.bottom_acceleration_structure.aabbs dEQP-VK.ray_tracing.acceleration_structures.requirements.memory_build_scratch dEQP-VK.ray_tracing.acceleration_structures.requirements.memory_update_scratch +dEQP-VK.ray_tracing.acceleration_structures.host_threading.1.copy.cpu_built.top_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.1.copy.cpu_built.top_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.1.copy.cpu_built.bottom_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.1.copy.cpu_built.bottom_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.1.serialization.cpu_built.top_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.1.serialization.cpu_built.top_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.1.serialization.cpu_built.bottom_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.1.serialization.cpu_built.bottom_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.2.copy.cpu_built.top_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.2.copy.cpu_built.top_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.2.copy.cpu_built.bottom_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.2.copy.cpu_built.bottom_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.2.serialization.cpu_built.top_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.2.serialization.cpu_built.top_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.2.serialization.cpu_built.bottom_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.2.serialization.cpu_built.bottom_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.3.copy.cpu_built.top_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.3.copy.cpu_built.top_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.3.copy.cpu_built.bottom_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.3.copy.cpu_built.bottom_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.3.serialization.cpu_built.top_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.3.serialization.cpu_built.top_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.3.serialization.cpu_built.bottom_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.3.serialization.cpu_built.bottom_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.4.copy.cpu_built.top_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.4.copy.cpu_built.top_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.4.copy.cpu_built.bottom_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.4.copy.cpu_built.bottom_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.4.serialization.cpu_built.top_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.4.serialization.cpu_built.top_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.4.serialization.cpu_built.bottom_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.4.serialization.cpu_built.bottom_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.8.copy.cpu_built.top_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.8.copy.cpu_built.top_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.8.copy.cpu_built.bottom_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.8.copy.cpu_built.bottom_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.8.serialization.cpu_built.top_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.8.serialization.cpu_built.top_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.8.serialization.cpu_built.bottom_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.8.serialization.cpu_built.bottom_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.max.copy.cpu_built.top_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.max.copy.cpu_built.top_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.max.copy.cpu_built.bottom_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.max.copy.cpu_built.bottom_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.max.serialization.cpu_built.top_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.max.serialization.cpu_built.top_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.max.serialization.cpu_built.bottom_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.max.serialization.cpu_built.bottom_acceleration_structure.aabbs dEQP-VK.ray_tracing.indirect.build_structure dEQP-VK.ray_tracing.watertightness.0.4 dEQP-VK.ray_tracing.watertightness.0.16 diff --git a/external/vulkancts/framework/vulkan/vkRayTracingUtil.cpp b/external/vulkancts/framework/vulkan/vkRayTracingUtil.cpp index 9c8e6e6..e505859 100644 --- a/external/vulkancts/framework/vulkan/vkRayTracingUtil.cpp +++ b/external/vulkancts/framework/vulkan/vkRayTracingUtil.cpp @@ -34,6 +34,13 @@ namespace vk { +struct DeferredThreadParams +{ + const DeviceInterface& vk; + VkDevice device; + VkDeferredOperationKHR deferredOperation; + VkResult result; +}; std::string getCommonRayGenerationShader (void) { @@ -339,6 +346,60 @@ VkResult finishDeferredOperation (const DeviceInterface& vk, return result; } +void finishDeferredOperationThreaded (DeferredThreadParams* deferredThreadParams) +{ + deferredThreadParams->result = finishDeferredOperation(deferredThreadParams->vk, deferredThreadParams->device, deferredThreadParams->deferredOperation); +} + +void finishDeferredOperation (const DeviceInterface& vk, + VkDevice device, + VkDeferredOperationKHR deferredOperation, + const deUint32 workerThreadCount) +{ + if (workerThreadCount == 0) + { + VK_CHECK(finishDeferredOperation(vk, device, deferredOperation)); + } + else + { + const deUint32 maxThreadCountSupported = deMinu32(256u, vk.getDeferredOperationMaxConcurrencyKHR(device, deferredOperation)); + const deUint32 requestedThreadCount = workerThreadCount; + const deUint32 testThreadCount = requestedThreadCount == std::numeric_limits::max() ? maxThreadCountSupported : requestedThreadCount; + + if (maxThreadCountSupported == 0) + TCU_FAIL("vkGetDeferredOperationMaxConcurrencyKHR must not return 0"); + + if (testThreadCount > maxThreadCountSupported) + TCU_THROW(NotSupportedError, "Requested number of threads is greater than allowed maximum"); + + const DeferredThreadParams deferredThreadParams = + { + vk, // const DeviceInterface& vk; + device, // VkDevice device; + deferredOperation, // VkDeferredOperationKHR deferredOperation; + VK_RESULT_MAX_ENUM, // VResult result; + }; + std::vector threadParams (testThreadCount, deferredThreadParams); + std::vector > threads (testThreadCount); + bool executionResult = false; + + DE_ASSERT(threads.size() > 0 && threads.size() == testThreadCount); + + for (deUint32 threadNdx = 0; threadNdx < testThreadCount; ++threadNdx) + threads[threadNdx] = de::MovePtr(new std::thread(finishDeferredOperationThreaded, &threadParams[threadNdx])); + + for (deUint32 threadNdx = 0; threadNdx < testThreadCount; ++threadNdx) + threads[threadNdx]->join(); + + for (deUint32 threadNdx = 0; threadNdx < testThreadCount; ++threadNdx) + if (threadParams[threadNdx].result == VK_SUCCESS) + executionResult = true; + + if (!executionResult) + TCU_FAIL("Neither reported VK_SUCCESS"); + } +} + SerialStorage::SerialStorage (const DeviceInterface& vk, const VkDevice device, Allocator& allocator, @@ -560,7 +621,8 @@ public: void setBuildType (const VkAccelerationStructureBuildTypeKHR buildType) override; void setBuildFlags (const VkBuildAccelerationStructureFlagsKHR flags) override; - void setDeferredOperation (const bool deferredOperation) override; + void setDeferredOperation (const bool deferredOperation, + const deUint32 workerThreadCount) override; void setUseArrayOfPointers (const bool useArrayOfPointers) override; void setIndirectBuildParameters (const VkBuffer indirectBuffer, const VkDeviceSize indirectBufferOffset, @@ -596,6 +658,7 @@ protected: VkAccelerationStructureBuildTypeKHR m_buildType; VkBuildAccelerationStructureFlagsKHR m_buildFlags; bool m_deferredOperation; + deUint32 m_workerThreadCount; bool m_useArrayOfPointers; de::MovePtr m_vertexBuffer; de::MovePtr m_indexBuffer; @@ -626,6 +689,7 @@ BottomLevelAccelerationStructureKHR::BottomLevelAccelerationStructureKHR () , m_buildType (VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR) , m_buildFlags (0u) , m_deferredOperation (false) + , m_workerThreadCount (0) , m_useArrayOfPointers (false) , m_vertexBuffer () , m_indexBuffer () @@ -648,9 +712,11 @@ void BottomLevelAccelerationStructureKHR::setBuildFlags (const VkBuildAccelerati m_buildFlags = flags; } -void BottomLevelAccelerationStructureKHR::setDeferredOperation (const bool deferredOperation) +void BottomLevelAccelerationStructureKHR::setDeferredOperation (const bool deferredOperation, + const deUint32 workerThreadCount) { m_deferredOperation = deferredOperation; + m_workerThreadCount = workerThreadCount; } void BottomLevelAccelerationStructureKHR::setUseArrayOfPointers (const bool useArrayOfPointers) @@ -898,7 +964,7 @@ void BottomLevelAccelerationStructureKHR::build (const DeviceInterface& vk, DE_ASSERT(result == VK_OPERATION_DEFERRED_KHR || result == VK_OPERATION_NOT_DEFERRED_KHR || result == VK_SUCCESS); DE_UNREF(result); - VK_CHECK(finishDeferredOperation(vk, device, deferredOperation)); + finishDeferredOperation(vk, device, deferredOperation, m_workerThreadCount); accelerationStructureBuildGeometryInfoKHR.pNext = DE_NULL; } @@ -956,7 +1022,7 @@ void BottomLevelAccelerationStructureKHR::copyFrom (const DeviceInterface& DE_ASSERT(result == VK_OPERATION_DEFERRED_KHR || result == VK_OPERATION_NOT_DEFERRED_KHR || result == VK_SUCCESS); DE_UNREF(result); - VK_CHECK(finishDeferredOperation(vk, device, deferredOperation)); + finishDeferredOperation(vk, device, deferredOperation, m_workerThreadCount); } if (m_buildType == VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR) @@ -973,10 +1039,18 @@ void BottomLevelAccelerationStructureKHR::serialize (const DeviceInterface& vk, const VkCommandBuffer cmdBuffer, SerialStorage* storage) { - VkCopyAccelerationStructureToMemoryInfoKHR copyAccelerationStructureInfo = + Move deferredOperation = (m_deferredOperation ? createDeferredOperationKHR(vk, device) : Move()); + VkDeferredOperationInfoKHR deferredOperationInfoKHR = + { + VK_STRUCTURE_TYPE_DEFERRED_OPERATION_INFO_KHR, // VkStructureType sType; + DE_NULL, // const void* pNext; + *deferredOperation // VkDeferredOperationKHR operationHandle; + }; + const VkDeferredOperationInfoKHR* deferredOperationInfoPtr = m_deferredOperation ? &deferredOperationInfoKHR : DE_NULL; + const VkCopyAccelerationStructureToMemoryInfoKHR copyAccelerationStructureInfo = { VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR, // VkStructureType sType; - DE_NULL, // const void* pNext; + deferredOperationInfoPtr, // const void* pNext; *(getPtr()), // VkAccelerationStructureKHR src; storage->getAddress(vk,device), // VkDeviceOrHostAddressKHR dst; VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR // VkCopyAccelerationStructureModeKHR mode; @@ -988,9 +1062,19 @@ void BottomLevelAccelerationStructureKHR::serialize (const DeviceInterface& vk, } else { - VK_CHECK(vk.copyAccelerationStructureToMemoryKHR(device, ©AccelerationStructureInfo)); + const VkResult result = vk.copyAccelerationStructureToMemoryKHR(device, ©AccelerationStructureInfo); + + if (!m_deferredOperation) + { + VK_CHECK(result); + } + else + { + DE_ASSERT(result == VK_OPERATION_DEFERRED_KHR || result == VK_OPERATION_NOT_DEFERRED_KHR || result == VK_SUCCESS); + + finishDeferredOperation(vk, device, *deferredOperation, m_workerThreadCount); + } } - // There is no deferred operation for vkCopyAccelerationStructureToMemoryKHR } void BottomLevelAccelerationStructureKHR::deserialize (const DeviceInterface& vk, @@ -998,10 +1082,18 @@ void BottomLevelAccelerationStructureKHR::deserialize (const DeviceInterface& vk const VkCommandBuffer cmdBuffer, SerialStorage* storage) { - VkCopyMemoryToAccelerationStructureInfoKHR copyAccelerationStructureInfo = + const Move deferredOperation = (m_deferredOperation ? createDeferredOperationKHR(vk, device) : Move()); + const VkDeferredOperationInfoKHR deferredOperationInfoKHR = + { + VK_STRUCTURE_TYPE_DEFERRED_OPERATION_INFO_KHR, // VkStructureType sType; + DE_NULL, // const void* pNext; + *deferredOperation // VkDeferredOperationKHR operationHandle; + }; + const VkDeferredOperationInfoKHR* deferredOperationInfoPtr = m_deferredOperation ? &deferredOperationInfoKHR : DE_NULL; + const VkCopyMemoryToAccelerationStructureInfoKHR copyAccelerationStructureInfo = { VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR, // VkStructureType sType; - DE_NULL, // const void* pNext; + deferredOperationInfoPtr, // const void* pNext; storage->getAddressConst(vk,device), // VkDeviceOrHostAddressConstKHR src; *(getPtr()), // VkAccelerationStructureKHR dst; VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR // VkCopyAccelerationStructureModeKHR mode; @@ -1013,7 +1105,18 @@ void BottomLevelAccelerationStructureKHR::deserialize (const DeviceInterface& vk } else { - VK_CHECK(vk.copyMemoryToAccelerationStructureKHR(device, ©AccelerationStructureInfo)); + const VkResult result = vk.copyMemoryToAccelerationStructureKHR(device, ©AccelerationStructureInfo); + + if (!m_deferredOperation) + { + VK_CHECK(result); + } + else + { + DE_ASSERT(result == VK_OPERATION_DEFERRED_KHR || result == VK_OPERATION_NOT_DEFERRED_KHR || result == VK_SUCCESS); + + finishDeferredOperation(vk, device, *deferredOperation, m_workerThreadCount); + } } if (m_buildType == VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR) @@ -1213,7 +1316,8 @@ public: void setBuildType (const VkAccelerationStructureBuildTypeKHR buildType) override; void setBuildFlags (const VkBuildAccelerationStructureFlagsKHR flags) override; - void setDeferredOperation (const bool deferredOperation) override; + void setDeferredOperation (const bool deferredOperation, + const deUint32 workerThreadCount) override; void setUseArrayOfPointers (const bool useArrayOfPointers) override; void setIndirectBuildParameters (const VkBuffer indirectBuffer, const VkDeviceSize indirectBufferOffset, @@ -1249,6 +1353,7 @@ protected: VkAccelerationStructureBuildTypeKHR m_buildType; VkBuildAccelerationStructureFlagsKHR m_buildFlags; bool m_deferredOperation; + deUint32 m_workerThreadCount; bool m_useArrayOfPointers; de::MovePtr m_instanceBuffer; de::MovePtr m_instanceAddressBuffer; @@ -1275,6 +1380,7 @@ TopLevelAccelerationStructureKHR::TopLevelAccelerationStructureKHR () , m_buildType (VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR) , m_buildFlags (0u) , m_deferredOperation (false) + , m_workerThreadCount (0) , m_useArrayOfPointers (false) , m_instanceBuffer () , m_instanceAddressBuffer () @@ -1301,9 +1407,11 @@ void TopLevelAccelerationStructureKHR::setBuildFlags (const VkBuildAccelerationS m_buildFlags = flags; } -void TopLevelAccelerationStructureKHR::setDeferredOperation (const bool deferredOperation) +void TopLevelAccelerationStructureKHR::setDeferredOperation (const bool deferredOperation, + const deUint32 workerThreadCount) { m_deferredOperation = deferredOperation; + m_workerThreadCount = workerThreadCount; } void TopLevelAccelerationStructureKHR::setUseArrayOfPointers (const bool useArrayOfPointers) @@ -1531,7 +1639,7 @@ void TopLevelAccelerationStructureKHR::build (const DeviceInterface& vk, DE_ASSERT(result == VK_OPERATION_DEFERRED_KHR || result == VK_OPERATION_NOT_DEFERRED_KHR || result == VK_SUCCESS); DE_UNREF(result); - VK_CHECK(finishDeferredOperation(vk, device, deferredOperation)); + finishDeferredOperation(vk, device, deferredOperation, m_workerThreadCount); accelerationStructureBuildGeometryInfoKHR.pNext = DE_NULL; } @@ -1588,7 +1696,7 @@ void TopLevelAccelerationStructureKHR::copyFrom (const DeviceInterface& vk, DE_ASSERT(result == VK_OPERATION_DEFERRED_KHR || result == VK_OPERATION_NOT_DEFERRED_KHR || result == VK_SUCCESS); DE_UNREF(result); - VK_CHECK(finishDeferredOperation(vk, device, deferredOperation)); + finishDeferredOperation(vk, device, deferredOperation, m_workerThreadCount); } if (m_buildType == VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR) @@ -1606,10 +1714,18 @@ void TopLevelAccelerationStructureKHR::serialize (const DeviceInterface& vk, const VkCommandBuffer cmdBuffer, SerialStorage* storage) { - VkCopyAccelerationStructureToMemoryInfoKHR copyAccelerationStructureInfo = + Move deferredOperation = (m_deferredOperation ? createDeferredOperationKHR(vk, device) : Move()); + VkDeferredOperationInfoKHR deferredOperationInfoKHR = + { + VK_STRUCTURE_TYPE_DEFERRED_OPERATION_INFO_KHR, // VkStructureType sType; + DE_NULL, // const void* pNext; + *deferredOperation // VkDeferredOperationKHR operationHandle; + }; + const VkDeferredOperationInfoKHR* deferredOperationInfoPtr = m_deferredOperation ? &deferredOperationInfoKHR : DE_NULL; + const VkCopyAccelerationStructureToMemoryInfoKHR copyAccelerationStructureInfo = { VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR, // VkStructureType sType; - DE_NULL, // const void* pNext; + deferredOperationInfoPtr, // const void* pNext; *(getPtr()), // VkAccelerationStructureKHR src; storage->getAddress(vk,device), // VkDeviceOrHostAddressKHR dst; VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR // VkCopyAccelerationStructureModeKHR mode; @@ -1621,9 +1737,19 @@ void TopLevelAccelerationStructureKHR::serialize (const DeviceInterface& vk, } else { - VK_CHECK(vk.copyAccelerationStructureToMemoryKHR(device, ©AccelerationStructureInfo)); + const VkResult result = vk.copyAccelerationStructureToMemoryKHR(device, ©AccelerationStructureInfo); + + if (!m_deferredOperation) + { + VK_CHECK(result); + } + else + { + DE_ASSERT(result == VK_OPERATION_DEFERRED_KHR || result == VK_OPERATION_NOT_DEFERRED_KHR || result == VK_SUCCESS); + + finishDeferredOperation(vk, device, *deferredOperation, m_workerThreadCount); + } } - // There is no deferred operation for vkCopyAccelerationStructureToMemoryKHR } void TopLevelAccelerationStructureKHR::deserialize (const DeviceInterface& vk, @@ -1631,10 +1757,18 @@ void TopLevelAccelerationStructureKHR::deserialize (const DeviceInterface& vk, const VkCommandBuffer cmdBuffer, SerialStorage* storage) { - VkCopyMemoryToAccelerationStructureInfoKHR copyAccelerationStructureInfo = + const Move deferredOperation = (m_deferredOperation ? createDeferredOperationKHR(vk, device) : Move()); + const VkDeferredOperationInfoKHR deferredOperationInfoKHR = + { + VK_STRUCTURE_TYPE_DEFERRED_OPERATION_INFO_KHR, // VkStructureType sType; + DE_NULL, // const void* pNext; + *deferredOperation // VkDeferredOperationKHR operationHandle; + }; + const VkDeferredOperationInfoKHR* deferredOperationInfoPtr = m_deferredOperation ? &deferredOperationInfoKHR : DE_NULL; + const VkCopyMemoryToAccelerationStructureInfoKHR copyAccelerationStructureInfo = { VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR, // VkStructureType sType; - DE_NULL, // const void* pNext; + deferredOperationInfoPtr, // const void* pNext; storage->getAddressConst(vk,device), // VkDeviceOrHostAddressConstKHR src; *(getPtr()), // VkAccelerationStructureKHR dst; VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR // VkCopyAccelerationStructureModeKHR mode; @@ -1646,7 +1780,18 @@ void TopLevelAccelerationStructureKHR::deserialize (const DeviceInterface& vk, } else { - VK_CHECK(vk.copyMemoryToAccelerationStructureKHR(device, ©AccelerationStructureInfo)); + const VkResult result = vk.copyMemoryToAccelerationStructureKHR(device, ©AccelerationStructureInfo); + + if (!m_deferredOperation) + { + VK_CHECK(result); + } + else + { + DE_ASSERT(result == VK_OPERATION_DEFERRED_KHR || result == VK_OPERATION_NOT_DEFERRED_KHR || result == VK_SUCCESS); + + finishDeferredOperation(vk, device, *deferredOperation, m_workerThreadCount); + } } if (m_buildType == VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR) @@ -1725,6 +1870,7 @@ RayTracingPipeline::RayTracingPipeline () , m_maxAttributeSize (0U) , m_maxCallableSize (0U) , m_deferredOperation (false) + , m_workerThreadCount (0) { } @@ -1888,7 +2034,7 @@ Move RayTracingPipeline::createPipelineKHR (const DeviceInterface& DE_ASSERT(result == VK_OPERATION_DEFERRED_KHR || result == VK_OPERATION_NOT_DEFERRED_KHR || result == VK_SUCCESS); DE_UNREF(result); - VK_CHECK(finishDeferredOperation(vk, device, *deferredOperation)); + finishDeferredOperation(vk, device, *deferredOperation, m_workerThreadCount); } return pipeline; @@ -2004,9 +2150,11 @@ void RayTracingPipeline::setMaxCallableSize (const deUint32& maxCallableSize) m_maxCallableSize = maxCallableSize; } -void RayTracingPipeline::setDeferredOperation (const bool deferredOperation) +void RayTracingPipeline::setDeferredOperation (const bool deferredOperation, + const deUint32 workerThreadCount) { m_deferredOperation = deferredOperation; + m_workerThreadCount = workerThreadCount; } class RayTracingPropertiesKHR : public RayTracingProperties diff --git a/external/vulkancts/framework/vulkan/vkRayTracingUtil.hpp b/external/vulkancts/framework/vulkan/vkRayTracingUtil.hpp index 8446d74..918571b 100644 --- a/external/vulkancts/framework/vulkan/vkRayTracingUtil.hpp +++ b/external/vulkancts/framework/vulkan/vkRayTracingUtil.hpp @@ -329,7 +329,8 @@ public: virtual void setBuildType (const VkAccelerationStructureBuildTypeKHR buildType) = DE_NULL; virtual void setBuildFlags (const VkBuildAccelerationStructureFlagsKHR flags) = DE_NULL; - virtual void setDeferredOperation (const bool deferredOperation) = DE_NULL; + virtual void setDeferredOperation (const bool deferredOperation, + const deUint32 workerThreadCount = 0) = DE_NULL; virtual void setUseArrayOfPointers (const bool useArrayOfPointers) = DE_NULL; virtual void setIndirectBuildParameters (const VkBuffer indirectBuffer, const VkDeviceSize indirectBufferOffset, @@ -423,7 +424,8 @@ public: virtual void setBuildType (const VkAccelerationStructureBuildTypeKHR buildType) = DE_NULL; virtual void setBuildFlags (const VkBuildAccelerationStructureFlagsKHR flags) = DE_NULL; - virtual void setDeferredOperation (const bool deferredOperation) = DE_NULL; + virtual void setDeferredOperation (const bool deferredOperation, + const deUint32 workerThreadCount = 0) = DE_NULL; virtual void setUseArrayOfPointers (const bool useArrayOfPointers) = DE_NULL; virtual void setIndirectBuildParameters (const VkBuffer indirectBuffer, const VkDeviceSize indirectBufferOffset, @@ -529,7 +531,8 @@ public: void setMaxPayloadSize (const deUint32& maxPayloadSize); void setMaxAttributeSize (const deUint32& maxAttributeSize); void setMaxCallableSize (const deUint32& maxCallableSize); - void setDeferredOperation (const bool deferredOperation); + void setDeferredOperation (const bool deferredOperation, + const deUint32 workerThreadCount = 0); protected: Move createPipelineKHR (const DeviceInterface& vk, @@ -547,6 +550,7 @@ protected: deUint32 m_maxAttributeSize; deUint32 m_maxCallableSize; bool m_deferredOperation; + deUint32 m_workerThreadCount; }; class RayTracingProperties diff --git a/external/vulkancts/modules/vulkan/ray_tracing/vktRayTracingAccelerationStructuresTests.cpp b/external/vulkancts/modules/vulkan/ray_tracing/vktRayTracingAccelerationStructuresTests.cpp index 77feb67..e87c715 100644 --- a/external/vulkancts/modules/vulkan/ray_tracing/vktRayTracingAccelerationStructuresTests.cpp +++ b/external/vulkancts/modules/vulkan/ray_tracing/vktRayTracingAccelerationStructuresTests.cpp @@ -24,6 +24,7 @@ #include "vktRayTracingAccelerationStructuresTests.hpp" #include "vkDefs.hpp" +#include "deClock.h" #include "vktTestCase.hpp" #include "vktTestGroupUtil.hpp" @@ -132,6 +133,7 @@ struct TestParams deUint32 width; deUint32 height; de::SharedPtr testConfiguration; + deUint32 workerThreadsCount; }; deUint32 getShaderGroupSize (const InstanceInterface& vki, @@ -653,7 +655,9 @@ public: tcu::TestStatus iterate (void) override; protected: - de::MovePtr runTest (); + bool iterateNoWorkers (void); + bool iterateWithWorkers (void); + de::MovePtr runTest (const deUint32 workerThreadsCount); private: TestParams m_data; }; @@ -819,7 +823,7 @@ RayTracingASBasicTestInstance::~RayTracingASBasicTestInstance (void) { } -de::MovePtr RayTracingASBasicTestInstance::runTest() +de::MovePtr RayTracingASBasicTestInstance::runTest(const deUint32 workerThreadsCount) { const InstanceInterface& vki = m_context.getInstanceInterface(); const DeviceInterface& vkd = m_context.getDeviceInterface(); @@ -831,6 +835,8 @@ de::MovePtr RayTracingASBasicTestInstance::runTest() const deUint32 pixelCount = m_data.width * m_data.height; const deUint32 shaderGroupHandleSize = getShaderGroupSize(vki, physicalDevice); const deUint32 shaderGroupBaseAlignment = getShaderGroupBaseAlignment(vki, physicalDevice); + const bool htCopy = (workerThreadsCount != 0) && (m_data.operationType == OP_COPY); + const bool htSerialize = (workerThreadsCount != 0) && (m_data.operationType == OP_SERIALIZE); const Move descriptorSetLayout = DescriptorSetLayoutBuilder() .addSingleBinding(VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, ALL_RAY_TRACING_STAGES) @@ -961,6 +967,7 @@ de::MovePtr RayTracingASBasicTestInstance::runTest() bottomLevelAccelerationStructureCopies = m_data.testConfiguration->initBottomAccelerationStructures(m_context, m_data); for (size_t i = 0; i < bottomLevelAccelerationStructures.size(); ++i) { + bottomLevelAccelerationStructureCopies[i]->setDeferredOperation(htCopy, workerThreadsCount); bottomLevelAccelerationStructureCopies[i]->setBuildType(m_data.buildType); bottomLevelAccelerationStructureCopies[i]->setBuildFlags(m_data.buildFlags); bottomLevelAccelerationStructureCopies[i]->setUseArrayOfPointers(m_data.bottomUsesAOP); @@ -987,6 +994,8 @@ de::MovePtr RayTracingASBasicTestInstance::runTest() for (size_t i = 0; i < bottomLevelAccelerationStructures.size(); ++i) { de::SharedPtr storage ( new SerialStorage(vkd, device, allocator, m_data.buildType, bottomBlasSerialSize[i])); + + bottomLevelAccelerationStructures[i]->setDeferredOperation(htSerialize, workerThreadsCount); bottomLevelAccelerationStructures[i]->serialize(vkd, device, *cmdBuffer, storage.get()); bottomSerialized.push_back(storage); @@ -999,6 +1008,7 @@ de::MovePtr RayTracingASBasicTestInstance::runTest() bottomLevelAccelerationStructureCopies[i]->setBuildType(m_data.buildType); bottomLevelAccelerationStructureCopies[i]->setBuildFlags(m_data.buildFlags); bottomLevelAccelerationStructureCopies[i]->setUseArrayOfPointers(m_data.bottomUsesAOP); + bottomLevelAccelerationStructureCopies[i]->setDeferredOperation(htSerialize, workerThreadsCount); bottomLevelAccelerationStructureCopies[i]->createAndDeserializeFrom(vkd, device, *cmdBuffer, allocator, 0u, storage.get()); } break; @@ -1054,6 +1064,7 @@ de::MovePtr RayTracingASBasicTestInstance::runTest() case OP_COPY: { topLevelAccelerationStructureCopy = m_data.testConfiguration->initTopAccelerationStructure(m_context, m_data, *bottomLevelAccelerationStructuresPtr); + topLevelAccelerationStructureCopy->setDeferredOperation(htCopy, workerThreadsCount); topLevelAccelerationStructureCopy->setBuildType(m_data.buildType); topLevelAccelerationStructureCopy->setBuildFlags(m_data.buildFlags); topLevelAccelerationStructureCopy->setUseArrayOfPointers(m_data.topUsesAOP); @@ -1074,6 +1085,8 @@ de::MovePtr RayTracingASBasicTestInstance::runTest() topLevelAccelerationStructureCopy = m_data.testConfiguration->initTopAccelerationStructure(m_context, m_data, *bottomLevelAccelerationStructuresPtr); de::SharedPtr storage( new SerialStorage(vkd, device, allocator, m_data.buildType, topBlasSerialSize[0])); + + topLevelAccelerationStructure->setDeferredOperation(htSerialize, workerThreadsCount); topLevelAccelerationStructure->serialize(vkd, device, *cmdBuffer, storage.get()); topSerialized.push_back(storage); @@ -1086,6 +1099,7 @@ de::MovePtr RayTracingASBasicTestInstance::runTest() topLevelAccelerationStructureCopy->setBuildType(m_data.buildType); topLevelAccelerationStructureCopy->setBuildFlags(m_data.buildFlags); topLevelAccelerationStructureCopy->setUseArrayOfPointers(m_data.topUsesAOP); + topLevelAccelerationStructureCopy->setDeferredOperation(htSerialize, workerThreadsCount); topLevelAccelerationStructureCopy->createAndDeserializeFrom(vkd, device, *cmdBuffer, allocator, 0u, storage.get()); break; } @@ -1137,14 +1151,53 @@ de::MovePtr RayTracingASBasicTestInstance::runTest() return resultBuffer; } -tcu::TestStatus RayTracingASBasicTestInstance::iterate (void) +bool RayTracingASBasicTestInstance::iterateNoWorkers (void) { // run test using arrays of pointers - const de::MovePtr buffer = runTest(); + const de::MovePtr buffer = runTest(0); + + return m_data.testConfiguration->verifyImage(buffer.get(), m_context, m_data); +} + +bool RayTracingASBasicTestInstance::iterateWithWorkers (void) +{ + const deUint64 singleThreadTimeStart = deGetMicroseconds(); + de::MovePtr singleThreadBufferCPU = runTest(0); + const bool singleThreadValidation = m_data.testConfiguration->verifyImage(singleThreadBufferCPU.get(), m_context, m_data); + const deUint64 singleThreadTime = deGetMicroseconds() - singleThreadTimeStart; + + deUint64 multiThreadTimeStart = deGetMicroseconds(); + de::MovePtr multiThreadBufferCPU = runTest(m_data.workerThreadsCount); + const bool multiThreadValidation = m_data.testConfiguration->verifyImage(multiThreadBufferCPU.get(), m_context, m_data); + deUint64 multiThreadTime = deGetMicroseconds() - multiThreadTimeStart; + const deUint64 multiThreadTimeOut = 10 * singleThreadTime; + + const deUint32 result = singleThreadValidation && multiThreadValidation; + + if (multiThreadTime > multiThreadTimeOut) + { + std::string failMsg = "Time of multithreaded test execution " + de::toString(multiThreadTime) + + " that is longer than expected execution time " + de::toString(multiThreadTimeOut); + + TCU_FAIL(failMsg); + } + + return result; +} + +tcu::TestStatus RayTracingASBasicTestInstance::iterate (void) +{ + bool result; + + if (m_data.workerThreadsCount != 0) + result = iterateWithWorkers(); + else + result = iterateNoWorkers(); - if (!m_data.testConfiguration->verifyImage(buffer.get(), m_context, m_data)) + if (result) + return tcu::TestStatus::pass("Pass"); + else return tcu::TestStatus::fail("Fail"); - return tcu::TestStatus::pass("Pass"); } } // anonymous @@ -1382,7 +1435,8 @@ void addBasicBuildingTests(tcu::TestCaseGroup* group) OP_NONE, RTAS_DEFAULT_SIZE, RTAS_DEFAULT_SIZE, - de::SharedPtr(new CheckerboardConfiguration()) + de::SharedPtr(new CheckerboardConfiguration()), + 0 }; topGroup->addChild(new RayTracingASBasicTestCase(group->getTestContext(), testName.c_str(), "", testParams)); } @@ -1445,7 +1499,8 @@ void addVertexIndexFormatsTests(tcu::TestCaseGroup* group) OP_NONE, RTAS_DEFAULT_SIZE, RTAS_DEFAULT_SIZE, - de::SharedPtr(new SingleTriangleConfiguration()) + de::SharedPtr(new SingleTriangleConfiguration()), + 0 }; vertexFormatGroup->addChild(new RayTracingASBasicTestCase(group->getTestContext(), indexFormats[indexFormatNdx].name, "", testParams)); } @@ -1453,7 +1508,7 @@ void addVertexIndexFormatsTests(tcu::TestCaseGroup* group) } } -void addOperationTests(tcu::TestCaseGroup* group) +void addOperationTestsImpl (tcu::TestCaseGroup* group, const deUint32 workerThreads) { struct { @@ -1498,10 +1553,17 @@ void addOperationTests(tcu::TestCaseGroup* group) for (size_t operationTypeNdx = 0; operationTypeNdx < DE_LENGTH_OF_ARRAY(operationTypes); ++operationTypeNdx) { + if (workerThreads > 0) + if (operationTypes[operationTypeNdx].operationType != OP_COPY && operationTypes[operationTypeNdx].operationType != OP_SERIALIZE) + continue; + de::MovePtr operationTypeGroup(new tcu::TestCaseGroup(group->getTestContext(), operationTypes[operationTypeNdx].name, "")); for (size_t buildTypeNdx = 0; buildTypeNdx < DE_LENGTH_OF_ARRAY(buildTypes); ++buildTypeNdx) { + if (workerThreads > 0 && buildTypes[buildTypeNdx].buildType != VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR) + continue; + de::MovePtr buildGroup(new tcu::TestCaseGroup(group->getTestContext(), buildTypes[buildTypeNdx].name, "")); for (size_t operationTargetNdx = 0; operationTargetNdx < DE_LENGTH_OF_ARRAY(operationTargets); ++operationTargetNdx) @@ -1526,7 +1588,8 @@ void addOperationTests(tcu::TestCaseGroup* group) operationTypes[operationTypeNdx].operationType, RTAS_DEFAULT_SIZE, RTAS_DEFAULT_SIZE, - de::SharedPtr(new CheckerboardConfiguration()) + de::SharedPtr(new CheckerboardConfiguration()), + workerThreads }; operationTargetGroup->addChild(new RayTracingASBasicTestCase(group->getTestContext(), bottomTestTypes[testTypeNdx].name, "", testParams)); } @@ -1544,6 +1607,28 @@ void addRequirementsTests(tcu::TestCaseGroup* group) group->addChild(new RayTracingASMemoryRequirementsTestCase(group->getTestContext(), "memory_update_scratch", "", MemoryRequirementsTestParams{ VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_KHR })); } +void addOperationTests (tcu::TestCaseGroup* group) +{ + addOperationTestsImpl(group, 0); +} + +void addHostThreadingOperationTests (tcu::TestCaseGroup* group) +{ + const deUint32 threads[] = { 1, 2, 3, 4, 8, std::numeric_limits::max() }; + + for (size_t threadsNdx = 0; threadsNdx < DE_LENGTH_OF_ARRAY(threads); ++threadsNdx) + { + const std::string groupName = threads[threadsNdx] != std::numeric_limits::max() + ? de::toString(threads[threadsNdx]) + : "max"; + + de::MovePtr threadGroup(new tcu::TestCaseGroup(group->getTestContext(), groupName.c_str(), "")); + + addOperationTestsImpl(threadGroup.get(), threads[threadsNdx]); + + group->addChild(threadGroup.release()); + } +} tcu::TestCaseGroup* createAccelerationStructuresTests(tcu::TestContext& testCtx) { @@ -1553,6 +1638,7 @@ tcu::TestCaseGroup* createAccelerationStructuresTests(tcu::TestContext& testCtx) addTestGroup(group.get(), "format", "Test building AS with different vertex and index formats", addVertexIndexFormatsTests); addTestGroup(group.get(), "operations", "Test copying, compaction and serialization of AS", addOperationTests); addTestGroup(group.get(), "requirements", "Test other requirements", addRequirementsTests); + addTestGroup(group.get(), "host_threading", "Test host threading operations", addHostThreadingOperationTests); return group.release(); } diff --git a/external/vulkancts/modules/vulkan/ray_tracing/vktRayTracingBuildLargeTests.cpp b/external/vulkancts/modules/vulkan/ray_tracing/vktRayTracingBuildLargeTests.cpp index 5a34efd..6f300ac 100644 --- a/external/vulkancts/modules/vulkan/ray_tracing/vktRayTracingBuildLargeTests.cpp +++ b/external/vulkancts/modules/vulkan/ray_tracing/vktRayTracingBuildLargeTests.cpp @@ -36,6 +36,10 @@ #include "vkRayTracingUtil.hpp" +#include "deClock.h" + +#include + namespace vkt { namespace RayTracing @@ -61,6 +65,7 @@ struct CaseDef deUint32 instancesGroupCount; bool deferredOperation; VkAccelerationStructureBuildTypeKHR buildType; + deUint32 workerThreadsCount; }; deUint32 getShaderGroupSize (const InstanceInterface& vki, @@ -89,11 +94,12 @@ Move makePipeline (const DeviceInterface& vkd, de::MovePtr& rayTracingPipeline, VkPipelineLayout pipelineLayout, const deUint32 groupCount, - const bool deferredOperation) + const bool deferredOperation, + const deUint32 threadCount) { Move raygenShader = createShaderModule(vkd, device, collection.get("rgen"), 0); - rayTracingPipeline->setDeferredOperation(deferredOperation); + rayTracingPipeline->setDeferredOperation(deferredOperation, threadCount); rayTracingPipeline->addShader(VK_SHADER_STAGE_RAYGEN_BIT_KHR, raygenShader, 0); for (deUint32 groupNdx = 0; groupNdx < groupCount; ++groupNdx) @@ -142,8 +148,11 @@ public: tcu::TestStatus iterate (void); protected: + deUint32 iterateNoWorkers (void); + deUint32 iterateWithWorkers (void); void checkSupportInInstance (void) const; - de::MovePtr runTest (void); + de::MovePtr runTest (const deUint32 threadCount); + deUint32 validateBuffer (de::MovePtr buffer); de::SharedPtr initTopAccelerationStructure (VkCommandBuffer cmdBuffer, de::SharedPtr& bottomLevelAccelerationStructure); de::SharedPtr initBottomAccelerationStructure (VkCommandBuffer cmdBuffer); @@ -333,7 +342,7 @@ de::SharedPtr RayTracingBuildLargeTestInstance return de::SharedPtr(result.release()); } -de::MovePtr RayTracingBuildLargeTestInstance::runTest (void) +de::MovePtr RayTracingBuildLargeTestInstance::runTest (const deUint32 threadCount) { const InstanceInterface& vki = m_context.getInstanceInterface(); const DeviceInterface& vkd = m_context.getDeviceInterface(); @@ -362,7 +371,7 @@ de::MovePtr RayTracingBuildLargeTestInstance::runTest (void) const Move cmdBuffer = allocateCommandBuffer(vkd, device, *cmdPool, VK_COMMAND_BUFFER_LEVEL_PRIMARY); de::MovePtr rayTracingPipeline = de::newMovePtr(); - const Move pipeline = makePipeline(vkd, device, m_context.getBinaryCollection(), rayTracingPipeline, *pipelineLayout, callableShaderCount, m_data.deferredOperation); + const Move pipeline = makePipeline(vkd, device, m_context.getBinaryCollection(), rayTracingPipeline, *pipelineLayout, callableShaderCount, m_data.deferredOperation, threadCount); const de::MovePtr raygenShaderBindingTable = rayTracingPipeline->createShaderBindingTable(vkd, device, *pipeline, allocator, shaderGroupHandleSize, shaderGroupBaseAlignment, 0, 1u); const de::MovePtr callableShaderBindingTable = rayTracingPipeline->createShaderBindingTable(vkd, device, *pipeline, allocator, shaderGroupHandleSize, shaderGroupBaseAlignment, 1u, callableShaderCount); const VkStridedBufferRegionKHR raygenShaderBindingTableRegion = makeStridedBufferRegionKHR(raygenShaderBindingTable->get(), 0, shaderGroupHandleSize, shaderGroupHandleSize); @@ -471,26 +480,70 @@ void RayTracingBuildLargeTestInstance::checkSupportInInstance (void) const TCU_THROW(NotSupportedError, "Test requires more allocations allowed"); } -tcu::TestStatus RayTracingBuildLargeTestInstance::iterate (void) +deUint32 RayTracingBuildLargeTestInstance::validateBuffer (de::MovePtr buffer) { - checkSupportInInstance(); - - const de::MovePtr bufferCPU = runTest(); - const deUint32* bufferPtrCPU = (deUint32*)bufferCPU->getAllocation().getHostPtr(); - deUint32 failures = 0; - deUint32 pos = 0; + const deUint32* bufferPtr = (deUint32*)buffer->getAllocation().getHostPtr(); + deUint32 failures = 0; + deUint32 pos = 0; for (deUint32 y = 0; y < m_data.height; ++y) for (deUint32 x = 0; x < m_data.width; ++x) { const deUint32 expectedValue = (m_data.width * (y / 3) + x) % 199; - if (bufferPtrCPU[pos] != expectedValue) + if (bufferPtr[pos] != expectedValue) failures++; ++pos; } + return failures; +} + +deUint32 RayTracingBuildLargeTestInstance::iterateNoWorkers (void) +{ + de::MovePtr buffer = runTest(0); + const deUint32 failures = validateBuffer(buffer); + + return failures; +} + +deUint32 RayTracingBuildLargeTestInstance::iterateWithWorkers (void) +{ + const deUint64 singleThreadTimeStart = deGetMicroseconds(); + de::MovePtr singleThreadBuffer = runTest(0); + const deUint32 singleThreadFailures = validateBuffer(singleThreadBuffer); + const deUint64 singleThreadTime = deGetMicroseconds() - singleThreadTimeStart; + + deUint64 multiThreadTimeStart = deGetMicroseconds(); + de::MovePtr multiThreadBuffer = runTest(m_data.workerThreadsCount); + const deUint32 multiThreadFailures = validateBuffer(multiThreadBuffer); + deUint64 multiThreadTime = deGetMicroseconds() - multiThreadTimeStart; + const deUint64 multiThreadTimeOut = 10 * singleThreadTime; + + const deUint32 failures = singleThreadFailures + multiThreadFailures; + + DE_ASSERT(multiThreadTimeOut > singleThreadTime); + + if (multiThreadTime > multiThreadTimeOut) + { + string failMsg = "Time of multithreaded test execution " + de::toString(multiThreadTime) + + " that is longer than expected execution time " + de::toString(multiThreadTimeOut); + + TCU_FAIL(failMsg); + } + + return failures; +} + +tcu::TestStatus RayTracingBuildLargeTestInstance::iterate (void) +{ + checkSupportInInstance(); + + const deUint32 failures = m_data.workerThreadsCount == 0 + ? iterateNoWorkers() + : iterateWithWorkers(); + if (failures == 0) return tcu::TestStatus::pass("Pass"); else @@ -515,7 +568,7 @@ tcu::TestCaseGroup* createBuildLargeShaderSetTests (tcu::TestContext& testCtx) { "gpu", false, VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR }, { "cpu_ht", true, VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR }, }; - + const deUint32 threads[] = { 1, 2, 3, 4, 8, std::numeric_limits::max() }; for (size_t buildNdx = 0; buildNdx < DE_LENGTH_OF_ARRAY(buildTypes); ++buildNdx) { @@ -535,7 +588,8 @@ tcu::TestCaseGroup* createBuildLargeShaderSetTests (tcu::TestContext& testCtx) geometriesGroupCount, // deUint32 geometriesGroupCount; instancesGroupCount, // deUint32 instancesGroupCount; buildTypes[buildNdx].deferredOperation, // bool deferredOperation; - buildTypes[buildNdx].buildType // VkAccelerationStructureBuildTypeKHR buildType; + buildTypes[buildNdx].buildType, // VkAccelerationStructureBuildTypeKHR buildType; + 0, // deUint32 threadsCount; }; const std::string testName = de::toString(largestGroup); @@ -545,6 +599,43 @@ tcu::TestCaseGroup* createBuildLargeShaderSetTests (tcu::TestContext& testCtx) group->addChild(buildTypeGroup.release()); } + for (size_t threadsNdx = 0; threadsNdx < DE_LENGTH_OF_ARRAY(threads); ++threadsNdx) + { + for (size_t buildNdx = 0; buildNdx < DE_LENGTH_OF_ARRAY(buildTypes); ++buildNdx) + { + if (buildTypes[buildNdx].buildType != VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR) + continue; + + const std::string suffix = threads[threadsNdx] == std::numeric_limits::max() ? "max" : de::toString(threads[threadsNdx]); + const std::string buildTypeGroupName = std::string(buildTypes[buildNdx].buildTypeName) + '_' + suffix; + de::MovePtr buildTypeGroup (new tcu::TestCaseGroup(testCtx, buildTypeGroupName.c_str(), "")); + + for (size_t sizesNdx = 0; sizesNdx < DE_LENGTH_OF_ARRAY(sizes); ++sizesNdx) + { + const deUint32 largestGroup = sizes[sizesNdx] * sizes[sizesNdx]; + const deUint32 squaresGroupCount = largestGroup; + const deUint32 geometriesGroupCount = 1; + const deUint32 instancesGroupCount = 1; + const CaseDef caseDef = + { + sizes[sizesNdx], // deUint32 width; + sizes[sizesNdx], // deUint32 height; + squaresGroupCount, // deUint32 squaresGroupCount; + geometriesGroupCount, // deUint32 geometriesGroupCount; + instancesGroupCount, // deUint32 instancesGroupCount; + buildTypes[buildNdx].deferredOperation, // bool deferredOperation; + buildTypes[buildNdx].buildType, // VkAccelerationStructureBuildTypeKHR buildType; + threads[threadsNdx], // deUint32 workerThreadsCount; + }; + const std::string testName = de::toString(largestGroup); + + buildTypeGroup->addChild(new RayTracingTestCase(testCtx, testName.c_str(), "", caseDef)); + } + + group->addChild(buildTypeGroup.release()); + } + } + return group.release(); } diff --git a/external/vulkancts/modules/vulkan/ray_tracing/vktRayTracingBuildTests.cpp b/external/vulkancts/modules/vulkan/ray_tracing/vktRayTracingBuildTests.cpp index 532e331..78ed162 100644 --- a/external/vulkancts/modules/vulkan/ray_tracing/vktRayTracingBuildTests.cpp +++ b/external/vulkancts/modules/vulkan/ray_tracing/vktRayTracingBuildTests.cpp @@ -36,6 +36,8 @@ #include "vkRayTracingUtil.hpp" +#include "deClock.h" + namespace vkt { namespace RayTracing @@ -68,6 +70,7 @@ struct CaseDef deUint32 geometriesGroupCount; deUint32 instancesGroupCount; bool deferredOperation; + deUint32 workerThreadsCount; }; enum ShaderGroups @@ -154,17 +157,24 @@ public: tcu::TestStatus iterate (void); protected: + deUint32 iterateNoWorkers (void); + deUint32 iterateWithWorkers (void); void checkSupportInInstance (void) const; - de::MovePtr runTest (bool useGpuBuild); + deUint32 validateBuffer (de::MovePtr buffer); + de::MovePtr runTest (bool useGpuBuild, + deUint32 workerThreadsCount); de::MovePtr initTopAccelerationStructure (VkCommandBuffer cmdBuffer, bool useGpuBuild, + deUint32 workerThreadsCount, vector >& bottomLevelAccelerationStructures); - vector > initBottomAccelerationStructures (VkCommandBuffer cmdBuffer, - bool useGpuBuild); - de::MovePtr initBottomAccelerationStructure (VkCommandBuffer cmdBuffer, - bool useGpuBuild, - tcu::UVec2& startPos, - bool triangles); + vector > initBottomAccelerationStructures (VkCommandBuffer cmdBuffer, + bool useGpuBuild, + deUint32 workerThreadsCount); + de::MovePtr initBottomAccelerationStructure (VkCommandBuffer cmdBuffer, + bool useGpuBuild, + deUint32 workerThreadsCount, + tcu::UVec2& startPos, + bool triangles); private: CaseDef m_data; @@ -283,6 +293,7 @@ TestInstance* RayTracingTestCase::createInstance (Context& context) const de::MovePtr RayTracingBuildTestInstance::initTopAccelerationStructure (VkCommandBuffer cmdBuffer, bool useGpuBuild, + deUint32 workerThreadsCount, vector >& bottomLevelAccelerationStructures) { const DeviceInterface& vkd = m_context.getDeviceInterface(); @@ -292,7 +303,7 @@ de::MovePtr RayTracingBuildTestInstance::initTopA result->setInstanceCount(bottomLevelAccelerationStructures.size()); result->setBuildType(useGpuBuild ? VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR : VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR); - result->setDeferredOperation(m_data.deferredOperation); + result->setDeferredOperation(m_data.deferredOperation, workerThreadsCount); for (size_t structNdx = 0; structNdx < bottomLevelAccelerationStructures.size(); ++structNdx) result->addInstance(bottomLevelAccelerationStructures[structNdx]); @@ -304,6 +315,7 @@ de::MovePtr RayTracingBuildTestInstance::initTopA de::MovePtr RayTracingBuildTestInstance::initBottomAccelerationStructure (VkCommandBuffer cmdBuffer, bool useGpuBuild, + deUint32 workerThreadsCount, tcu::UVec2& startPos, bool triangles) { @@ -313,7 +325,7 @@ de::MovePtr RayTracingBuildTestInstance::initB de::MovePtr result = makeBottomLevelAccelerationStructure(); result->setBuildType(useGpuBuild ? VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR : VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR); - result->setDeferredOperation(m_data.deferredOperation); + result->setDeferredOperation(m_data.deferredOperation, workerThreadsCount); result->setGeometryCount(m_data.geometriesGroupCount); for (size_t geometryNdx = 0; geometryNdx < m_data.geometriesGroupCount; ++geometryNdx) @@ -367,7 +379,8 @@ de::MovePtr RayTracingBuildTestInstance::initB } vector > RayTracingBuildTestInstance::initBottomAccelerationStructures (VkCommandBuffer cmdBuffer, - bool useGpuBuild) + bool useGpuBuild, + deUint32 workerThreadsCount) { tcu::UVec2 startPos; vector > result; @@ -375,7 +388,7 @@ vector > RayTracingBuildTestInst for (size_t instanceNdx = 0; instanceNdx < m_data.instancesGroupCount; ++instanceNdx) { const bool triangles = (m_data.testType == TEST_TYPE_TRIANGLES) || (m_data.testType == TEST_TYPE_MIXED && (instanceNdx & 1) == 0); - de::MovePtr bottomLevelAccelerationStructure = initBottomAccelerationStructure(cmdBuffer, useGpuBuild, startPos, triangles); + de::MovePtr bottomLevelAccelerationStructure = initBottomAccelerationStructure(cmdBuffer, useGpuBuild, workerThreadsCount, startPos, triangles); result.push_back(de::SharedPtr(bottomLevelAccelerationStructure.release())); } @@ -383,7 +396,7 @@ vector > RayTracingBuildTestInst return result; } -de::MovePtr RayTracingBuildTestInstance::runTest (bool useGpuBuild) +de::MovePtr RayTracingBuildTestInstance::runTest (bool useGpuBuild, deUint32 workerThreadsCount) { const InstanceInterface& vki = m_context.getInstanceInterface(); const DeviceInterface& vkd = m_context.getDeviceInterface(); @@ -452,8 +465,8 @@ de::MovePtr RayTracingBuildTestInstance::runTest (bool useGpuB vkd.cmdClearColorImage(*cmdBuffer, **image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, &clearValue.color, 1, &imageSubresourceRange); cmdPipelineImageMemoryBarrier(vkd, *cmdBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT, ALL_RAY_TRACING_STAGES, &postImageBarrier); - bottomLevelAccelerationStructures = initBottomAccelerationStructures(*cmdBuffer, useGpuBuild); - topLevelAccelerationStructure = initTopAccelerationStructure(*cmdBuffer, useGpuBuild, bottomLevelAccelerationStructures); + bottomLevelAccelerationStructures = initBottomAccelerationStructures(*cmdBuffer, useGpuBuild, workerThreadsCount); + topLevelAccelerationStructure = initTopAccelerationStructure(*cmdBuffer, useGpuBuild, workerThreadsCount, bottomLevelAccelerationStructures); cmdPipelineMemoryBarrier(vkd, *cmdBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT, ALL_RAY_TRACING_STAGES, &preTraceMemoryBarrier); @@ -521,16 +534,11 @@ void RayTracingBuildTestInstance::checkSupportInInstance (void) const TCU_THROW(NotSupportedError, "Test requires more allocations allowed"); } -tcu::TestStatus RayTracingBuildTestInstance::iterate (void) +deUint32 RayTracingBuildTestInstance::validateBuffer (de::MovePtr buffer) { - checkSupportInInstance(); - - const de::MovePtr bufferGPU = runTest(true); - const deUint32* bufferPtrGPU = (deUint32*)bufferGPU->getAllocation().getHostPtr(); - const de::MovePtr bufferCPU = runTest(false); - const deUint32* bufferPtrCPU = (deUint32*)bufferCPU->getAllocation().getHostPtr(); - deUint32 failures = 0; - deUint32 pos = 0; + const deUint32* bufferPtr = (deUint32*)buffer->getAllocation().getHostPtr(); + deUint32 failures = 0; + deUint32 pos = 0; for (deUint32 y = 0; y < m_data.height; ++y) for (deUint32 x = 0; x < m_data.width; ++x) @@ -538,16 +546,66 @@ tcu::TestStatus RayTracingBuildTestInstance::iterate (void) const deUint32 n = m_data.width * y + x; const deUint32 expectedValue = (n % 7 == 0) ? 2 : 1; - if (bufferPtrGPU[pos] != expectedValue || bufferPtrCPU[pos] != expectedValue) + if (bufferPtr[pos] != expectedValue) failures++; ++pos; } + return failures; +} + +deUint32 RayTracingBuildTestInstance::iterateWithWorkers (void) +{ + const deUint64 singleThreadTimeStart = deGetMicroseconds(); + de::MovePtr singleThreadBufferCPU = runTest(false, 0); + const deUint32 singleThreadFailures = validateBuffer(singleThreadBufferCPU); + const deUint64 singleThreadTime = deGetMicroseconds() - singleThreadTimeStart; + + deUint64 multiThreadTimeStart = deGetMicroseconds(); + de::MovePtr multiThreadBufferCPU = runTest(false, m_data.workerThreadsCount); + const deUint32 multiThreadFailures = validateBuffer(multiThreadBufferCPU); + deUint64 multiThreadTime = deGetMicroseconds() - multiThreadTimeStart; + const deUint64 multiThreadTimeOut = 10 * singleThreadTime; + + const deUint32 failures = singleThreadFailures + multiThreadFailures; + + DE_ASSERT(multiThreadTimeOut > singleThreadTime); + + if (multiThreadTime > multiThreadTimeOut) + { + string failMsg = "Time of multithreaded test execution " + de::toString(multiThreadTime) + + " that is longer than expected execution time " + de::toString(multiThreadTimeOut); + + TCU_FAIL(failMsg); + } + + return failures; +} + +deUint32 RayTracingBuildTestInstance::iterateNoWorkers (void) +{ + de::MovePtr bufferGPU = runTest(true, 0); + de::MovePtr bufferCPU = runTest(false, 0); + const deUint32 failuresGPU = validateBuffer(bufferGPU); + const deUint32 failuresCPU = validateBuffer(bufferCPU); + const deUint32 failures = failuresGPU + failuresCPU; + + return failures; +} + +tcu::TestStatus RayTracingBuildTestInstance::iterate (void) +{ + checkSupportInInstance(); + + const deUint32 failures = m_data.workerThreadsCount == 0 + ? iterateNoWorkers() + : iterateWithWorkers(); + if (failures == 0) return tcu::TestStatus::pass("Pass"); else - return tcu::TestStatus::fail("Fail (failures=" + de::toString(failures) + ")"); + return tcu::TestStatus::fail("failures=" + de::toString(failures)); } } // anonymous @@ -555,8 +613,6 @@ tcu::TestStatus RayTracingBuildTestInstance::iterate (void) tcu::TestCaseGroup* createBuildTests (tcu::TestContext& testCtx) { de::MovePtr buildGroup(new tcu::TestCaseGroup(testCtx, "build", "Ray tracing build tests")); - de::MovePtr cpuGroup(new tcu::TestCaseGroup(testCtx, "gpu_cpu", "Compare results of run with acceleration structures build on GPU and CPU")); - de::MovePtr mtGroup(new tcu::TestCaseGroup(testCtx, "gpu_cpuht", "Compare results of run with acceleration structures build on GPU and using host threading")); const char* tests[] = { @@ -566,10 +622,20 @@ tcu::TestCaseGroup* createBuildTests (tcu::TestContext& testCtx) }; const deUint32 sizes[] = { 4, 16, 64, 256, 1024 }; const deUint32 factors[] = { 1, 4 }; + const deUint32 threads[] = { 0, 1, 2, 3, 4, 8, std::numeric_limits::max() }; - for (size_t targetNdx = 0; targetNdx < 2; ++targetNdx) + for (size_t threadNdx = 0; threadNdx <= DE_LENGTH_OF_ARRAY(threads); ++threadNdx) { - const bool defferedOperation = (targetNdx == 1); + const bool defferedOperation = threadNdx != DE_LENGTH_OF_ARRAY(threads); + const deUint32 threadsCount = threadNdx < DE_LENGTH_OF_ARRAY(threads) ? threads[threadNdx] : 0; + const string groupName = !defferedOperation ? "gpu_cpu" + : threadsCount == 0 ? "gpu_cpuht" + : threadsCount == std::numeric_limits::max() ? "cpuht_max" + : "cpuht_" + de::toString(threadsCount); + const string groupDesc = !defferedOperation ? "Compare results of run with acceleration structures build on GPU and CPU" + : threadsCount > 0 ? "Compare results of run with acceleration structures build on GPU and using host threading" + : "Run acceleration structures build using host threading"; + de::MovePtr groupGpuCpuHt (new tcu::TestCaseGroup(testCtx, groupName.c_str(), groupDesc.c_str())); for (size_t testsNdx = 0; testsNdx < DE_LENGTH_OF_ARRAY(tests); ++testsNdx) { @@ -585,13 +651,14 @@ tcu::TestCaseGroup* createBuildTests (tcu::TestContext& testCtx) const deUint32 instancesGroupCount = testsNdx == 2 ? largestGroup : factor; const CaseDef caseDef = { - TEST_TYPE_TRIANGLES, - sizes[sizesNdx], - sizes[sizesNdx], - squaresGroupCount, - geometriesGroupCount, - instancesGroupCount, - defferedOperation + TEST_TYPE_TRIANGLES, // TestType testType; + sizes[sizesNdx], // deUint32 width; + sizes[sizesNdx], // deUint32 height; + squaresGroupCount, // deUint32 squaresGroupCount; + geometriesGroupCount, // deUint32 geometriesGroupCount; + instancesGroupCount, // deUint32 instancesGroupCount; + defferedOperation, // bool deferredOperation; + threadsCount // deUint32 workerThreadsCount; }; const std::string suffix = de::toString(caseDef.instancesGroupCount) + '_' + de::toString(caseDef.geometriesGroupCount) + '_' + de::toString(caseDef.squaresGroupCount); const std::string testName = "triangles_" + suffix; @@ -612,13 +679,14 @@ tcu::TestCaseGroup* createBuildTests (tcu::TestContext& testCtx) const deUint32 instancesGroupCount = testsNdx == 2 ? largestGroup : factor; const CaseDef caseDef = { - TEST_TYPE_AABBS, - sizes[sizesNdx], - sizes[sizesNdx], - squaresGroupCount, - geometriesGroupCount, - instancesGroupCount, - defferedOperation + TEST_TYPE_AABBS, // TestType testType; + sizes[sizesNdx], // deUint32 width; + sizes[sizesNdx], // deUint32 height; + squaresGroupCount, // deUint32 squaresGroupCount; + geometriesGroupCount, // deUint32 geometriesGroupCount; + instancesGroupCount, // deUint32 instancesGroupCount; + defferedOperation, // bool deferredOperation; + threadsCount // deUint32 workerThreadsCount; }; const std::string suffix = de::toString(caseDef.instancesGroupCount) + '_' + de::toString(caseDef.geometriesGroupCount) + '_' + de::toString(caseDef.squaresGroupCount); const std::string testName = "aabbs_" + suffix; @@ -639,13 +707,14 @@ tcu::TestCaseGroup* createBuildTests (tcu::TestContext& testCtx) const deUint32 instancesGroupCount = testsNdx == 2 ? largestGroup : factor; const CaseDef caseDef = { - TEST_TYPE_MIXED, - sizes[sizesNdx], - sizes[sizesNdx], - squaresGroupCount, - geometriesGroupCount, - instancesGroupCount, - defferedOperation + TEST_TYPE_MIXED, // TestType testType; + sizes[sizesNdx], // deUint32 width; + sizes[sizesNdx], // deUint32 height; + squaresGroupCount, // deUint32 squaresGroupCount; + geometriesGroupCount, // deUint32 geometriesGroupCount; + instancesGroupCount, // deUint32 instancesGroupCount; + defferedOperation, // bool deferredOperation; + threadsCount // deUint32 workerThreadsCount; }; const std::string suffix = de::toString(caseDef.instancesGroupCount) + '_' + de::toString(caseDef.geometriesGroupCount) + '_' + de::toString(caseDef.squaresGroupCount); const std::string testName = "mixed_" + suffix; @@ -656,15 +725,11 @@ tcu::TestCaseGroup* createBuildTests (tcu::TestContext& testCtx) group->addChild(new RayTracingTestCase(testCtx, testName.c_str(), "", caseDef)); } - if (defferedOperation) - mtGroup->addChild(group.release()); - else - cpuGroup->addChild(group.release()); + groupGpuCpuHt->addChild(group.release()); } - } - buildGroup->addChild(cpuGroup.release()); - buildGroup->addChild(mtGroup.release()); + buildGroup->addChild(groupGpuCpuHt.release()); + } return buildGroup.release(); } diff --git a/external/vulkancts/mustpass/master/vk-default.txt b/external/vulkancts/mustpass/master/vk-default.txt index 09d687f..1691b45 100644 --- a/external/vulkancts/mustpass/master/vk-default.txt +++ b/external/vulkancts/mustpass/master/vk-default.txt @@ -603685,78 +603685,30 @@ dEQP-VK.ray_tracing.large_shader_set.cpu_ht.64 dEQP-VK.ray_tracing.large_shader_set.cpu_ht.256 dEQP-VK.ray_tracing.large_shader_set.cpu_ht.1024 dEQP-VK.ray_tracing.large_shader_set.cpu_ht.4096 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_1_1_16 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_1_1_256 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_1_1_4096 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_1_1_65536 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_1_1_1048576 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_4_4_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_4_4_16 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_4_4_256 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_4_4_4096 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_4_4_65536 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_1_1_16 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_1_1_256 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_1_1_4096 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_1_1_65536 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_1_1_1048576 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_4_4_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_4_4_16 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_4_4_256 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_4_4_4096 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_4_4_65536 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.mixed_4_4_16 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.mixed_4_4_256 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.mixed_4_4_4096 -dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.mixed_4_4_65536 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_1_16_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_1_256_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_1_4096_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_1_65536_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_1_1048576_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_4_1_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_4_16_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_4_256_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_4_4096_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_4_65536_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_1_16_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_1_256_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_1_4096_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_1_65536_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_1_1048576_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_4_1_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_4_16_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_4_256_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_4_4096_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_4_65536_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.mixed_4_16_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.mixed_4_256_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.mixed_4_4096_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.mixed_4_65536_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_16_1_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_256_1_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_4096_1_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_65536_1_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_1048576_1_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_1_4_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_16_4_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_256_4_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_4096_4_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_65536_4_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_16_1_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_256_1_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_4096_1_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_65536_1_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_1048576_1_1 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_1_4_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_16_4_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_256_4_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_4096_4_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_65536_4_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.mixed_16_4_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.mixed_256_4_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.mixed_4096_4_4 -dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.mixed_65536_4_4 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_1.64 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_1.256 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_1.1024 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_1.4096 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_2.64 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_2.256 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_2.1024 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_2.4096 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_3.64 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_3.256 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_3.1024 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_3.4096 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_4.64 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_4.256 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_4.1024 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_4.4096 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_8.64 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_8.256 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_8.1024 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_8.4096 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_max.64 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_max.256 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_max.1024 +dEQP-VK.ray_tracing.large_shader_set.cpu_ht_max.4096 dEQP-VK.ray_tracing.build.gpu_cpuht.level_primitives.triangles_1_1_16 dEQP-VK.ray_tracing.build.gpu_cpuht.level_primitives.triangles_1_1_256 dEQP-VK.ray_tracing.build.gpu_cpuht.level_primitives.triangles_1_1_4096 @@ -603829,6 +603781,510 @@ dEQP-VK.ray_tracing.build.gpu_cpuht.level_instances.mixed_16_4_4 dEQP-VK.ray_tracing.build.gpu_cpuht.level_instances.mixed_256_4_4 dEQP-VK.ray_tracing.build.gpu_cpuht.level_instances.mixed_4096_4_4 dEQP-VK.ray_tracing.build.gpu_cpuht.level_instances.mixed_65536_4_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.triangles_1_1_16 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.triangles_1_1_256 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.triangles_1_1_4096 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.triangles_1_1_65536 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.triangles_1_1_1048576 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.triangles_4_4_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.triangles_4_4_16 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.triangles_4_4_256 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.triangles_4_4_4096 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.triangles_4_4_65536 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.aabbs_1_1_16 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.aabbs_1_1_256 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.aabbs_1_1_4096 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.aabbs_1_1_65536 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.aabbs_1_1_1048576 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.aabbs_4_4_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.aabbs_4_4_16 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.aabbs_4_4_256 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.aabbs_4_4_4096 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.aabbs_4_4_65536 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.mixed_4_4_16 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.mixed_4_4_256 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.mixed_4_4_4096 +dEQP-VK.ray_tracing.build.cpuht_1.level_primitives.mixed_4_4_65536 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.triangles_1_16_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.triangles_1_256_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.triangles_1_4096_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.triangles_1_65536_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.triangles_1_1048576_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.triangles_4_1_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.triangles_4_16_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.triangles_4_256_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.triangles_4_4096_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.triangles_4_65536_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.aabbs_1_16_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.aabbs_1_256_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.aabbs_1_4096_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.aabbs_1_65536_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.aabbs_1_1048576_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.aabbs_4_1_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.aabbs_4_16_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.aabbs_4_256_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.aabbs_4_4096_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.aabbs_4_65536_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.mixed_4_16_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.mixed_4_256_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.mixed_4_4096_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_geometries.mixed_4_65536_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.triangles_16_1_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.triangles_256_1_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.triangles_4096_1_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.triangles_65536_1_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.triangles_1048576_1_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.triangles_1_4_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.triangles_16_4_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.triangles_256_4_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.triangles_4096_4_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.triangles_65536_4_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.aabbs_16_1_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.aabbs_256_1_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.aabbs_4096_1_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.aabbs_65536_1_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.aabbs_1048576_1_1 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.aabbs_1_4_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.aabbs_16_4_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.aabbs_256_4_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.aabbs_4096_4_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.aabbs_65536_4_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.mixed_16_4_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.mixed_256_4_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.mixed_4096_4_4 +dEQP-VK.ray_tracing.build.cpuht_1.level_instances.mixed_65536_4_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.triangles_1_1_16 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.triangles_1_1_256 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.triangles_1_1_4096 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.triangles_1_1_65536 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.triangles_1_1_1048576 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.triangles_4_4_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.triangles_4_4_16 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.triangles_4_4_256 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.triangles_4_4_4096 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.triangles_4_4_65536 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.aabbs_1_1_16 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.aabbs_1_1_256 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.aabbs_1_1_4096 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.aabbs_1_1_65536 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.aabbs_1_1_1048576 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.aabbs_4_4_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.aabbs_4_4_16 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.aabbs_4_4_256 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.aabbs_4_4_4096 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.aabbs_4_4_65536 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.mixed_4_4_16 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.mixed_4_4_256 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.mixed_4_4_4096 +dEQP-VK.ray_tracing.build.cpuht_2.level_primitives.mixed_4_4_65536 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.triangles_1_16_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.triangles_1_256_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.triangles_1_4096_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.triangles_1_65536_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.triangles_1_1048576_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.triangles_4_1_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.triangles_4_16_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.triangles_4_256_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.triangles_4_4096_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.triangles_4_65536_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.aabbs_1_16_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.aabbs_1_256_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.aabbs_1_4096_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.aabbs_1_65536_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.aabbs_1_1048576_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.aabbs_4_1_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.aabbs_4_16_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.aabbs_4_256_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.aabbs_4_4096_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.aabbs_4_65536_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.mixed_4_16_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.mixed_4_256_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.mixed_4_4096_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_geometries.mixed_4_65536_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.triangles_16_1_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.triangles_256_1_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.triangles_4096_1_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.triangles_65536_1_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.triangles_1048576_1_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.triangles_1_4_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.triangles_16_4_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.triangles_256_4_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.triangles_4096_4_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.triangles_65536_4_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.aabbs_16_1_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.aabbs_256_1_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.aabbs_4096_1_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.aabbs_65536_1_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.aabbs_1048576_1_1 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.aabbs_1_4_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.aabbs_16_4_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.aabbs_256_4_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.aabbs_4096_4_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.aabbs_65536_4_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.mixed_16_4_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.mixed_256_4_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.mixed_4096_4_4 +dEQP-VK.ray_tracing.build.cpuht_2.level_instances.mixed_65536_4_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.triangles_1_1_16 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.triangles_1_1_256 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.triangles_1_1_4096 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.triangles_1_1_65536 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.triangles_1_1_1048576 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.triangles_4_4_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.triangles_4_4_16 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.triangles_4_4_256 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.triangles_4_4_4096 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.triangles_4_4_65536 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.aabbs_1_1_16 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.aabbs_1_1_256 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.aabbs_1_1_4096 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.aabbs_1_1_65536 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.aabbs_1_1_1048576 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.aabbs_4_4_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.aabbs_4_4_16 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.aabbs_4_4_256 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.aabbs_4_4_4096 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.aabbs_4_4_65536 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.mixed_4_4_16 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.mixed_4_4_256 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.mixed_4_4_4096 +dEQP-VK.ray_tracing.build.cpuht_3.level_primitives.mixed_4_4_65536 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.triangles_1_16_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.triangles_1_256_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.triangles_1_4096_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.triangles_1_65536_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.triangles_1_1048576_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.triangles_4_1_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.triangles_4_16_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.triangles_4_256_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.triangles_4_4096_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.triangles_4_65536_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.aabbs_1_16_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.aabbs_1_256_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.aabbs_1_4096_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.aabbs_1_65536_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.aabbs_1_1048576_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.aabbs_4_1_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.aabbs_4_16_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.aabbs_4_256_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.aabbs_4_4096_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.aabbs_4_65536_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.mixed_4_16_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.mixed_4_256_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.mixed_4_4096_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_geometries.mixed_4_65536_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.triangles_16_1_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.triangles_256_1_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.triangles_4096_1_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.triangles_65536_1_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.triangles_1048576_1_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.triangles_1_4_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.triangles_16_4_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.triangles_256_4_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.triangles_4096_4_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.triangles_65536_4_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.aabbs_16_1_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.aabbs_256_1_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.aabbs_4096_1_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.aabbs_65536_1_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.aabbs_1048576_1_1 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.aabbs_1_4_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.aabbs_16_4_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.aabbs_256_4_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.aabbs_4096_4_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.aabbs_65536_4_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.mixed_16_4_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.mixed_256_4_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.mixed_4096_4_4 +dEQP-VK.ray_tracing.build.cpuht_3.level_instances.mixed_65536_4_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.triangles_1_1_16 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.triangles_1_1_256 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.triangles_1_1_4096 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.triangles_1_1_65536 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.triangles_1_1_1048576 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.triangles_4_4_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.triangles_4_4_16 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.triangles_4_4_256 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.triangles_4_4_4096 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.triangles_4_4_65536 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.aabbs_1_1_16 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.aabbs_1_1_256 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.aabbs_1_1_4096 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.aabbs_1_1_65536 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.aabbs_1_1_1048576 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.aabbs_4_4_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.aabbs_4_4_16 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.aabbs_4_4_256 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.aabbs_4_4_4096 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.aabbs_4_4_65536 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.mixed_4_4_16 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.mixed_4_4_256 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.mixed_4_4_4096 +dEQP-VK.ray_tracing.build.cpuht_4.level_primitives.mixed_4_4_65536 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.triangles_1_16_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.triangles_1_256_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.triangles_1_4096_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.triangles_1_65536_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.triangles_1_1048576_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.triangles_4_1_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.triangles_4_16_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.triangles_4_256_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.triangles_4_4096_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.triangles_4_65536_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.aabbs_1_16_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.aabbs_1_256_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.aabbs_1_4096_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.aabbs_1_65536_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.aabbs_1_1048576_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.aabbs_4_1_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.aabbs_4_16_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.aabbs_4_256_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.aabbs_4_4096_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.aabbs_4_65536_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.mixed_4_16_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.mixed_4_256_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.mixed_4_4096_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_geometries.mixed_4_65536_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.triangles_16_1_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.triangles_256_1_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.triangles_4096_1_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.triangles_65536_1_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.triangles_1048576_1_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.triangles_1_4_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.triangles_16_4_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.triangles_256_4_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.triangles_4096_4_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.triangles_65536_4_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.aabbs_16_1_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.aabbs_256_1_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.aabbs_4096_1_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.aabbs_65536_1_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.aabbs_1048576_1_1 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.aabbs_1_4_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.aabbs_16_4_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.aabbs_256_4_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.aabbs_4096_4_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.aabbs_65536_4_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.mixed_16_4_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.mixed_256_4_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.mixed_4096_4_4 +dEQP-VK.ray_tracing.build.cpuht_4.level_instances.mixed_65536_4_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.triangles_1_1_16 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.triangles_1_1_256 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.triangles_1_1_4096 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.triangles_1_1_65536 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.triangles_1_1_1048576 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.triangles_4_4_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.triangles_4_4_16 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.triangles_4_4_256 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.triangles_4_4_4096 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.triangles_4_4_65536 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.aabbs_1_1_16 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.aabbs_1_1_256 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.aabbs_1_1_4096 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.aabbs_1_1_65536 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.aabbs_1_1_1048576 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.aabbs_4_4_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.aabbs_4_4_16 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.aabbs_4_4_256 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.aabbs_4_4_4096 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.aabbs_4_4_65536 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.mixed_4_4_16 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.mixed_4_4_256 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.mixed_4_4_4096 +dEQP-VK.ray_tracing.build.cpuht_8.level_primitives.mixed_4_4_65536 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.triangles_1_16_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.triangles_1_256_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.triangles_1_4096_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.triangles_1_65536_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.triangles_1_1048576_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.triangles_4_1_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.triangles_4_16_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.triangles_4_256_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.triangles_4_4096_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.triangles_4_65536_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.aabbs_1_16_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.aabbs_1_256_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.aabbs_1_4096_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.aabbs_1_65536_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.aabbs_1_1048576_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.aabbs_4_1_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.aabbs_4_16_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.aabbs_4_256_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.aabbs_4_4096_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.aabbs_4_65536_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.mixed_4_16_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.mixed_4_256_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.mixed_4_4096_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_geometries.mixed_4_65536_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.triangles_16_1_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.triangles_256_1_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.triangles_4096_1_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.triangles_65536_1_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.triangles_1048576_1_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.triangles_1_4_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.triangles_16_4_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.triangles_256_4_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.triangles_4096_4_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.triangles_65536_4_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.aabbs_16_1_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.aabbs_256_1_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.aabbs_4096_1_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.aabbs_65536_1_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.aabbs_1048576_1_1 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.aabbs_1_4_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.aabbs_16_4_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.aabbs_256_4_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.aabbs_4096_4_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.aabbs_65536_4_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.mixed_16_4_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.mixed_256_4_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.mixed_4096_4_4 +dEQP-VK.ray_tracing.build.cpuht_8.level_instances.mixed_65536_4_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.triangles_1_1_16 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.triangles_1_1_256 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.triangles_1_1_4096 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.triangles_1_1_65536 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.triangles_1_1_1048576 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.triangles_4_4_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.triangles_4_4_16 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.triangles_4_4_256 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.triangles_4_4_4096 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.triangles_4_4_65536 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.aabbs_1_1_16 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.aabbs_1_1_256 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.aabbs_1_1_4096 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.aabbs_1_1_65536 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.aabbs_1_1_1048576 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.aabbs_4_4_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.aabbs_4_4_16 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.aabbs_4_4_256 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.aabbs_4_4_4096 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.aabbs_4_4_65536 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.mixed_4_4_16 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.mixed_4_4_256 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.mixed_4_4_4096 +dEQP-VK.ray_tracing.build.cpuht_max.level_primitives.mixed_4_4_65536 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.triangles_1_16_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.triangles_1_256_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.triangles_1_4096_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.triangles_1_65536_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.triangles_1_1048576_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.triangles_4_1_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.triangles_4_16_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.triangles_4_256_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.triangles_4_4096_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.triangles_4_65536_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.aabbs_1_16_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.aabbs_1_256_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.aabbs_1_4096_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.aabbs_1_65536_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.aabbs_1_1048576_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.aabbs_4_1_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.aabbs_4_16_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.aabbs_4_256_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.aabbs_4_4096_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.aabbs_4_65536_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.mixed_4_16_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.mixed_4_256_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.mixed_4_4096_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_geometries.mixed_4_65536_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.triangles_16_1_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.triangles_256_1_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.triangles_4096_1_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.triangles_65536_1_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.triangles_1048576_1_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.triangles_1_4_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.triangles_16_4_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.triangles_256_4_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.triangles_4096_4_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.triangles_65536_4_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.aabbs_16_1_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.aabbs_256_1_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.aabbs_4096_1_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.aabbs_65536_1_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.aabbs_1048576_1_1 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.aabbs_1_4_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.aabbs_16_4_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.aabbs_256_4_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.aabbs_4096_4_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.aabbs_65536_4_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.mixed_16_4_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.mixed_256_4_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.mixed_4096_4_4 +dEQP-VK.ray_tracing.build.cpuht_max.level_instances.mixed_65536_4_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_1_1_16 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_1_1_256 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_1_1_4096 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_1_1_65536 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_1_1_1048576 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_4_4_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_4_4_16 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_4_4_256 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_4_4_4096 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.triangles_4_4_65536 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_1_1_16 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_1_1_256 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_1_1_4096 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_1_1_65536 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_1_1_1048576 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_4_4_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_4_4_16 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_4_4_256 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_4_4_4096 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.aabbs_4_4_65536 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.mixed_4_4_16 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.mixed_4_4_256 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.mixed_4_4_4096 +dEQP-VK.ray_tracing.build.gpu_cpu.level_primitives.mixed_4_4_65536 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_1_16_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_1_256_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_1_4096_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_1_65536_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_1_1048576_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_4_1_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_4_16_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_4_256_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_4_4096_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.triangles_4_65536_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_1_16_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_1_256_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_1_4096_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_1_65536_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_1_1048576_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_4_1_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_4_16_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_4_256_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_4_4096_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.aabbs_4_65536_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.mixed_4_16_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.mixed_4_256_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.mixed_4_4096_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_geometries.mixed_4_65536_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_16_1_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_256_1_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_4096_1_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_65536_1_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_1048576_1_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_1_4_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_16_4_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_256_4_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_4096_4_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.triangles_65536_4_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_16_1_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_256_1_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_4096_1_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_65536_1_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_1048576_1_1 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_1_4_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_16_4_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_256_4_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_4096_4_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.aabbs_65536_4_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.mixed_16_4_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.mixed_256_4_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.mixed_4096_4_4 +dEQP-VK.ray_tracing.build.gpu_cpu.level_instances.mixed_65536_4_4 dEQP-VK.ray_tracing.callable_shader.rgen_call dEQP-VK.ray_tracing.callable_shader.rgen_call_call dEQP-VK.ray_tracing.callable_shader.hit_call @@ -604833,6 +605289,54 @@ dEQP-VK.ray_tracing.acceleration_structures.operations.serialization.gpu_built.b dEQP-VK.ray_tracing.acceleration_structures.operations.serialization.gpu_built.bottom_acceleration_structure.aabbs dEQP-VK.ray_tracing.acceleration_structures.requirements.memory_build_scratch dEQP-VK.ray_tracing.acceleration_structures.requirements.memory_update_scratch +dEQP-VK.ray_tracing.acceleration_structures.host_threading.1.copy.cpu_built.top_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.1.copy.cpu_built.top_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.1.copy.cpu_built.bottom_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.1.copy.cpu_built.bottom_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.1.serialization.cpu_built.top_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.1.serialization.cpu_built.top_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.1.serialization.cpu_built.bottom_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.1.serialization.cpu_built.bottom_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.2.copy.cpu_built.top_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.2.copy.cpu_built.top_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.2.copy.cpu_built.bottom_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.2.copy.cpu_built.bottom_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.2.serialization.cpu_built.top_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.2.serialization.cpu_built.top_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.2.serialization.cpu_built.bottom_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.2.serialization.cpu_built.bottom_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.3.copy.cpu_built.top_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.3.copy.cpu_built.top_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.3.copy.cpu_built.bottom_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.3.copy.cpu_built.bottom_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.3.serialization.cpu_built.top_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.3.serialization.cpu_built.top_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.3.serialization.cpu_built.bottom_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.3.serialization.cpu_built.bottom_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.4.copy.cpu_built.top_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.4.copy.cpu_built.top_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.4.copy.cpu_built.bottom_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.4.copy.cpu_built.bottom_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.4.serialization.cpu_built.top_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.4.serialization.cpu_built.top_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.4.serialization.cpu_built.bottom_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.4.serialization.cpu_built.bottom_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.8.copy.cpu_built.top_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.8.copy.cpu_built.top_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.8.copy.cpu_built.bottom_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.8.copy.cpu_built.bottom_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.8.serialization.cpu_built.top_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.8.serialization.cpu_built.top_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.8.serialization.cpu_built.bottom_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.8.serialization.cpu_built.bottom_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.max.copy.cpu_built.top_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.max.copy.cpu_built.top_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.max.copy.cpu_built.bottom_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.max.copy.cpu_built.bottom_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.max.serialization.cpu_built.top_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.max.serialization.cpu_built.top_acceleration_structure.aabbs +dEQP-VK.ray_tracing.acceleration_structures.host_threading.max.serialization.cpu_built.bottom_acceleration_structure.triangles +dEQP-VK.ray_tracing.acceleration_structures.host_threading.max.serialization.cpu_built.bottom_acceleration_structure.aabbs dEQP-VK.ray_tracing.indirect.build_structure dEQP-VK.ray_tracing.watertightness.0.4 dEQP-VK.ray_tracing.watertightness.0.16 -- 2.7.4