Mesa (master): zink: always insert barriers for general-layout

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Nov 17 15:13:13 UTC 2020


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

Author: Erik Faye-Lund <kusmabite at gmail.com>
Date:   Tue Nov 17 11:11:59 2020 +0100

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 <michael.blumenkrantz at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7652>

---

 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,



More information about the mesa-commit mailing list