[Mesa-dev] [RFC 1/7] nir: Add load/store_scratch intrinsics

Jason Ekstrand jason at jlekstrand.net
Mon Dec 5 19:59:52 UTC 2016


---
 src/compiler/nir/nir_intrinsics.h | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/compiler/nir/nir_intrinsics.h b/src/compiler/nir/nir_intrinsics.h
index f45bfe2..d269805 100644
--- a/src/compiler/nir/nir_intrinsics.h
+++ b/src/compiler/nir/nir_intrinsics.h
@@ -414,6 +414,8 @@ LOAD(shared, 1, 1, BASE, xx, xx, NIR_INTRINSIC_CAN_ELIMINATE)
 /* src[] = { offset }. const_index[] = { base, range } */
 LOAD(push_constant, 1, 2, BASE, RANGE, xx,
      NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER)
+/* src[] = { offset }. const_index[] = { base, range } */
+LOAD(scratch, 1, 2, BASE, RANGE, xx, NIR_INTRINSIC_CAN_ELIMINATE)
 
 /*
  * Stores work the same way as loads, except now the first source is the value
@@ -435,8 +437,10 @@ STORE(per_vertex_output, 3, 3, BASE, WRMASK, COMPONENT, 0)
 STORE(ssbo, 3, 1, WRMASK, xx, xx, 0)
 /* src[] = { value, offset }. const_index[] = { base, write_mask } */
 STORE(shared, 2, 2, BASE, WRMASK, xx, 0)
+/* src[] = { value, offset }. const_index[] = { base, range, write_mask } */
+STORE(scratch, 2, 3, BASE, RANGE, WRMASK, 0)
 
-LAST_INTRINSIC(store_shared)
+LAST_INTRINSIC(store_scratch)
 
 #undef DEFINE_SYSTEM_VALUE
 #undef INTRINSIC
-- 
2.5.0.400.gff86faf



More information about the mesa-dev mailing list