[Bug 37313] New: Incorrect processing of post-transform vertex data

wine-bugs at winehq.org wine-bugs at winehq.org
Thu Sep 25 12:07:40 CDT 2014


https://bugs.winehq.org/show_bug.cgi?id=37313

            Bug ID: 37313
           Summary: Incorrect processing of post-transform vertex data
           Product: Wine
           Version: 1.7.27
          Hardware: x86
                OS: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: directx-d3d
          Assignee: wine-bugs at winehq.org
          Reporter: iamalannoble at hotmail.com

When using post-transformed vertex data (using D3DDECLUSAGE_POSITIONT or
D3DFVF_XYZRHW) and a pixel shader, WINE incorrectly applies transforms to the
non-position components of the vertex data. e.g. texgen and texture matrix is
incorrectly applied to texture coordinates.

The specification of post-transformed data is scattered across several pages,
but here's a quote:

D3DDECLUSAGE_POSITIONT
... When a declaration containing this is set, the pipeline does not perform
vertex processing.

D3DFVF_XYZRHW implies the same thing, as this is the output format of
IDirect3DDevice9::ProcessVertices.


At
http://source.winehq.org/git/wine.git/blob/7f29fc7e91aa7eb88cdb3220ebcbb7a4937301e9:/dlls/wined3d/glsl_shader.c#l4916
wined3d generates a vertex program to match the fragment program, but only the
position is handled differently when settings->transformed is true.

The specification for post-transformed data indicates that lighting is not
evaluated at all and texture coordinates are just copied. The
WINED3DTSS_TCI_PASSTHRU case is not sufficient, as that still applies the
texture matrix.

This function and any related functions should be updated to handle
settings->transformed correctly.

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list