llvmpipe: fix multisample lines again
authorErik Faye-Lund <erik.faye-lund@collabora.com>
Fri, 4 Jun 2021 11:42:25 +0000 (13:42 +0200)
committerErik Faye-Lund <erik.faye-lund@collabora.com>
Fri, 11 Jun 2021 07:57:58 +0000 (09:57 +0200)
commitcef08f0557b4ff515964a45b30fffd117c8bd9d1
tree6d84583046b2f7afa2cfe97bd7b460db15fc61eb
parent9fa53d1f5093af8ea7db5022cf8197282dc4f4d5
llvmpipe: fix multisample lines again

This does a little bit better than what we did in 2c0a078fdb4
("llvmpipe: fix multisample lines."), where parts of the diamond-exit
rule stuff was bypassed. But we should actually bypass *all* of the
diamond-exit rule stuff here instead.

The reason is that multisampled lines have a completely differently
specified set of rasterization rules, as per the OpenGL 4.6 core spec,
section 14.5.4 ("Line Multisample Rasterization").

So let's give multisampled lines their own geometry-generation codepath
instead.

This fixes the following dEQP tests:
- dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_4.primitives.lines
- dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_max.primitives.lines

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11183>
src/gallium/drivers/llvmpipe/ci/deqp-llvmpipe-fails.txt
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