[PATCH 1/3] wined3d: Don't shift geometry for d3d10/11.

Henri Verbeet hverbeet at gmail.com
Fri Aug 6 09:01:48 CDT 2021

On Thu, 5 Aug 2021 at 19:57, Stefan Dösinger <stefan at codeweavers.com> wrote:
> This fixes stay lines in World of Tanks' GameFace UI parts. The Metal backend
> doesn't have an offset like this either.
There is no Metal backend in upstream Wine ;)

> Other than fixing the todo_wine in test_fractional_viewport, this also fixes a
> failure in d3d11's test_depth_bias that happens when viewport_array is not
> supported.
> I am not entirely sure what the -1 / 64 in get_projection_matrix was meant
> for. AFAIU get_projection_matrix isn't called for d3d10+, so the path will
> be entered for d3d9 when we have ARB_CLIP_CONTROL. In this case we don't
> need to account for the half pixel offset (hence not setting it to 63/64),
> and I also don't see a reason to nudge for filling rules in the proj matrix
> and not by adjusting the values in viewport_miscpart_cc.

This may have been a mistake in commit
a5d2b3622b7b4f731075d9cd62c76c64c468666b; originally this only checked

It seems a little awkward to tie this to WINED3D_PIXEL_CENTER_INTEGER.
Would it make sense to instead detect the filling convention during
adapter initialisation, so that we can get rid of this for d3d9 and
before as well if possible? We could then just store the filling
convention offset in the wined3d_d3d_info structure.

More information about the wine-devel mailing list