panfrost: implement clear_render_target

Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Co-authored-by: Aleksey Komarov <q4arus@ya.ru>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Tested-by: Aleksey Komarov <q4arus@ya.ru>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20238>
This commit is contained in:
David Heidelberg
2022-12-09 12:06:52 +01:00
committed by Marge Bot
parent 8560c7613d
commit be841f0e78

View File

@@ -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;
}