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
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
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
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
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
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
namespace vk
{
+struct DeferredThreadParams
+{
+ const DeviceInterface& vk;
+ VkDevice device;
+ VkDeferredOperationKHR deferredOperation;
+ VkResult result;
+};
std::string getCommonRayGenerationShader (void)
{
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<deUint32>::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<DeferredThreadParams> threadParams (testThreadCount, deferredThreadParams);
+ std::vector<de::MovePtr<std::thread> > threads (testThreadCount);
+ bool executionResult = false;
+
+ DE_ASSERT(threads.size() > 0 && threads.size() == testThreadCount);
+
+ for (deUint32 threadNdx = 0; threadNdx < testThreadCount; ++threadNdx)
+ threads[threadNdx] = de::MovePtr<std::thread>(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,
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,
VkAccelerationStructureBuildTypeKHR m_buildType;
VkBuildAccelerationStructureFlagsKHR m_buildFlags;
bool m_deferredOperation;
+ deUint32 m_workerThreadCount;
bool m_useArrayOfPointers;
de::MovePtr<BufferWithMemory> m_vertexBuffer;
de::MovePtr<BufferWithMemory> m_indexBuffer;
, 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 ()
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)
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;
}
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)
const VkCommandBuffer cmdBuffer,
SerialStorage* storage)
{
- VkCopyAccelerationStructureToMemoryInfoKHR copyAccelerationStructureInfo =
+ Move<VkDeferredOperationKHR> deferredOperation = (m_deferredOperation ? createDeferredOperationKHR(vk, device) : Move<VkDeferredOperationKHR>());
+ 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;
}
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,
const VkCommandBuffer cmdBuffer,
SerialStorage* storage)
{
- VkCopyMemoryToAccelerationStructureInfoKHR copyAccelerationStructureInfo =
+ const Move<VkDeferredOperationKHR> deferredOperation = (m_deferredOperation ? createDeferredOperationKHR(vk, device) : Move<VkDeferredOperationKHR>());
+ 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;
}
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)
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,
VkAccelerationStructureBuildTypeKHR m_buildType;
VkBuildAccelerationStructureFlagsKHR m_buildFlags;
bool m_deferredOperation;
+ deUint32 m_workerThreadCount;
bool m_useArrayOfPointers;
de::MovePtr<BufferWithMemory> m_instanceBuffer;
de::MovePtr<BufferWithMemory> m_instanceAddressBuffer;
, 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 ()
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)
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;
}
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)
const VkCommandBuffer cmdBuffer,
SerialStorage* storage)
{
- VkCopyAccelerationStructureToMemoryInfoKHR copyAccelerationStructureInfo =
+ Move<VkDeferredOperationKHR> deferredOperation = (m_deferredOperation ? createDeferredOperationKHR(vk, device) : Move<VkDeferredOperationKHR>());
+ 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;
}
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,
const VkCommandBuffer cmdBuffer,
SerialStorage* storage)
{
- VkCopyMemoryToAccelerationStructureInfoKHR copyAccelerationStructureInfo =
+ const Move<VkDeferredOperationKHR> deferredOperation = (m_deferredOperation ? createDeferredOperationKHR(vk, device) : Move<VkDeferredOperationKHR>());
+ 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;
}
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)
, m_maxAttributeSize (0U)
, m_maxCallableSize (0U)
, m_deferredOperation (false)
+ , m_workerThreadCount (0)
{
}
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;
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
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,
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,
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<VkPipeline> createPipelineKHR (const DeviceInterface& vk,
deUint32 m_maxAttributeSize;
deUint32 m_maxCallableSize;
bool m_deferredOperation;
+ deUint32 m_workerThreadCount;
};
class RayTracingProperties
#include "vktRayTracingAccelerationStructuresTests.hpp"
#include "vkDefs.hpp"
+#include "deClock.h"
#include "vktTestCase.hpp"
#include "vktTestGroupUtil.hpp"
deUint32 width;
deUint32 height;
de::SharedPtr<TestConfiguration> testConfiguration;
+ deUint32 workerThreadsCount;
};
deUint32 getShaderGroupSize (const InstanceInterface& vki,
tcu::TestStatus iterate (void) override;
protected:
- de::MovePtr<BufferWithMemory> runTest ();
+ bool iterateNoWorkers (void);
+ bool iterateWithWorkers (void);
+ de::MovePtr<BufferWithMemory> runTest (const deUint32 workerThreadsCount);
private:
TestParams m_data;
};
{
}
-de::MovePtr<BufferWithMemory> RayTracingASBasicTestInstance::runTest()
+de::MovePtr<BufferWithMemory> RayTracingASBasicTestInstance::runTest(const deUint32 workerThreadsCount)
{
const InstanceInterface& vki = m_context.getInstanceInterface();
const DeviceInterface& vkd = m_context.getDeviceInterface();
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<VkDescriptorSetLayout> descriptorSetLayout = DescriptorSetLayoutBuilder()
.addSingleBinding(VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, ALL_RAY_TRACING_STAGES)
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);
for (size_t i = 0; i < bottomLevelAccelerationStructures.size(); ++i)
{
de::SharedPtr<SerialStorage> 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);
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;
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);
topLevelAccelerationStructureCopy = m_data.testConfiguration->initTopAccelerationStructure(m_context, m_data, *bottomLevelAccelerationStructuresPtr);
de::SharedPtr<SerialStorage> 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);
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;
}
return resultBuffer;
}
-tcu::TestStatus RayTracingASBasicTestInstance::iterate (void)
+bool RayTracingASBasicTestInstance::iterateNoWorkers (void)
{
// run test using arrays of pointers
- const de::MovePtr<BufferWithMemory> buffer = runTest();
+ const de::MovePtr<BufferWithMemory> buffer = runTest(0);
+
+ return m_data.testConfiguration->verifyImage(buffer.get(), m_context, m_data);
+}
+
+bool RayTracingASBasicTestInstance::iterateWithWorkers (void)
+{
+ const deUint64 singleThreadTimeStart = deGetMicroseconds();
+ de::MovePtr<BufferWithMemory> 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<BufferWithMemory> 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
OP_NONE,
RTAS_DEFAULT_SIZE,
RTAS_DEFAULT_SIZE,
- de::SharedPtr<TestConfiguration>(new CheckerboardConfiguration())
+ de::SharedPtr<TestConfiguration>(new CheckerboardConfiguration()),
+ 0
};
topGroup->addChild(new RayTracingASBasicTestCase(group->getTestContext(), testName.c_str(), "", testParams));
}
OP_NONE,
RTAS_DEFAULT_SIZE,
RTAS_DEFAULT_SIZE,
- de::SharedPtr<TestConfiguration>(new SingleTriangleConfiguration())
+ de::SharedPtr<TestConfiguration>(new SingleTriangleConfiguration()),
+ 0
};
vertexFormatGroup->addChild(new RayTracingASBasicTestCase(group->getTestContext(), indexFormats[indexFormatNdx].name, "", testParams));
}
}
}
-void addOperationTests(tcu::TestCaseGroup* group)
+void addOperationTestsImpl (tcu::TestCaseGroup* group, const deUint32 workerThreads)
{
struct
{
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<tcu::TestCaseGroup> 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<tcu::TestCaseGroup> buildGroup(new tcu::TestCaseGroup(group->getTestContext(), buildTypes[buildTypeNdx].name, ""));
for (size_t operationTargetNdx = 0; operationTargetNdx < DE_LENGTH_OF_ARRAY(operationTargets); ++operationTargetNdx)
operationTypes[operationTypeNdx].operationType,
RTAS_DEFAULT_SIZE,
RTAS_DEFAULT_SIZE,
- de::SharedPtr<TestConfiguration>(new CheckerboardConfiguration())
+ de::SharedPtr<TestConfiguration>(new CheckerboardConfiguration()),
+ workerThreads
};
operationTargetGroup->addChild(new RayTracingASBasicTestCase(group->getTestContext(), bottomTestTypes[testTypeNdx].name, "", testParams));
}
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<deUint32>::max() };
+
+ for (size_t threadsNdx = 0; threadsNdx < DE_LENGTH_OF_ARRAY(threads); ++threadsNdx)
+ {
+ const std::string groupName = threads[threadsNdx] != std::numeric_limits<deUint32>::max()
+ ? de::toString(threads[threadsNdx])
+ : "max";
+
+ de::MovePtr<tcu::TestCaseGroup> threadGroup(new tcu::TestCaseGroup(group->getTestContext(), groupName.c_str(), ""));
+
+ addOperationTestsImpl(threadGroup.get(), threads[threadsNdx]);
+
+ group->addChild(threadGroup.release());
+ }
+}
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();
}
#include "vkRayTracingUtil.hpp"
+#include "deClock.h"
+
+#include <limits>
+
namespace vkt
{
namespace RayTracing
deUint32 instancesGroupCount;
bool deferredOperation;
VkAccelerationStructureBuildTypeKHR buildType;
+ deUint32 workerThreadsCount;
};
deUint32 getShaderGroupSize (const InstanceInterface& vki,
de::MovePtr<RayTracingPipeline>& rayTracingPipeline,
VkPipelineLayout pipelineLayout,
const deUint32 groupCount,
- const bool deferredOperation)
+ const bool deferredOperation,
+ const deUint32 threadCount)
{
Move<VkShaderModule> 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)
tcu::TestStatus iterate (void);
protected:
+ deUint32 iterateNoWorkers (void);
+ deUint32 iterateWithWorkers (void);
void checkSupportInInstance (void) const;
- de::MovePtr<BufferWithMemory> runTest (void);
+ de::MovePtr<BufferWithMemory> runTest (const deUint32 threadCount);
+ deUint32 validateBuffer (de::MovePtr<BufferWithMemory> buffer);
de::SharedPtr<TopLevelAccelerationStructure> initTopAccelerationStructure (VkCommandBuffer cmdBuffer,
de::SharedPtr<BottomLevelAccelerationStructure>& bottomLevelAccelerationStructure);
de::SharedPtr<BottomLevelAccelerationStructure> initBottomAccelerationStructure (VkCommandBuffer cmdBuffer);
return de::SharedPtr<BottomLevelAccelerationStructure>(result.release());
}
-de::MovePtr<BufferWithMemory> RayTracingBuildLargeTestInstance::runTest (void)
+de::MovePtr<BufferWithMemory> RayTracingBuildLargeTestInstance::runTest (const deUint32 threadCount)
{
const InstanceInterface& vki = m_context.getInstanceInterface();
const DeviceInterface& vkd = m_context.getDeviceInterface();
const Move<VkCommandBuffer> cmdBuffer = allocateCommandBuffer(vkd, device, *cmdPool, VK_COMMAND_BUFFER_LEVEL_PRIMARY);
de::MovePtr<RayTracingPipeline> rayTracingPipeline = de::newMovePtr<RayTracingPipeline>();
- const Move<VkPipeline> pipeline = makePipeline(vkd, device, m_context.getBinaryCollection(), rayTracingPipeline, *pipelineLayout, callableShaderCount, m_data.deferredOperation);
+ const Move<VkPipeline> pipeline = makePipeline(vkd, device, m_context.getBinaryCollection(), rayTracingPipeline, *pipelineLayout, callableShaderCount, m_data.deferredOperation, threadCount);
const de::MovePtr<BufferWithMemory> raygenShaderBindingTable = rayTracingPipeline->createShaderBindingTable(vkd, device, *pipeline, allocator, shaderGroupHandleSize, shaderGroupBaseAlignment, 0, 1u);
const de::MovePtr<BufferWithMemory> callableShaderBindingTable = rayTracingPipeline->createShaderBindingTable(vkd, device, *pipeline, allocator, shaderGroupHandleSize, shaderGroupBaseAlignment, 1u, callableShaderCount);
const VkStridedBufferRegionKHR raygenShaderBindingTableRegion = makeStridedBufferRegionKHR(raygenShaderBindingTable->get(), 0, shaderGroupHandleSize, shaderGroupHandleSize);
TCU_THROW(NotSupportedError, "Test requires more allocations allowed");
}
-tcu::TestStatus RayTracingBuildLargeTestInstance::iterate (void)
+deUint32 RayTracingBuildLargeTestInstance::validateBuffer (de::MovePtr<BufferWithMemory> buffer)
{
- checkSupportInInstance();
-
- const de::MovePtr<BufferWithMemory> 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<BufferWithMemory> buffer = runTest(0);
+ const deUint32 failures = validateBuffer(buffer);
+
+ return failures;
+}
+
+deUint32 RayTracingBuildLargeTestInstance::iterateWithWorkers (void)
+{
+ const deUint64 singleThreadTimeStart = deGetMicroseconds();
+ de::MovePtr<BufferWithMemory> singleThreadBuffer = runTest(0);
+ const deUint32 singleThreadFailures = validateBuffer(singleThreadBuffer);
+ const deUint64 singleThreadTime = deGetMicroseconds() - singleThreadTimeStart;
+
+ deUint64 multiThreadTimeStart = deGetMicroseconds();
+ de::MovePtr<BufferWithMemory> 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
{ "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<deUint32>::max() };
for (size_t buildNdx = 0; buildNdx < DE_LENGTH_OF_ARRAY(buildTypes); ++buildNdx)
{
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);
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<deUint32>::max() ? "max" : de::toString(threads[threadsNdx]);
+ const std::string buildTypeGroupName = std::string(buildTypes[buildNdx].buildTypeName) + '_' + suffix;
+ de::MovePtr<tcu::TestCaseGroup> 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();
}
#include "vkRayTracingUtil.hpp"
+#include "deClock.h"
+
namespace vkt
{
namespace RayTracing
deUint32 geometriesGroupCount;
deUint32 instancesGroupCount;
bool deferredOperation;
+ deUint32 workerThreadsCount;
};
enum ShaderGroups
tcu::TestStatus iterate (void);
protected:
+ deUint32 iterateNoWorkers (void);
+ deUint32 iterateWithWorkers (void);
void checkSupportInInstance (void) const;
- de::MovePtr<BufferWithMemory> runTest (bool useGpuBuild);
+ deUint32 validateBuffer (de::MovePtr<BufferWithMemory> buffer);
+ de::MovePtr<BufferWithMemory> runTest (bool useGpuBuild,
+ deUint32 workerThreadsCount);
de::MovePtr<TopLevelAccelerationStructure> initTopAccelerationStructure (VkCommandBuffer cmdBuffer,
bool useGpuBuild,
+ deUint32 workerThreadsCount,
vector<de::SharedPtr<BottomLevelAccelerationStructure> >& bottomLevelAccelerationStructures);
- vector<de::SharedPtr<BottomLevelAccelerationStructure> > initBottomAccelerationStructures (VkCommandBuffer cmdBuffer,
- bool useGpuBuild);
- de::MovePtr<BottomLevelAccelerationStructure> initBottomAccelerationStructure (VkCommandBuffer cmdBuffer,
- bool useGpuBuild,
- tcu::UVec2& startPos,
- bool triangles);
+ vector<de::SharedPtr<BottomLevelAccelerationStructure> > initBottomAccelerationStructures (VkCommandBuffer cmdBuffer,
+ bool useGpuBuild,
+ deUint32 workerThreadsCount);
+ de::MovePtr<BottomLevelAccelerationStructure> initBottomAccelerationStructure (VkCommandBuffer cmdBuffer,
+ bool useGpuBuild,
+ deUint32 workerThreadsCount,
+ tcu::UVec2& startPos,
+ bool triangles);
private:
CaseDef m_data;
de::MovePtr<TopLevelAccelerationStructure> RayTracingBuildTestInstance::initTopAccelerationStructure (VkCommandBuffer cmdBuffer,
bool useGpuBuild,
+ deUint32 workerThreadsCount,
vector<de::SharedPtr<BottomLevelAccelerationStructure> >& bottomLevelAccelerationStructures)
{
const DeviceInterface& vkd = m_context.getDeviceInterface();
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]);
de::MovePtr<BottomLevelAccelerationStructure> RayTracingBuildTestInstance::initBottomAccelerationStructure (VkCommandBuffer cmdBuffer,
bool useGpuBuild,
+ deUint32 workerThreadsCount,
tcu::UVec2& startPos,
bool triangles)
{
de::MovePtr<BottomLevelAccelerationStructure> 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)
}
vector<de::SharedPtr<BottomLevelAccelerationStructure> > RayTracingBuildTestInstance::initBottomAccelerationStructures (VkCommandBuffer cmdBuffer,
- bool useGpuBuild)
+ bool useGpuBuild,
+ deUint32 workerThreadsCount)
{
tcu::UVec2 startPos;
vector<de::SharedPtr<BottomLevelAccelerationStructure> > result;
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> bottomLevelAccelerationStructure = initBottomAccelerationStructure(cmdBuffer, useGpuBuild, startPos, triangles);
+ de::MovePtr<BottomLevelAccelerationStructure> bottomLevelAccelerationStructure = initBottomAccelerationStructure(cmdBuffer, useGpuBuild, workerThreadsCount, startPos, triangles);
result.push_back(de::SharedPtr<BottomLevelAccelerationStructure>(bottomLevelAccelerationStructure.release()));
}
return result;
}
-de::MovePtr<BufferWithMemory> RayTracingBuildTestInstance::runTest (bool useGpuBuild)
+de::MovePtr<BufferWithMemory> RayTracingBuildTestInstance::runTest (bool useGpuBuild, deUint32 workerThreadsCount)
{
const InstanceInterface& vki = m_context.getInstanceInterface();
const DeviceInterface& vkd = m_context.getDeviceInterface();
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);
TCU_THROW(NotSupportedError, "Test requires more allocations allowed");
}
-tcu::TestStatus RayTracingBuildTestInstance::iterate (void)
+deUint32 RayTracingBuildTestInstance::validateBuffer (de::MovePtr<BufferWithMemory> buffer)
{
- checkSupportInInstance();
-
- const de::MovePtr<BufferWithMemory> bufferGPU = runTest(true);
- const deUint32* bufferPtrGPU = (deUint32*)bufferGPU->getAllocation().getHostPtr();
- const de::MovePtr<BufferWithMemory> 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)
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<BufferWithMemory> singleThreadBufferCPU = runTest(false, 0);
+ const deUint32 singleThreadFailures = validateBuffer(singleThreadBufferCPU);
+ const deUint64 singleThreadTime = deGetMicroseconds() - singleThreadTimeStart;
+
+ deUint64 multiThreadTimeStart = deGetMicroseconds();
+ de::MovePtr<BufferWithMemory> 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<BufferWithMemory> bufferGPU = runTest(true, 0);
+ de::MovePtr<BufferWithMemory> 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
tcu::TestCaseGroup* createBuildTests (tcu::TestContext& testCtx)
{
de::MovePtr<tcu::TestCaseGroup> buildGroup(new tcu::TestCaseGroup(testCtx, "build", "Ray tracing build tests"));
- de::MovePtr<tcu::TestCaseGroup> cpuGroup(new tcu::TestCaseGroup(testCtx, "gpu_cpu", "Compare results of run with acceleration structures build on GPU and CPU"));
- de::MovePtr<tcu::TestCaseGroup> mtGroup(new tcu::TestCaseGroup(testCtx, "gpu_cpuht", "Compare results of run with acceleration structures build on GPU and using host threading"));
const char* tests[] =
{
};
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<deUint32>::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<deUint32>::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<tcu::TestCaseGroup> groupGpuCpuHt (new tcu::TestCaseGroup(testCtx, groupName.c_str(), groupDesc.c_str()));
for (size_t testsNdx = 0; testsNdx < DE_LENGTH_OF_ARRAY(tests); ++testsNdx)
{
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;
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;
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;
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();
}
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
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
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