Module: Mesa
Branch: master
Commit: 23bfba8663cadeb5167c0b30d9b64cf01a913911
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=23bfba8663cadeb5167c0b30d9b64cf01a913911

Author: Rhys Perry <pendingchao...@gmail.com>
Date:   Wed May  6 15:04:14 2020 +0100

spirv: implement MakePointerAvailable/MakePointerVisible for OpCopyMemory

Signed-off-by: Rhys Perry <pendingchao...@gmail.com>
Reviewed-by: Boris Brezillon <boris.brezil...@collabora.com>
Reviewed-by: Jason Ekstrand <ja...@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6090>

---

 src/compiler/spirv/vtn_variables.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/src/compiler/spirv/vtn_variables.c 
b/src/compiler/spirv/vtn_variables.c
index b3948351670..6de4ceffb82 100644
--- a/src/compiler/spirv/vtn_variables.c
+++ b/src/compiler/spirv/vtn_variables.c
@@ -2626,7 +2626,22 @@ vtn_handle_variables(struct vtn_builder *b, SpvOp opcode,
 
       vtn_assert_types_equal(b, opcode, dest->type->deref, src->type->deref);
 
+      unsigned idx = 3, dest_alignment, src_alignment;
+      SpvMemoryAccessMask dest_access, src_access;
+      SpvScope dest_scope, src_scope;
+      vtn_get_mem_operands(b, w, count, &idx, &dest_access, &dest_alignment,
+                           &dest_scope, &src_scope);
+      if (!vtn_get_mem_operands(b, w, count, &idx, &src_access, &src_alignment,
+                                NULL, &src_scope)) {
+         src_alignment = dest_alignment;
+         src_access = dest_access;
+      }
+
+      vtn_emit_make_visible_barrier(b, src_access, src_scope, 
src->pointer->mode);
+
       vtn_variable_copy(b, dest->pointer, src->pointer);
+
+      vtn_emit_make_available_barrier(b, dest_access, dest_scope, 
dest->pointer->mode);
       break;
    }
 

_______________________________________________
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to