Mesa (main): zink: remove renderpass state flag for swapchain

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri May 20 16:58:32 UTC 2022


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

Author: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Date:   Tue May 10 12:20:33 2022 -0400

zink: remove renderpass state flag for swapchain

this is redundant and can be merged onto the rt attrib

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

---

 src/gallium/drivers/zink/zink_render_pass.c | 9 ++++-----
 src/gallium/drivers/zink/zink_render_pass.h | 3 +--
 2 files changed, 5 insertions(+), 7 deletions(-)

diff --git a/src/gallium/drivers/zink/zink_render_pass.c b/src/gallium/drivers/zink/zink_render_pass.c
index 16b07e261b4..b714010b1a3 100644
--- a/src/gallium/drivers/zink/zink_render_pass.c
+++ b/src/gallium/drivers/zink/zink_render_pass.c
@@ -59,8 +59,8 @@ create_render_pass2(struct zink_screen *screen, struct zink_render_pass_state *s
       pstate->attachments[i].samples = attachments[i].samples = rt->samples;
       attachments[i].loadOp = rt->clear_color ? VK_ATTACHMENT_LOAD_OP_CLEAR :
                                                 /* TODO: need replicate EXT */
-                                                //rt->resolve || (state->swapchain_init && rt->swapchain) ?
-                                                state->swapchain_init && rt->swapchain ?
+                                                //rt->resolve || rt->swapchain ?
+                                                rt->swapchain ?
                                                 VK_ATTACHMENT_LOAD_OP_DONT_CARE :
                                                 VK_ATTACHMENT_LOAD_OP_LOAD;
 
@@ -251,7 +251,7 @@ zink_render_pass_attachment_get_barrier_info(const struct zink_render_pass *rp,
    if (idx < rp->state.num_cbufs) {
       *pipeline = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT;
       *access |= VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT;
-      if (!rt->clear_color && (!rp->state.swapchain_init || !rt->swapchain))
+      if (!rt->clear_color && !rt->swapchain)
          *access |= VK_ACCESS_COLOR_ATTACHMENT_READ_BIT;
       return rt->fbfetch ? VK_IMAGE_LAYOUT_GENERAL : VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
    }
@@ -314,7 +314,6 @@ get_render_pass(struct zink_context *ctx)
    const struct pipe_framebuffer_state *fb = &ctx->fb_state;
    struct zink_render_pass_state state = {0};
    uint32_t clears = 0;
-   state.swapchain_init = ctx->new_swapchain;
    state.samples = fb->samples > 0;
 
    u_foreach_bit(i, ctx->fbfetch_outputs)
@@ -328,7 +327,7 @@ get_render_pass(struct zink_context *ctx)
          state.rts[i].samples = MAX3(transient ? transient->base.nr_samples : 0, surf->texture->nr_samples, 1);
          state.rts[i].clear_color = zink_fb_clear_enabled(ctx, i) && !zink_fb_clear_first_needs_explicit(&ctx->fb_clears[i]);
          clears |= !!state.rts[i].clear_color ? PIPE_CLEAR_COLOR0 << i : 0;
-         state.rts[i].swapchain = surf->texture->bind & PIPE_BIND_DISPLAY_TARGET;
+         state.rts[i].swapchain = ctx->new_swapchain && (surf->texture->bind & PIPE_BIND_DISPLAY_TARGET);
          if (transient) {
             state.num_cresolves++;
             state.rts[i].resolve = true;
diff --git a/src/gallium/drivers/zink/zink_render_pass.h b/src/gallium/drivers/zink/zink_render_pass.h
index a7579a776f5..65d48ad89ef 100644
--- a/src/gallium/drivers/zink/zink_render_pass.h
+++ b/src/gallium/drivers/zink/zink_render_pass.h
@@ -51,9 +51,8 @@ struct zink_render_pass_state {
    uint8_t num_cbufs : 5; /* PIPE_MAX_COLOR_BUFS = 8 */
    uint8_t have_zsbuf : 1;
    uint8_t samples:1; //for fs samplemask
-   uint8_t swapchain_init:1;
    uint32_t num_zsresolves : 1;
-   uint32_t num_cresolves : 23; /* PIPE_MAX_COLOR_BUFS, but this is a struct hole */
+   uint32_t num_cresolves : 24; /* PIPE_MAX_COLOR_BUFS, but this is a struct hole */
    struct zink_rt_attrib rts[PIPE_MAX_COLOR_BUFS + 1];
    unsigned num_rts;
    uint32_t clears; //for extra verification and update flagging



More information about the mesa-commit mailing list