From a41e8dc58876c7bf33b73576019f966b908ac080 Mon Sep 17 00:00:00 2001 From: Lionel Landwerlin Date: Fri, 8 Jul 2022 14:38:35 +0300 Subject: [PATCH] spirv: switch to uint64 for rayquery internal type Fixes dEQP-VK.ray_query.advanced.using_wrapper_function.comp.* An empty struct is causing problems because when passing it as argument the spirv parser will just drop the argument, considering it does not hold any data. v2: update radv CI Signed-off-by: Lionel Landwerlin Fixes: 4c703686dba5 ("spirv: handle ray query intrinsics") Reviewed-by: Konstantin Seurer Part-of: --- src/amd/ci/radv-navi21-aco-fails.txt | 4 ---- src/amd/ci/radv-navi22-aco-fails.txt | 4 ---- src/amd/ci/radv-vangogh-aco-fails.txt | 4 ---- src/compiler/spirv/spirv_to_nir.c | 3 +-- 4 files changed, 1 insertion(+), 14 deletions(-) diff --git a/src/amd/ci/radv-navi21-aco-fails.txt b/src/amd/ci/radv-navi21-aco-fails.txt index ddf125936e8..b4465c445cc 100644 --- a/src/amd/ci/radv-navi21-aco-fails.txt +++ b/src/amd/ci/radv-navi21-aco-fails.txt @@ -6,10 +6,6 @@ dEQP-VK.rasterization.rasterization_order_attachment_access.stencil.samples_2.mu dEQP-VK.rasterization.rasterization_order_attachment_access.stencil.samples_4.multi_draw_barriers,Fail dEQP-VK.rasterization.rasterization_order_attachment_access.stencil.samples_8.multi_draw_barriers,Fail -# Those cases crash in spirv to nir. -dEQP-VK.ray_query.advanced.using_wrapper_function.comp.triangles,Crash -dEQP-VK.ray_query.advanced.using_wrapper_function.comp.aabbs,Crash - # New fails in CTS 1.3.3.0 dEQP-VK.ray_tracing_pipeline.acceleration_structures.copy_within_pipeline.cpu.access_sbt_read,Crash dEQP-VK.ray_tracing_pipeline.acceleration_structures.copy_within_pipeline.cpu.stage_all_transfer,Crash diff --git a/src/amd/ci/radv-navi22-aco-fails.txt b/src/amd/ci/radv-navi22-aco-fails.txt index c4d1ce4f6ae..386c9823dae 100644 --- a/src/amd/ci/radv-navi22-aco-fails.txt +++ b/src/amd/ci/radv-navi22-aco-fails.txt @@ -7,10 +7,6 @@ dEQP-VK.rasterization.rasterization_order_attachment_access.stencil.samples_2.mu dEQP-VK.rasterization.rasterization_order_attachment_access.stencil.samples_4.multi_draw_barriers,Fail dEQP-VK.rasterization.rasterization_order_attachment_access.stencil.samples_8.multi_draw_barriers,Fail -# Those cases crash in spirv to nir. -dEQP-VK.ray_query.advanced.using_wrapper_function.comp.triangles,Crash -dEQP-VK.ray_query.advanced.using_wrapper_function.comp.aabbs,Crash - # New fails in CTS 1.3.3.0 dEQP-VK.ray_tracing_pipeline.acceleration_structures.copy_within_pipeline.cpu.access_sbt_read,Crash dEQP-VK.ray_tracing_pipeline.acceleration_structures.copy_within_pipeline.cpu.stage_all_transfer,Crash diff --git a/src/amd/ci/radv-vangogh-aco-fails.txt b/src/amd/ci/radv-vangogh-aco-fails.txt index deae8157626..0a731d58b16 100644 --- a/src/amd/ci/radv-vangogh-aco-fails.txt +++ b/src/amd/ci/radv-vangogh-aco-fails.txt @@ -10,10 +10,6 @@ dEQP-VK.rasterization.rasterization_order_attachment_access.stencil.samples_2.mu dEQP-VK.rasterization.rasterization_order_attachment_access.stencil.samples_4.multi_draw_barriers,Fail dEQP-VK.rasterization.rasterization_order_attachment_access.stencil.samples_8.multi_draw_barriers,Fail -# Those cases crash in spirv to nir. -dEQP-VK.ray_query.advanced.using_wrapper_function.comp.triangles,Crash -dEQP-VK.ray_query.advanced.using_wrapper_function.comp.aabbs,Crash - # New fails in CTS 1.3.3.0 dEQP-VK.ray_tracing_pipeline.acceleration_structures.copy_within_pipeline.cpu.access_sbt_read,Crash dEQP-VK.ray_tracing_pipeline.acceleration_structures.copy_within_pipeline.cpu.stage_all_transfer,Crash diff --git a/src/compiler/spirv/spirv_to_nir.c b/src/compiler/spirv/spirv_to_nir.c index 39491c11d75..7c10c9729cf 100644 --- a/src/compiler/spirv/spirv_to_nir.c +++ b/src/compiler/spirv/spirv_to_nir.c @@ -1826,8 +1826,7 @@ vtn_handle_type(struct vtn_builder *b, SpvOp opcode, case SpvOpTypeRayQueryKHR: { val->type->base_type = vtn_base_type_ray_query; - const char *name = "RayQueryKHR"; - val->type->type = glsl_struct_type(NULL, 0, name, false); + val->type->type = glsl_uint64_t_type(); /* We may need to run queries on helper invocations. Here the parser * doesn't go through a deeper analysis on whether the result of a query * will be used in derivative instructions.