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_image:
|
||||||
case vtn_base_type_sampler:
|
case vtn_base_type_sampler:
|
||||||
case vtn_base_type_sampled_image:
|
case vtn_base_type_sampled_image:
|
||||||
|
case vtn_base_type_event:
|
||||||
return t1->type == t2->type;
|
return t1->type == t2->type;
|
||||||
|
|
||||||
case vtn_base_type_array:
|
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_image:
|
||||||
case vtn_base_type_sampler:
|
case vtn_base_type_sampler:
|
||||||
case vtn_base_type_sampled_image:
|
case vtn_base_type_sampled_image:
|
||||||
|
case vtn_base_type_event:
|
||||||
/* Nothing more to do */
|
/* Nothing more to do */
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -1707,6 +1709,10 @@ vtn_handle_type(struct vtn_builder *b, SpvOp opcode,
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case SpvOpTypeEvent:
|
case SpvOpTypeEvent:
|
||||||
|
val->type->base_type = vtn_base_type_event;
|
||||||
|
val->type->type = glsl_int_type();
|
||||||
|
break;
|
||||||
|
|
||||||
case SpvOpTypeDeviceEvent:
|
case SpvOpTypeDeviceEvent:
|
||||||
case SpvOpTypeReserveId:
|
case SpvOpTypeReserveId:
|
||||||
case SpvOpTypeQueue:
|
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_sampler:
|
||||||
case vtn_base_type_sampled_image:
|
case vtn_base_type_sampled_image:
|
||||||
case vtn_base_type_function:
|
case vtn_base_type_function:
|
||||||
|
case vtn_base_type_event:
|
||||||
/* For those we have to return something but it doesn't matter what. */
|
/* For those we have to return something but it doesn't matter what. */
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@@ -324,6 +324,7 @@ enum vtn_base_type {
|
|||||||
vtn_base_type_sampler,
|
vtn_base_type_sampler,
|
||||||
vtn_base_type_sampled_image,
|
vtn_base_type_sampled_image,
|
||||||
vtn_base_type_function,
|
vtn_base_type_function,
|
||||||
|
vtn_base_type_event,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct vtn_type {
|
struct vtn_type {
|
||||||
|
Reference in New Issue
Block a user