From: David Heidelberg Date: Fri, 9 Dec 2022 11:06:52 +0000 (+0100) Subject: panfrost: implement clear_render_target X-Git-Tag: upstream/23.3.3~15717 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=be841f0e7898d85c6f98aa212d5bf03509ed117d;p=platform%2Fupstream%2Fmesa.git panfrost: implement clear_render_target Signed-off-by: David Heidelberg Co-authored-by: Aleksey Komarov Reviewed-by: Alyssa Rosenzweig Tested-by: Aleksey Komarov Part-of: --- diff --git a/src/gallium/drivers/panfrost/pan_resource.c b/src/gallium/drivers/panfrost/pan_resource.c index 9e95b793391..d268b838b22 100644 --- a/src/gallium/drivers/panfrost/pan_resource.c +++ b/src/gallium/drivers/panfrost/pan_resource.c @@ -51,6 +51,25 @@ #include "pan_tiling.h" #include "decode.h" +static void +panfrost_clear_render_target(struct pipe_context *pipe, + struct pipe_surface *dst, + const union pipe_color_union *color, + unsigned dstx, unsigned dsty, + unsigned width, unsigned height, + bool render_condition_enabled) +{ + struct panfrost_context *ctx = pan_context(pipe); + + if (render_condition_enabled && + !panfrost_render_condition_check(ctx)) + return; + + panfrost_blitter_save(ctx, render_condition_enabled); + util_blitter_clear_render_target(ctx->blitter, dst, color, + dstx, dsty, width, height); +} + static struct pipe_resource * panfrost_resource_from_handle(struct pipe_screen *pscreen, const struct pipe_resource *templat, @@ -1495,4 +1514,5 @@ panfrost_resource_context_init(struct pipe_context *pctx) pctx->buffer_subdata = u_default_buffer_subdata; pctx->texture_subdata = u_default_texture_subdata; pctx->clear_buffer = u_default_clear_buffer; + pctx->clear_render_target = panfrost_clear_render_target; }