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