From 362fb05b65ce7db69af6ae896caa2f0f6afd5fb2 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Fri, 18 Aug 2017 14:38:03 -0600 Subject: [PATCH] svga: tweak pre-VGPU10 rasterization offsets MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 Reviewed-by: Charmaine Lee --- src/gallium/drivers/svga/svga_state_framebuffer.c | 24 +++++++---------------- 1 file 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 c52b7ee..0aabde7 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) -- 2.7.4