gallium: cleanup util_blitter_clear_render_target
Signed-off-by: Italo Nicola <italonicola@collabora.com> Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Reviewed-by: Marek Olšák <marek.olsak@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23735>
This commit is contained in:
@@ -2388,6 +2388,7 @@ void util_blitter_clear_render_target(struct blitter_context *blitter,
|
|||||||
struct pipe_framebuffer_state fb_state;
|
struct pipe_framebuffer_state fb_state;
|
||||||
bool msaa;
|
bool msaa;
|
||||||
unsigned num_layers;
|
unsigned num_layers;
|
||||||
|
blitter_get_vs_func get_vs;
|
||||||
|
|
||||||
assert(dstsurf->texture);
|
assert(dstsurf->texture);
|
||||||
if (!dstsurf->texture)
|
if (!dstsurf->texture)
|
||||||
@@ -2419,24 +2420,24 @@ void util_blitter_clear_render_target(struct blitter_context *blitter,
|
|||||||
msaa = util_framebuffer_get_num_samples(&fb_state) > 1;
|
msaa = util_framebuffer_get_num_samples(&fb_state) > 1;
|
||||||
|
|
||||||
blitter_set_dst_dimensions(ctx, dstsurf->width, dstsurf->height);
|
blitter_set_dst_dimensions(ctx, dstsurf->width, dstsurf->height);
|
||||||
|
blitter_set_common_draw_rect_state(ctx, false, msaa);
|
||||||
|
|
||||||
union blitter_attrib attrib;
|
union blitter_attrib attrib;
|
||||||
memcpy(attrib.color, color->ui, sizeof(color->ui));
|
memcpy(attrib.color, color->ui, sizeof(color->ui));
|
||||||
|
|
||||||
num_layers = dstsurf->u.tex.last_layer - dstsurf->u.tex.first_layer + 1;
|
num_layers = dstsurf->u.tex.last_layer - dstsurf->u.tex.first_layer + 1;
|
||||||
|
|
||||||
if (num_layers > 1 && ctx->has_layered) {
|
if (num_layers > 1 && ctx->has_layered) {
|
||||||
blitter_set_common_draw_rect_state(ctx, false, msaa);
|
get_vs = get_vs_layered;
|
||||||
blitter->draw_rectangle(blitter, ctx->velem_state, get_vs_layered,
|
|
||||||
dstx, dsty, dstx+width, dsty+height, 0,
|
|
||||||
num_layers, UTIL_BLITTER_ATTRIB_COLOR, &attrib);
|
|
||||||
} else {
|
} else {
|
||||||
blitter_set_common_draw_rect_state(ctx, false, msaa);
|
get_vs = get_vs_passthrough_pos_generic;
|
||||||
blitter->draw_rectangle(blitter, ctx->velem_state,
|
num_layers = 1;
|
||||||
get_vs_passthrough_pos_generic,
|
|
||||||
dstx, dsty, dstx+width, dsty+height, 0,
|
|
||||||
1, UTIL_BLITTER_ATTRIB_COLOR, &attrib);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
blitter->draw_rectangle(blitter, ctx->velem_state, get_vs,
|
||||||
|
dstx, dsty, dstx+width, dsty+height, 0,
|
||||||
|
num_layers, UTIL_BLITTER_ATTRIB_COLOR, &attrib);
|
||||||
|
|
||||||
util_blitter_restore_vertex_states(blitter);
|
util_blitter_restore_vertex_states(blitter);
|
||||||
util_blitter_restore_fragment_states(blitter);
|
util_blitter_restore_fragment_states(blitter);
|
||||||
util_blitter_restore_fb_state(blitter);
|
util_blitter_restore_fb_state(blitter);
|
||||||
|
Reference in New Issue
Block a user