From 938be4d6fabfbef4c3668f73c449d45e1d8ca518 Mon Sep 17 00:00:00 2001 From: Jesse Natalie Date: Tue, 18 Aug 2020 06:41:18 -0700 Subject: [PATCH] nir/vtn: Add handling for SPIR-V event variables Reviewed-by: Dave Airlie Reviewed-by: Daniel Stone Reviewed-by: Jason Ekstrand Part-of: --- src/compiler/spirv/spirv_to_nir.c | 7 +++++++ src/compiler/spirv/vtn_private.h | 1 + 2 files changed, 8 insertions(+) diff --git a/src/compiler/spirv/spirv_to_nir.c b/src/compiler/spirv/spirv_to_nir.c index ea042bd..9632b96 100644 --- a/src/compiler/spirv/spirv_to_nir.c +++ b/src/compiler/spirv/spirv_to_nir.c @@ -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; diff --git a/src/compiler/spirv/vtn_private.h b/src/compiler/spirv/vtn_private.h index b0d8d11..504c8d4 100644 --- a/src/compiler/spirv/vtn_private.h +++ b/src/compiler/spirv/vtn_private.h @@ -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 { -- 2.7.4