summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLionel Landwerlin <lionel.g.landwerlin@intel.com>2016-09-19 17:14:18 +0100
committerLionel Landwerlin <lionel.g.landwerlin@intel.com>2016-09-22 14:08:21 +0300
commit9adfa695ac144cfd7c9bb9d0c63d280861f3add4 (patch)
tree42eb7544868cb6c6b539be4d731e5a17f8bd7121
parent36f0f0318275f65f8744ec6f9471702e2f58e6d5 (diff)
spirv: fix AtomicLoad/Store on images
OpAtomicLoad/Store should have pointer to images just like the rest of the atomic operators. These couple of lines were poorly copied from the ssbo/shared_vars cases (the only ones currently tests by the CTS). Fixes 2afb950161f8 ("spirv/nir: Add support for OpAtomicLoad/Store") Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
-rw-r--r--src/compiler/spirv/spirv_to_nir.c13
1 files changed, 3 insertions, 10 deletions
diff --git a/src/compiler/spirv/spirv_to_nir.c b/src/compiler/spirv/spirv_to_nir.c
index 04add3e5d3..de2cebc3f2 100644
--- a/src/compiler/spirv/spirv_to_nir.c
+++ b/src/compiler/spirv/spirv_to_nir.c
@@ -1671,6 +1671,7 @@ vtn_handle_image(struct vtn_builder *b, SpvOp opcode,
case SpvOpAtomicIDecrement:
case SpvOpAtomicIAdd:
case SpvOpAtomicISub:
+ case SpvOpAtomicLoad:
case SpvOpAtomicSMin:
case SpvOpAtomicUMin:
case SpvOpAtomicSMax:
@@ -1681,17 +1682,9 @@ vtn_handle_image(struct vtn_builder *b, SpvOp opcode,
image = *vtn_value(b, w[3], vtn_value_type_image_pointer)->image;
break;
- case SpvOpAtomicLoad: {
- image.image =
- vtn_value(b, w[3], vtn_value_type_access_chain)->access_chain;
- break;
- }
-
- case SpvOpAtomicStore: {
- image.image =
- vtn_value(b, w[1], vtn_value_type_access_chain)->access_chain;
+ case SpvOpAtomicStore:
+ image = *vtn_value(b, w[1], vtn_value_type_image_pointer)->image;
break;
- }
case SpvOpImageQuerySize:
image.image =