Mesa (main): zink: reuse rt layout functions to refactor zink_render_pass_attachment_get_barrier_info()

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Jul 20 17:47:07 UTC 2022


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

Author: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Date:   Fri Jul 15 16:45:14 2022 -0400

zink: reuse rt layout functions to refactor zink_render_pass_attachment_get_barrier_info()

maybe slightly easier to read?

Reviewed-by: Dave Airlie <airlied at redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17640>

---

 src/gallium/drivers/zink/zink_render_pass.c | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/src/gallium/drivers/zink/zink_render_pass.c b/src/gallium/drivers/zink/zink_render_pass.c
index 51186788e17..4a6a248bdda 100644
--- a/src/gallium/drivers/zink/zink_render_pass.c
+++ b/src/gallium/drivers/zink/zink_render_pass.c
@@ -268,20 +268,19 @@ zink_render_pass_attachment_get_barrier_info(const struct zink_rt_attrib *rt, bo
       *access |= VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT;
       if (!rt->clear_color && !rt->invalid)
          *access |= VK_ACCESS_COLOR_ATTACHMENT_READ_BIT;
-      return rt->fbfetch ? VK_IMAGE_LAYOUT_GENERAL : VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
+      return get_color_rt_layout(rt);
    }
 
    *pipeline = VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT | VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT;
    if (rt->mixed_zs) {
       *access |= VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT | VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT;
-      return VK_IMAGE_LAYOUT_GENERAL;
+   } else {
+      if (!rt->clear_color && !rt->clear_stencil)
+         *access |= VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT;
+      if (rt->clear_color || rt->clear_stencil || rt->needs_write)
+         *access |= VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT;
    }
-   if (!rt->clear_color && !rt->clear_stencil)
-      *access |= VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT;
-   if (!rt->clear_color && !rt->clear_stencil && !rt->needs_write)
-      return VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL;
-   *access |= VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT;
-   return VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL;
+   return get_zs_rt_layout(rt);
 }
 
 



More information about the mesa-commit mailing list