Mesa (main): zink: flag renderpass change if renderpass clears change
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Wed Jul 20 17:47:06 UTC 2022
Module: Mesa
Branch: main
Commit: 5ae1c76baa02c17e509854b164491d24ae75bff1
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=5ae1c76baa02c17e509854b164491d24ae75bff1
Author: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Date: Thu Jul 14 18:16:36 2022 -0400
zink: flag renderpass change if renderpass clears change
Reviewed-by: Dave Airlie <airlied at redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17640>
---
src/gallium/drivers/zink/zink_clear.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/gallium/drivers/zink/zink_clear.c b/src/gallium/drivers/zink/zink_clear.c
index c3d355e1b97..668e53bb513 100644
--- a/src/gallium/drivers/zink/zink_clear.c
+++ b/src/gallium/drivers/zink/zink_clear.c
@@ -239,6 +239,8 @@ zink_clear(struct pipe_context *pctx,
return;
}
+ unsigned rp_clears_enabled = ctx->rp_clears_enabled;
+
if (ctx->void_clears & buffers) {
unsigned void_clears = ctx->void_clears & buffers;
ctx->void_clears &= ~buffers;
@@ -289,6 +291,7 @@ zink_clear(struct pipe_context *pctx,
else
ctx->rp_clears_enabled |= (buffers & PIPE_CLEAR_DEPTHSTENCIL);
}
+ ctx->rp_changed |= ctx->rp_clears_enabled != rp_clears_enabled;
}
static inline bool
@@ -593,6 +596,7 @@ fb_clears_apply_internal(struct zink_context *ctx, struct pipe_resource *pres, i
void
zink_fb_clear_reset(struct zink_context *ctx, unsigned i)
{
+ unsigned rp_clears_enabled = ctx->clears_enabled;
util_dynarray_clear(&ctx->fb_clears[i].clears);
if (i == PIPE_MAX_COLOR_BUFS) {
ctx->clears_enabled &= ~PIPE_CLEAR_DEPTHSTENCIL;
@@ -601,6 +605,8 @@ zink_fb_clear_reset(struct zink_context *ctx, unsigned i)
ctx->clears_enabled &= ~(PIPE_CLEAR_COLOR0 << i);
ctx->rp_clears_enabled &= ~(PIPE_CLEAR_COLOR0 << i);
}
+ if (ctx->rp_clears_enabled != rp_clears_enabled)
+ ctx->rp_changed = true;
}
void
More information about the mesa-commit
mailing list