nir/vtn: Add handling for SPIR-V event variables
Reviewed-by: Dave Airlie <airlied@redhat.com> Reviewed-by: Daniel Stone <daniels@collabora.com> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6035>
This commit is contained in:
@@ -732,6 +732,7 @@ vtn_types_compatible(struct vtn_builder *b,
|
||||
case vtn_base_type_image:
|
||||
case vtn_base_type_sampler:
|
||||
case vtn_base_type_sampled_image:
|
||||
case vtn_base_type_event:
|
||||
return t1->type == t2->type;
|
||||
|
||||
case vtn_base_type_array:
|
||||
@@ -787,6 +788,7 @@ vtn_type_copy(struct vtn_builder *b, struct vtn_type *src)
|
||||
case vtn_base_type_image:
|
||||
case vtn_base_type_sampler:
|
||||
case vtn_base_type_sampled_image:
|
||||
case vtn_base_type_event:
|
||||
/* Nothing more to do */
|
||||
break;
|
||||
|
||||
@@ -1707,6 +1709,10 @@ vtn_handle_type(struct vtn_builder *b, SpvOp opcode,
|
||||
break;
|
||||
|
||||
case SpvOpTypeEvent:
|
||||
val->type->base_type = vtn_base_type_event;
|
||||
val->type->type = glsl_int_type();
|
||||
break;
|
||||
|
||||
case SpvOpTypeDeviceEvent:
|
||||
case SpvOpTypeReserveId:
|
||||
case SpvOpTypeQueue:
|
||||
@@ -1756,6 +1762,7 @@ vtn_null_constant(struct vtn_builder *b, struct vtn_type *type)
|
||||
case vtn_base_type_sampler:
|
||||
case vtn_base_type_sampled_image:
|
||||
case vtn_base_type_function:
|
||||
case vtn_base_type_event:
|
||||
/* For those we have to return something but it doesn't matter what. */
|
||||
break;
|
||||
|
||||
|
@@ -324,6 +324,7 @@ enum vtn_base_type {
|
||||
vtn_base_type_sampler,
|
||||
vtn_base_type_sampled_image,
|
||||
vtn_base_type_function,
|
||||
vtn_base_type_event,
|
||||
};
|
||||
|
||||
struct vtn_type {
|
||||
|
Reference in New Issue
Block a user