Mesa (master): llvmpipe/setup: add planes for draw regions if no scissor.
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Mon Jun 15 20:36:23 UTC 2020
Module: Mesa
Branch: master
Commit: 84779e5822d8b63038f65640ca32ad0dce3161b7
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=84779e5822d8b63038f65640ca32ad0dce3161b7
Author: Dave Airlie <airlied at redhat.com>
Date: Tue Jun 9 10:41:58 2020 +1000
llvmpipe/setup: add planes for draw regions if no scissor.
Some tests were using a 1x1 fb bound, with a 2x2 viewport,
and all 4 pixels were getting rendered. Test if the fb bounds
need planes added or not.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3101
v2: add lines support
Reviewed-by: Roland Scheidegger <sroland at vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5394>
---
.gitlab-ci/deqp-virgl-fails.txt | 4 ----
src/gallium/drivers/llvmpipe/lp_setup_line.c | 4 ++++
src/gallium/drivers/llvmpipe/lp_setup_tri.c | 4 ++++
3 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/.gitlab-ci/deqp-virgl-fails.txt b/.gitlab-ci/deqp-virgl-fails.txt
index 94d2cf4d4b1..f8663945a20 100644
--- a/.gitlab-ci/deqp-virgl-fails.txt
+++ b/.gitlab-ci/deqp-virgl-fails.txt
@@ -50,10 +50,6 @@ dEQP-GLES3.functional.rasterization.fbo.texture_2d.interpolation.lines_wide
dEQP-GLES3.functional.rasterization.interpolation.basic.line_loop_wide
dEQP-GLES3.functional.rasterization.interpolation.projected.line_loop_wide
dEQP-GLES3.functional.vertex_arrays.single_attribute.normalize.int2_10_10_10.components4_quads1
-dEQP-GLES31.functional.fbo.no_attachments.interaction.127x127ms0_default_129x129ms0
-dEQP-GLES31.functional.fbo.no_attachments.npot_size.15x511
-dEQP-GLES31.functional.fbo.no_attachments.npot_size.65x65
-dEQP-GLES31.functional.fbo.no_attachments.random.0
dEQP-GLES31.functional.shaders.builtin_constants.tessellation_shader.max_tess_control_total_output_components
dEQP-GLES31.functional.shaders.builtin_constants.tessellation_shader.max_tess_evaluation_uniform_components
dEQP-GLES31.functional.shaders.builtin_functions.common.abs.int_highp_tess_eval
diff --git a/src/gallium/drivers/llvmpipe/lp_setup_line.c b/src/gallium/drivers/llvmpipe/lp_setup_line.c
index 1357d026dfe..cc44b20c86c 100644
--- a/src/gallium/drivers/llvmpipe/lp_setup_line.c
+++ b/src/gallium/drivers/llvmpipe/lp_setup_line.c
@@ -602,6 +602,10 @@ try_setup_line( struct lp_setup_context *setup,
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];
}
line = lp_setup_alloc_triangle(scene,
diff --git a/src/gallium/drivers/llvmpipe/lp_setup_tri.c b/src/gallium/drivers/llvmpipe/lp_setup_tri.c
index cc44f847d53..90a4ee3b364 100644
--- a/src/gallium/drivers/llvmpipe/lp_setup_tri.c
+++ b/src/gallium/drivers/llvmpipe/lp_setup_tri.c
@@ -364,6 +364,10 @@ do_triangle_ccw(struct lp_setup_context *setup,
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];
}
tri = lp_setup_alloc_triangle(scene,
More information about the mesa-commit
mailing list