Mesa (main): zink: remove u_blitter usage from zink_clear_render_target
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Mon Jul 18 03:57:15 UTC 2022
Module: Mesa
Branch: main
Commit: 442281447af39e8f1a0d5a3edeca9fc1b5fb41b3
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=442281447af39e8f1a0d5a3edeca9fc1b5fb41b3
Author: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Date: Wed Jul 6 08:43:56 2022 -0400
zink: remove u_blitter usage from zink_clear_render_target
this is more operations than needed
Acked-by: Dave Airlie <airlied at redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17366>
---
src/gallium/drivers/zink/zink_clear.c | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/src/gallium/drivers/zink/zink_clear.c b/src/gallium/drivers/zink/zink_clear.c
index aa9fa3a510d..9f38e728238 100644
--- a/src/gallium/drivers/zink/zink_clear.c
+++ b/src/gallium/drivers/zink/zink_clear.c
@@ -505,10 +505,19 @@ zink_clear_render_target(struct pipe_context *pctx, struct pipe_surface *dst,
bool render_condition_enabled)
{
struct zink_context *ctx = zink_context(pctx);
- zink_blit_begin(ctx, ZINK_BLIT_SAVE_FB | ZINK_BLIT_SAVE_FS | (render_condition_enabled ? 0 : ZINK_BLIT_NO_COND_RENDER));
- util_blitter_clear_render_target(ctx->blitter, dst, color, dstx, dsty, width, height);
- if (!render_condition_enabled && ctx->render_condition_active)
+ bool render_condition_active = ctx->render_condition_active;
+ if (!render_condition_enabled && render_condition_active) {
+ zink_stop_conditional_render(ctx);
+ ctx->render_condition_active = false;
+ }
+ util_blitter_save_framebuffer(ctx->blitter, &ctx->fb_state);
+ set_clear_fb(pctx, dst, NULL);
+ struct pipe_scissor_state scissor = {dstx, dsty, dstx + width, dsty + height};
+ pctx->clear(pctx, PIPE_CLEAR_COLOR0, &scissor, color, 0, 0);
+ util_blitter_restore_fb_state(ctx->blitter);
+ if (!render_condition_enabled && render_condition_active)
zink_start_conditional_render(ctx);
+ ctx->render_condition_active = render_condition_active;
}
void
More information about the mesa-commit
mailing list