diff options
author | Lionel Landwerlin <lionel.g.landwerlin@intel.com> | 2016-09-19 17:14:18 +0100 |
---|---|---|
committer | Lionel Landwerlin <lionel.g.landwerlin@intel.com> | 2016-09-22 14:08:21 +0300 |
commit | 9adfa695ac144cfd7c9bb9d0c63d280861f3add4 (patch) | |
tree | 42eb7544868cb6c6b539be4d731e5a17f8bd7121 | |
parent | 36f0f0318275f65f8744ec6f9471702e2f58e6d5 (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.c | 13 |
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 = |