summaryrefslogtreecommitdiffstats
path: root/src/gallium
diff options
context:
space:
mode:
authorBrian Paul <[email protected]>2017-08-18 14:38:03 -0600
committerBrian Paul <[email protected]>2017-10-03 12:07:05 -0600
commit362fb05b65ce7db69af6ae896caa2f0f6afd5fb2 (patch)
treefca17f0da306179e863694464f717ad24a0200ce /src/gallium
parent3e39abf6a033cccbf2bbf85bf23785b7367cdcef (diff)
svga: tweak pre-VGPU10 rasterization offsets
It seems there's no perfect x/y biases for line drawing to satisfy all applications. Depending on the biases, either real apps produce results similar to VGPU10 while Piglit's gl-1.0-ortho-pos fails, or vice versa. Let's lean toward real applications (Solidworks, SolidEdge, Google Earth) over Piglit. Using (-0.5, -0.5) for points, lines and triangles, seems to generally work well. We don't seem to have these issues with VGPU10. Tested with Piglit and CAD-oriented apitraces. See VMware bugs 1775498 and 1905053. Reviewed-by: José Fonseca <[email protected]> Reviewed-by: Charmaine Lee <[email protected]>
Diffstat (limited to 'src/gallium')
-rw-r--r--src/gallium/drivers/svga/svga_state_framebuffer.c24
1 files changed, 7 insertions, 17 deletions
diff --git a/src/gallium/drivers/svga/svga_state_framebuffer.c b/src/gallium/drivers/svga/svga_state_framebuffer.c
index c52b7eeebf7..0aabde71e0e 100644
--- a/src/gallium/drivers/svga/svga_state_framebuffer.c
+++ b/src/gallium/drivers/svga/svga_state_framebuffer.c
@@ -554,23 +554,13 @@ emit_viewport( struct svga_context *svga,
}
}
else {
- switch (svga->curr.reduced_prim) {
- case PIPE_PRIM_POINTS:
- adjust_x = -0.375;
- adjust_y = -0.75;
- break;
- case PIPE_PRIM_LINES:
- adjust_x = -0.5;
- adjust_y = -0.125;
- break;
- case PIPE_PRIM_TRIANGLES:
- adjust_x = -0.5;
- adjust_y = -0.5;
- break;
- default:
- /* nothing */
- break;
- }
+ /* Use (-0.5, -0.5) bias for all prim types.
+ * Regarding line rasterization, this does not seem to satisfy
+ * the Piglit gl-1.0-ortho-pos test but it generally produces
+ * results identical or very similar to VGPU10.
+ */
+ adjust_x = -0.5;
+ adjust_y = -0.5;
}
if (invertY)