llvmpipe: fix edge-rule logic for lines
authorErik Faye-Lund <erik.faye-lund@collabora.com>
Tue, 8 Jun 2021 11:20:59 +0000 (13:20 +0200)
committerErik Faye-Lund <erik.faye-lund@collabora.com>
Fri, 11 Jun 2021 07:57:56 +0000 (09:57 +0200)
commit2812f030f19fc2e0cdaa423b0cc2a04db984ac27
treec53c3014a3998f0adf6fbafb902a3d29e182ae4e
parentd0d1b66d8e46a62acb265b2f452444e7e291fc9d
llvmpipe: fix edge-rule logic for lines

In 2737abb44ef, the handling of pixel-offsets and edge rules were
untangled, but one case was missed.

This fixes the following dEQP test-cases on VirGL + LLVMpipe
- dEQP-GLES2.functional.draw.random.10
- dEQP-GLES2.functional.draw.random.42
- dEQP-GLES3.functional.draw.random.105
- dEQP-GLES3.functional.draw.random.114
- dEQP-GLES3.functional.draw.random.135
- dEQP-GLES3.functional.draw.random.144
- dEQP-GLES3.functional.draw.random.155
- dEQP-GLES3.functional.draw.random.174
- dEQP-GLES3.functional.draw.random.206
- dEQP-GLES3.functional.draw.random.31
- dEQP-GLES3.functional.draw.random.43
- dEQP-GLES3.functional.draw.random.84
- dEQP-GLES31.functional.draw_indirect.random.20

...as well as these on Zink + Lavapipe:
- spec@nv_primitive_restart@primitive-restart-disable_vbo
- spec@nv_primitive_restart@primitive-restart-vbo_combined_vertex_and_index
- spec@nv_primitive_restart@primitive-restart-vbo_index_only
- spec@nv_primitive_restart@primitive-restart-vbo_separate_vertex_and_index
- spec@nv_primitive_restart@primitive-restart-vbo_vertex_only

Fixes: 2737abb44ef ("gallium: Replace gl_rasterization_rules with lower_left_origin and half_pixel_center.")
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11183>
src/gallium/drivers/llvmpipe/lp_setup_line.c
src/gallium/drivers/virgl/ci/deqp-virgl-gl-fails.txt
src/gallium/drivers/virgl/ci/deqp-virgl-gles-fails.txt
src/gallium/drivers/zink/ci/deqp-zink-lvp-fails.txt
src/gallium/drivers/zink/ci/piglit-zink-lvp-fails.txt