spirv: use a pointer sized int type for opencl event_t

llvm16 + opaque pointers uses a ptr to event for the opaque type,
llvm 17 fixes this properly, but the fix doesn't look too backportable.

Cc: mesa-stable
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25165>
This commit is contained in:
Dave Airlie 2023-09-11 16:53:55 +10:00 committed by Marge Bot
parent 4e85c325ff
commit f423d91790

View file

@ -1932,7 +1932,11 @@ vtn_handle_type(struct vtn_builder *b, SpvOp opcode,
case SpvOpTypeEvent:
val->type->base_type = vtn_base_type_event;
val->type->type = glsl_int_type();
/*
* this makes the event type compatible with pointer size due to LLVM 16.
* llvm 17 fixes this properly, but with 16 and opaque ptrs it's still wrong.
*/
val->type->type = b->shader->info.cs.ptr_size == 64 ? glsl_int64_t_type() : glsl_int_type();
break;
case SpvOpTypeDeviceEvent: