From 465a48a048ca96bb1f828686149e00597107edfe Mon Sep 17 00:00:00 2001 From: Erik Faye-Lund Date: Tue, 17 Nov 2020 11:11:59 +0100 Subject: [PATCH] zink: always insert barriers for general-layout We need to always have barriers between individual uses of resources in the general-layout, because otherwise a write-cache might not be flushed before the resource is used. Reviewed-By: Mike Blumenkrantz Part-of: --- src/gallium/drivers/zink/zink_draw.c | 3 +-- src/gallium/drivers/zink/zink_resource.c | 5 ++--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/gallium/drivers/zink/zink_draw.c b/src/gallium/drivers/zink/zink_draw.c index d4153a44b1c..9ff6e6420a9 100644 --- a/src/gallium/drivers/zink/zink_draw.c +++ b/src/gallium/drivers/zink/zink_draw.c @@ -351,8 +351,7 @@ zink_draw_vbo(struct pipe_context *pctx, else { VkImageLayout layout = res->layout; if (layout != VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL && - layout != VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL && - layout != VK_IMAGE_LAYOUT_GENERAL) { + layout != VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL) { transitions[num_transitions++] = res; layout = VK_IMAGE_LAYOUT_GENERAL; } diff --git a/src/gallium/drivers/zink/zink_resource.c b/src/gallium/drivers/zink/zink_resource.c index b5bded805a4..8ab78fd4630 100644 --- a/src/gallium/drivers/zink/zink_resource.c +++ b/src/gallium/drivers/zink/zink_resource.c @@ -684,9 +684,8 @@ zink_resource_setup_transfer_layouts(struct zink_batch *batch, struct zink_resou * VK_IMAGE_LAYOUT_GENERAL. And since this isn't a present-related * operation, VK_IMAGE_LAYOUT_GENERAL seems most appropriate. */ - if (src->layout != VK_IMAGE_LAYOUT_GENERAL) - zink_resource_barrier(batch->cmdbuf, src, src->aspect, - VK_IMAGE_LAYOUT_GENERAL); + zink_resource_barrier(batch->cmdbuf, src, src->aspect, + VK_IMAGE_LAYOUT_GENERAL); } else { if (src->layout != VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL) zink_resource_barrier(batch->cmdbuf, src, src->aspect,