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(-)