spirv: Identify non-temporal memory access
authorCaio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Mon, 20 Sep 2021 17:52:35 +0000 (10:52 -0700)
committerMarge Bot <eric+marge@anholt.net>
Tue, 21 Sep 2021 21:55:54 +0000 (21:55 +0000)
Map it to the existing ACCESS_STREAM_CACHE_POLICY access mode.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12945>

src/compiler/spirv/vtn_variables.c

index fc1cdc1..efa18c9 100644 (file)
@@ -2247,10 +2247,14 @@ vtn_get_mem_operands(struct vtn_builder *b, const uint32_t *w, unsigned count,
 static enum gl_access_qualifier
 spv_access_to_gl_access(SpvMemoryAccessMask access)
 {
+   unsigned result = 0;
+
    if (access & SpvMemoryAccessVolatileMask)
-      return ACCESS_VOLATILE;
+      result |= ACCESS_VOLATILE;
+   if (access & SpvMemoryAccessNontemporalMask)
+      result |= ACCESS_STREAM_CACHE_POLICY;
 
-   return 0;
+   return result;
 }