Mesa (main): spirv: Identify non-temporal image operand added in SPIR-V 1.6

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Sat Dec 18 01:38:36 UTC 2021


Module: Mesa
Branch: main
Commit: 53f38d36835a72acc83eb9a47422651789de4125
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=53f38d36835a72acc83eb9a47422651789de4125

Author: Caio Oliveira <caio.oliveira at intel.com>
Date:   Mon Sep 20 11:10:10 2021 -0700

spirv: Identify non-temporal image operand added in SPIR-V 1.6

Map it to the existing ACCESS_STREAM_CACHE_POLICY access mode.

Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14209>

---

 src/compiler/spirv/spirv_to_nir.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/src/compiler/spirv/spirv_to_nir.c b/src/compiler/spirv/spirv_to_nir.c
index 502977e35e6..f804031a200 100644
--- a/src/compiler/spirv/spirv_to_nir.c
+++ b/src/compiler/spirv/spirv_to_nir.c
@@ -3078,6 +3078,9 @@ vtn_handle_texture(struct vtn_builder *b, SpvOp opcode,
    enum gl_access_qualifier access = 0;
    vtn_foreach_decoration(b, sampled_val, non_uniform_decoration_cb, &access);
 
+   if (operands & SpvImageOperandsNontemporalMask)
+      access |= ACCESS_STREAM_CACHE_POLICY;
+
    if (sampled_val->propagated_non_uniform)
       access |= ACCESS_NON_UNIFORM;
 
@@ -3329,6 +3332,8 @@ vtn_handle_image(struct vtn_builder *b, SpvOp opcode,
 
       if (operands & SpvImageOperandsVolatileTexelMask)
          access |= ACCESS_VOLATILE;
+      if (operands & SpvImageOperandsNontemporalMask)
+         access |= ACCESS_STREAM_CACHE_POLICY;
 
       break;
    }
@@ -3369,6 +3374,8 @@ vtn_handle_image(struct vtn_builder *b, SpvOp opcode,
 
       if (operands & SpvImageOperandsVolatileTexelMask)
          access |= ACCESS_VOLATILE;
+      if (operands & SpvImageOperandsNontemporalMask)
+         access |= ACCESS_STREAM_CACHE_POLICY;
 
       break;
    }



More information about the mesa-commit mailing list