From 5e61368d3b02ef5ae96ce9979470237c9fc46aa4 Mon Sep 17 00:00:00 2001 From: Christian Gmeiner Date: Wed, 18 Feb 2026 00:46:28 +0100 Subject: [PATCH] etnaviv: Enable single-triangle blitter mode Vivante hardware exhibits floating-point interpolation inconsistencies at the diagonal seam when the blitter uses a two-triangle quad for scaled NEAREST blits. Enable the single-triangle blitter mode to match the proprietary driver's approach of using one oversized triangle clipped by scissor. Fixes dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_mag_* Fixes dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_min_* Signed-off-by: Christian Gmeiner Part-of: --- src/gallium/drivers/etnaviv/etnaviv_context.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/gallium/drivers/etnaviv/etnaviv_context.c b/src/gallium/drivers/etnaviv/etnaviv_context.c index 9b819ee08f5..c24ededbdc9 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_context.c +++ b/src/gallium/drivers/etnaviv/etnaviv_context.c @@ -753,6 +753,8 @@ etna_context_create(struct pipe_screen *pscreen, void *priv, unsigned flags) ctx->blitter = util_blitter_create(pctx); if (!ctx->blitter) goto fail; + + ctx->blitter->use_single_triangle = true; } slab_create_child(&ctx->transfer_pool, &screen->transfer_pool);