http://bugs.winehq.org/show_bug.cgi?id=14762
Summary: Max Payne 2: sepia tone filter issues (high PPE) Product: Wine Version: 1.0.0 Platform: PC-x86-64 URL: http://www.rockstargames.com/maxpayne2/mp2_downloads.htm l OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: directx-d3d AssignedTo: wine-bugs@winehq.org ReportedBy: liquid.acid@gmx.net CC: onety-three@gmx.net
Hi,
this is a cleaned up version of the issues first described in http://bugs.winehq.org/show_bug.cgi?id=14038.
Game affected: Max Payne 2 (demo version tested)
Issue: MP2 uses some fullscreen post-processing effects to enhance gaming experience. The famous bullet time effect is using a sepia tone filter, which breaks on wine when certain ingame options are set.
MP2 offers two modes of post-processing effect quality (switching them completly off is also possible): (i) medium -> the sepia filter works (ii) high -> sepia filter breaks
Notice that MP2 also uses some other PP (post-processing) effects, like a motion blur filter in cutscenes. The filter from the cutscenes is NOT affected by this issue described here, although it also affects the entire screen.
The issue also appears with wine-0.9.56. Issue is gone when going back to wine-0.9.45, but the rendered area is now confined in a rectangular portion of the visible screen. (read more about this at the end (*))
Regression testing turned up this commit: [d09cbcec91561186bee77aaba55b29cbf2d7e7ef] wined3d: Activate GL_ARB_texture_rectangle.
http://source.winehq.org/git/wine.git/?a=shortlog;h=d09cbcec91561186bee77aab... Notice the other five wined3d commits by Stefan Dösinger.
Somehow using ARB_tex_rect instead of using NP2 emulation breaks the sepia filter, but leaves the motion blur intact. In fact this commit does also correct "scaling" issues with the other PP effect, motion blur (again see below (*)).
My wine settings for MP2: UseGLSL=disabled OffscreenRenderingMode=backbuffer RenderTargetLockMode=auto
It doesn't matter though is ORM is set to backbuffer or fbo, the issue also is reproducible with ORM=fbo. However testing this with ORM=backbuffer makes it easier for me because of other issues with FBO (plus FBO generates a lot of FIXME noise on the console).
Graphics hardware used to confirm: (i) Me, using a Geforce FX 5900 (ii) Frank Roscher, using a Geforce FX 5700
Drivers versions: (i) FX 5900 driven with 100.14.19 and 173.14.09 (makes no difference) (ii) FX 5700 driven by driver version 169.12
(*) Interesting facts with wine-0.9.45: Like I said above PPE set to high work with this version, but the rendered area is suffering from "scaling issues". This can be reproduced all the time with the bullettime filter.
However there are also the cutscenes, using the motion blur filter. The funny thing there is that they are also affected by the scaling issue, BUT not always. Watch the first cutscene sequence after you gain control over Max in the hospital room (the cutscene begins when you are right in front of the double door). The scaling issue changes during the cutscene to correct rendering, and back after some moments. I don't know if the changes from "wrong scaling" to "correct scaling" and vice-versa are always the same but I'm going to check that again.
Greets, Tobias