[Bug 22317] Motocross madness demo has wrongly projected smoke

wine-bugs at winehq.org wine-bugs at winehq.org
Wed Apr 13 06:37:56 CDT 2016


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

Paul Gofman <gofmanp at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |gofmanp at gmail.com

--- Comment #10 from Paul Gofman <gofmanp at gmail.com> ---
Created attachment 54217
  --> https://bugs.winehq.org/attachment.cgi?id=54217
Quick fix for d3d_viewport_TransformVertices

I've tracked down the issue and attaching the patch as a proof of concept.

To run the game somehow and to come to the problem in the bug title I had to
use native d3drm (I did not look what's wrong with the builtin one).

The game is using d3d2 interface.
The problem is in ddraw's d3d_viewport_TransformVertices function, actually two
of them:
1. It does not get a projection matrix set by application
2. It uses wrong scale derived from viewport for transformation.

The patch lets game to render "smoke" normally. It is not correct solution yet
(apparently the current implementation is OK for some other use cases which
will be broken by this patch), it breaks D3D1 unit tests, and apart from that
needs unit tests to explore this functionality. I could guess that the
behaviour difference can be attributed to d3d2 and changed from d3d1 (for which
a unit test exists), but this should be tested to make a proper fix.

PS I think it is not smoke but rather dirt from the ground.

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