Module: Mesa
Branch: main
Commit: 25ab2347f8f70b582e9a24a9981f04aff54e131c
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=25ab2347f8f70b582e9a24a9981f04aff54e131c

Author: Mike Blumenkrantz <michael.blumenkra...@gmail.com>
Date:   Thu Apr  8 12:38:06 2021 -0400

zink: fix texture barriers for real this time

according to spec, this is supposed to handle fragment shader fetch
from previous draw output, not color output readback from previous
color output write

Reviewed-by: Dave Airlie <airl...@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10706>

---

 src/gallium/drivers/zink/zink_context.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/gallium/drivers/zink/zink_context.c 
b/src/gallium/drivers/zink/zink_context.c
index 899761814c0..5b4b7dadbb9 100644
--- a/src/gallium/drivers/zink/zink_context.c
+++ b/src/gallium/drivers/zink/zink_context.c
@@ -1947,11 +1947,11 @@ zink_texture_barrier(struct pipe_context *pctx, 
unsigned flags)
       dmb.sType = VK_STRUCTURE_TYPE_MEMORY_BARRIER;
       dmb.pNext = NULL;
       dmb.srcAccessMask = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT;
-      dmb.dstAccessMask = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT;
+      dmb.dstAccessMask = VK_ACCESS_SHADER_READ_BIT;
       vkCmdPipelineBarrier(
          ctx->batch.state->cmdbuf,
          VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT | 
VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,
-         VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT | 
VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,
+         VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,
          0,
          1, &dmb,
          0, NULL,
@@ -1959,17 +1959,17 @@ zink_texture_barrier(struct pipe_context *pctx, 
unsigned flags)
       );
    } else {
       bmb.srcAccessMask |= VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT;
-      bmb.dstAccessMask |= VK_ACCESS_COLOR_ATTACHMENT_READ_BIT;
+      bmb.dstAccessMask |= VK_ACCESS_SHADER_READ_BIT;
    }
    if (ctx->framebuffer->state.num_attachments > 1) {
       bmb.srcAccessMask |= VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT;
-      bmb.dstAccessMask |= VK_ACCESS_COLOR_ATTACHMENT_READ_BIT;
+      bmb.dstAccessMask |= VK_ACCESS_SHADER_READ_BIT;
    }
    if (bmb.srcAccessMask)
       vkCmdPipelineBarrier(
          ctx->batch.state->cmdbuf,
          VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
-         VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
+         VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,
          0,
          1, &bmb,
          0, NULL,

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

Reply via email to