Mesa (master): nir/vtn: Add handling for SPIR-V event variables

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Sep 25 20:42:55 UTC 2020


Module: Mesa
Branch: master
Commit: 938be4d6fabfbef4c3668f73c449d45e1d8ca518
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=938be4d6fabfbef4c3668f73c449d45e1d8ca518

Author: Jesse Natalie <jenatali at microsoft.com>
Date:   Tue Aug 18 06:41:18 2020 -0700

nir/vtn: Add handling for SPIR-V event variables

Reviewed-by: Dave Airlie <airlied at redhat.com>
Reviewed-by: Daniel Stone <daniels at collabora.com>
Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6035>

---

 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 ea042bd57b6..9632b96ea9d 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 b0d8d11eb70..504c8d48a86 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 {



More information about the mesa-commit mailing list