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 <jfonseca@vmware.com>
Reviewed-by: Charmaine Lee <charmainel@vmware.com>
This commit is contained in:
Brian Paul 2017-08-18 14:38:03 -06:00
parent 3e39abf6a0
commit 362fb05b65

View 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)