radv: Invalidate L2 for TRANSFER_WRITE barriers
authorAlex Smith <asmith@feralinteractive.com>
Tue, 21 Mar 2017 17:02:33 +0000 (17:02 +0000)
committerDave Airlie <airlied@redhat.com>
Wed, 22 Mar 2017 23:20:31 +0000 (09:20 +1000)
CP DMA and PKT3_WRITE_DATA (in CmdUpdateBuffer) don't (currently) write
through L2. Therefore, to make these writes visible to later accesses
we must invalidate L2 rather than just writing it back, to avoid the
possibility that stale data is read through L2.

Cc: "17.0" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Alex Smith <asmith@feralinteractive.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
src/amd/vulkan/radv_cmd_buffer.c

index ba192f3..d3397a0 100644 (file)
@@ -1477,7 +1477,7 @@ radv_src_access_flush(struct radv_cmd_buffer *cmd_buffer,
                                      RADV_CMD_FLAG_FLUSH_AND_INV_CB_META |
                                      RADV_CMD_FLAG_FLUSH_AND_INV_DB |
                                      RADV_CMD_FLAG_FLUSH_AND_INV_DB_META |
-                                     RADV_CMD_FLAG_WRITEBACK_GLOBAL_L2;
+                                     RADV_CMD_FLAG_INV_GLOBAL_L2;
                        break;
                default:
                        break;