[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