summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJason Ekstrand <[email protected]>2018-11-28 13:44:56 -0600
committerJason Ekstrand <[email protected]>2019-01-08 00:38:30 +0000
commit013ee5732b73c33379007c3ff31b238aa088a800 (patch)
treeddc741bb94cd12d348b6a23df0986807c32be375
parent7755171e4c976d5b438d608c2a2f6081edc67278 (diff)
nir/intrinsics: Add access flags to load/store_deref
Reviewed-by: Alejandro PiƱeiro <[email protected]> Reviewed-by: Caio Marcelo de Oliveira Filho <[email protected]>
-rw-r--r--src/compiler/nir/nir.h2
-rw-r--r--src/compiler/nir/nir_intrinsics.py7
2 files changed, 5 insertions, 4 deletions
diff --git a/src/compiler/nir/nir.h b/src/compiler/nir/nir.h
index 0042f803eb2..29b4da22330 100644
--- a/src/compiler/nir/nir.h
+++ b/src/compiler/nir/nir.h
@@ -1262,7 +1262,7 @@ typedef enum {
NIR_INTRINSIC_FORMAT = 15,
/**
- * Access qualifiers for image intrinsics
+ * Access qualifiers for image and memory access intrinsics
*/
NIR_INTRINSIC_ACCESS = 16,
diff --git a/src/compiler/nir/nir_intrinsics.py b/src/compiler/nir/nir_intrinsics.py
index 24bcd6bb169..e449764492d 100644
--- a/src/compiler/nir/nir_intrinsics.py
+++ b/src/compiler/nir/nir_intrinsics.py
@@ -105,7 +105,7 @@ PARAM_IDX = "NIR_INTRINSIC_PARAM_IDX"
IMAGE_DIM = "NIR_INTRINSIC_IMAGE_DIM"
# Non-zero if we are accessing an array image
IMAGE_ARRAY = "NIR_INTRINSIC_IMAGE_ARRAY"
-# Access qualifiers for image intrinsics
+# Access qualifiers for image and memory access intrinsics
ACCESS = "NIR_INTRINSIC_ACCESS"
# Image format for image intrinsics
FORMAT = "NIR_INTRINSIC_FORMAT"
@@ -132,8 +132,9 @@ intrinsic("nop", flags=[CAN_ELIMINATE])
intrinsic("load_param", dest_comp=0, indices=[PARAM_IDX], flags=[CAN_ELIMINATE])
-intrinsic("load_deref", dest_comp=0, src_comp=[-1], flags=[CAN_ELIMINATE])
-intrinsic("store_deref", src_comp=[-1, 0], indices=[WRMASK])
+intrinsic("load_deref", dest_comp=0, src_comp=[-1],
+ indices=[ACCESS], flags=[CAN_ELIMINATE])
+intrinsic("store_deref", src_comp=[-1, 0], indices=[WRMASK, ACCESS])
intrinsic("copy_deref", src_comp=[-1, -1])
# Interpolation of input. The interp_deref_at* intrinsics are similar to the