From ea9a31cc8ceb021b2350ce09a3a817ec0a2c3b19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Wed, 25 Mar 2026 14:26:38 -0400 Subject: [PATCH] gallium/u_blitter: allow using the single triangle for scaled blits too This should be faster because 2 triangles are inefficient on the diagonal, generating helper invocations and potentially extra memory loads from dst because tiles aren't fully covered. Reviewed-by: Pierre-Eric Part-of: --- src/gallium/auxiliary/util/u_blitter.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/gallium/auxiliary/util/u_blitter.c b/src/gallium/auxiliary/util/u_blitter.c index af77d1873a9..0c6c01cb96c 100644 --- a/src/gallium/auxiliary/util/u_blitter.c +++ b/src/gallium/auxiliary/util/u_blitter.c @@ -2246,8 +2246,7 @@ void util_blitter_blit_generic(struct blitter_context *blitter, * oversized triangle to the destination rect. */ struct pipe_scissor_state synth_scissor; - if (ctx->base.use_single_triangle && !scissor && - filter == PIPE_TEX_FILTER_NEAREST) { + if (ctx->base.use_single_triangle && !scissor) { synth_scissor.minx = MAX2(dstbox->x, 0); synth_scissor.miny = MAX2(dstbox->y, 0); synth_scissor.maxx = dstbox->x + dstbox->width; @@ -2261,8 +2260,7 @@ void util_blitter_blit_generic(struct blitter_context *blitter, blitter_set_common_draw_rect_state(ctx, scissor != NULL, dst_samples > 1); - ctx->single_triangle_active = ctx->base.use_single_triangle && - (filter == PIPE_TEX_FILTER_NEAREST); + ctx->single_triangle_active = ctx->base.use_single_triangle; do_blits(ctx, dst, dstbox, src, src_width0, src_height0, srcbox, dst_has_depth || dst_has_stencil, use_txf, sample0_only, dst_sample);