Module: Mesa Branch: main Commit: 13951385b3d45987da0c3c0060aae2e1b483926a URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=13951385b3d45987da0c3c0060aae2e1b483926a
Author: Mike Blumenkrantz <[email protected]> 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 <[email protected]> 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); }
