etnaviv: Limit max line width to 1.0 on GPUs needing wide line emulation
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run

The HW line rasterizer on some Vivante GPUs doesn't produce
spec-conformant results for wide lines. Correct emulation via
triangle expansion is complex and interacts poorly with features
like primitive IDs, shader side effects (SSBOs, atomics), and
varying interpolation.

Rather than carrying fragile emulation, limit the advertised
max line width to 1.0 on affected GPUs. The GLES3 spec only
requires support for width 1.0, so this doesn't affect conformance.

Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
Reviewed-by: Daniel Lang <dalang@gmx.at>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40006>
This commit is contained in:
Christian Gmeiner 2026-02-20 11:02:00 +01:00 committed by Marge Bot
parent 28ae3c0bf0
commit 87fca4f51e
2 changed files with 2 additions and 1 deletions

View file

@ -1,5 +1,4 @@
dEQP-GLES2.functional.fbo.completeness.renderable.texture.color0.rgb_half_float_oes,Fail
dEQP-GLES2.functional.rasterization.primitives.lines_wide,Fail
dEQP-GLES2.functional.shaders.operator.selection.highp_float_fragment,Fail
dEQP-GLES2.functional.shaders.operator.selection.highp_int_fragment,Fail
dEQP-GLES2.functional.shaders.operator.selection.highp_ivec2_fragment,Fail

View file

@ -359,6 +359,8 @@ etna_init_screen_caps(struct etna_screen *screen)
caps->max_line_width =
caps->max_line_width_aa =
VIV_FEATURE(screen, ETNA_FEATURE_WIDELINE_TRIANGLE_EMU) ? 1.0f : 8192.0f;
caps->max_point_size =
caps->max_point_size_aa = 8192.0f;