From 25ab2347f8f70b582e9a24a9981f04aff54e131c Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Thu, 8 Apr 2021 12:38:06 -0400 Subject: [PATCH] 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 Part-of: --- 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,