u_blitter: Add an option to draw the triangles using an index buffer

Graphics / Mesa 3D Graphics Library / Mesa - Eric Anholt [anholt.net] - 12 July 2018 18:49 EDT

For V3D, the HW will interpolate slightly differently along the shared edge of the trifan. The conformance tests manage to catch this in the nearest_consistency_* group. To get interpolation to match, we need the last vertex of the triangle to be shared.

I first tried implementing draw_rectangle to do triangles instead, but that was quite a bit (147 lines) of code duplication from u_blitter, and this seems much simpler and less likely to break as u_blitter changes.

Fixes dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_* on V3D.

e8dc3c0c36 u_blitter: Add an option to draw the triangles using an index buffer.
src/gallium/auxiliary/util/u_blitter.c | 16 ++++++++++++++--
src/gallium/auxiliary/util/u_blitter.h | 2 ++
src/gallium/drivers/v3d/v3d_context.c | 1 +
3 files changed, 17 insertions(+), 2 deletions(-)

Upstream: cgit.freedesktop.org


  • Share