Mesa (main): zink: use mixed zs renderpass for depth read/write

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Apr 18 22:19:31 UTC 2022


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

Author: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Date:   Thu Apr 14 09:02:28 2022 -0400

zink: use mixed zs renderpass for depth read/write

this is triggered by u_blitter when doing src==dst blits

Fixes: 7781a75229d ("zink: add a renderpass flag for mixed zs layout")

affects:
GTF-GL46.gtf30.GL3Tests.framebuffer_blit.framebuffer_blit_functionality*

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

---

 src/gallium/drivers/zink/zink_context.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/gallium/drivers/zink/zink_context.c b/src/gallium/drivers/zink/zink_context.c
index bd0f02677f5..79d2ded9645 100644
--- a/src/gallium/drivers/zink/zink_context.c
+++ b/src/gallium/drivers/zink/zink_context.c
@@ -2075,7 +2075,11 @@ get_render_pass(struct zink_context *ctx)
 
       bool needs_write_s = state.rts[fb->nr_cbufs].clear_stencil || outputs_written & BITFIELD64_BIT(FRAG_RESULT_STENCIL);
       if (!needs_write_z && (!ctx->dsa_state || !ctx->dsa_state->base.depth_enabled))
+         /* depth sample, stencil write */
          state.rts[fb->nr_cbufs].mixed_zs = needs_write_s && zsbuf->bind_count[0];
+      else
+         /* depth write + sample */
+         state.rts[fb->nr_cbufs].mixed_zs = needs_write_z && zsbuf->bind_count[0];
       state.rts[fb->nr_cbufs].needs_write = needs_write_z | needs_write_s;
       state.num_rts++;
    }



More information about the mesa-commit mailing list