llvmpipe: just use draw_regions in draw/line setup.
This fixes:
dEQP-VK.draw.scissor*
Cc: 20.3 <mesa-stable>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7499>
(cherry picked from commit d186766c08867d5447e32c427ff092612bd4ba92)
diff --git a/.pick_status.json b/.pick_status.json
index c087cb2..6c15952 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -949,7 +949,7 @@
"description": "llvmpipe: just use draw_regions in draw/line setup.",
"nominated": true,
"nomination_type": 0,
- "resolution": 0,
+ "resolution": 1,
"master_sha": null,
"because_sha": null
},
diff --git a/src/gallium/drivers/llvmpipe/lp_setup_line.c b/src/gallium/drivers/llvmpipe/lp_setup_line.c
index cc44b20..d552e95 100644
--- a/src/gallium/drivers/llvmpipe/lp_setup_line.c
+++ b/src/gallium/drivers/llvmpipe/lp_setup_line.c
@@ -597,16 +597,9 @@
* Determine how many scissor planes we need, that is drop scissor
* edges if the bounding box of the tri is fully inside that edge.
*/
- if (setup->scissor_test) {
- /* why not just use draw_regions */
- scissor = &setup->scissors[viewport_index];
- scissor_planes_needed(s_planes, &bboxpos, scissor);
- nr_planes += s_planes[0] + s_planes[1] + s_planes[2] + s_planes[3];
- } else {
- scissor = &setup->draw_regions[viewport_index];
- scissor_planes_needed(s_planes, &bboxpos, scissor);
- nr_planes += s_planes[0] + s_planes[1] + s_planes[2] + s_planes[3];
- }
+ scissor = &setup->draw_regions[viewport_index];
+ scissor_planes_needed(s_planes, &bboxpos, scissor);
+ nr_planes += s_planes[0] + s_planes[1] + s_planes[2] + s_planes[3];
line = lp_setup_alloc_triangle(scene,
key->num_inputs,
diff --git a/src/gallium/drivers/llvmpipe/lp_setup_tri.c b/src/gallium/drivers/llvmpipe/lp_setup_tri.c
index 90a4ee3..68fece5 100644
--- a/src/gallium/drivers/llvmpipe/lp_setup_tri.c
+++ b/src/gallium/drivers/llvmpipe/lp_setup_tri.c
@@ -359,16 +359,9 @@
* Determine how many scissor planes we need, that is drop scissor
* edges if the bounding box of the tri is fully inside that edge.
*/
- if (setup->scissor_test) {
- /* why not just use draw_regions */
- scissor = &setup->scissors[viewport_index];
- scissor_planes_needed(s_planes, &bboxpos, scissor);
- nr_planes += s_planes[0] + s_planes[1] + s_planes[2] + s_planes[3];
- } else {
- scissor = &setup->draw_regions[viewport_index];
- scissor_planes_needed(s_planes, &bboxpos, scissor);
- nr_planes += s_planes[0] + s_planes[1] + s_planes[2] + s_planes[3];
- }
+ scissor = &setup->draw_regions[viewport_index];
+ scissor_planes_needed(s_planes, &bboxpos, scissor);
+ nr_planes += s_planes[0] + s_planes[1] + s_planes[2] + s_planes[3];
tri = lp_setup_alloc_triangle(scene,
key->num_inputs,