svga: tweak pre-VGPU10 rasterization offsets
authorBrian Paul <brianp@vmware.com>
Fri, 18 Aug 2017 20:38:03 +0000 (14:38 -0600)
committerBrian Paul <brianp@vmware.com>
Tue, 3 Oct 2017 18:07:05 +0000 (12:07 -0600)
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 <jfonseca@vmware.com>
Reviewed-by: Charmaine Lee <charmainel@vmware.com>
src/gallium/drivers/svga/svga_state_framebuffer.c

index c52b7eeebf73b564b02ec13f823cbdc9d31cbe23..0aabde71e0e53e205dd5cb51a6bf0d584ff962a3 100644 (file)
@@ -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)