https://bugs.winehq.org/show_bug.cgi?id=46579
Bug ID: 46579 Summary: [Regression] F.E.A.R. 2: Project Origin screen is completely light grey while playing intro movie Product: Wine Version: 3.1 Hardware: x86-64 URL: https://www.gamewatcher.com/downloads/f-e-a-r-2-projec t-origin-download/f-e-a-r-2-project-origin-demo OS: Linux Status: NEW Keywords: download, regression Severity: normal Priority: P2 Component: directx-d3d Assignee: wine-bugs@winehq.org Reporter: andrey.goosev@gmail.com CC: matteo.mystral@gmail.com Regression SHA1: 3d6eb8cf1dc1e509a74f85fd2356c6946372ecc5 Distribution: ---
Reverting 3d6eb8cf1dc1e509a74f85fd2356c6946372ecc5 helps.
https://bugs.winehq.org/show_bug.cgi?id=46579
Anthony Jagers noonetinone@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |noonetinone@gmail.com
https://bugs.winehq.org/show_bug.cgi?id=46579
--- Comment #1 from Anthony Jagers noonetinone@gmail.com --- I'm not git expert. How did you revert?
https://bugs.winehq.org/show_bug.cgi?id=46579
--- Comment #2 from Matteo Bruni matteo.mystral@gmail.com --- I debugged this one, essentially it's a case of a buggy game that previously worked on Wine because of two Wine bugs cancelling each other out.
Since 3d6eb8cf1dc1e509a74f85fd2356c6946372ecc5 Wine started to reject the game's attempt at creating some D3DUSAGE_AUTOGENMIPMAP D3DPOOL_SYSTEMMEM textures. The game gets confused by that and later on it "forgets" to create some D3DUSAGE_AUTOGENMIPMAP D3DPOOL_DEFAULT textures that are used in the intro.
It turns out that Wine's behavior is correct, as the tests we already have show, but also that on Windows the game doesn't attempt to create those D3DPOOL_SYSTEMMEM textures at all. Before creating those SYSTEMMEM textures, the game calls CheckDeviceFormat() with a D3DFMT_A8R8G8B8 adapter format, which is never supported on Windows but currently allowed by Wine. If I patch Wine to return the expected failure result, the game starts to take the same code path as on Windows and the intro shows correctly.
https://bugs.winehq.org/show_bug.cgi?id=46579
--- Comment #3 from Anthony Jagers noonetinone@gmail.com --- It's a little too late for 4.3. Do you have a patch?
https://bugs.winehq.org/show_bug.cgi?id=46579
Paul Gofman gofmanp@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |gofmanp@gmail.com
--- Comment #4 from Paul Gofman gofmanp@gmail.com --- (In reply to Matteo Bruni from comment #2)
Before creating those SYSTEMMEM textures, the game calls CheckDeviceFormat() with a D3DFMT_A8R8G8B8 adapter format, which is never supported on Windows but currently allowed by Wine. If I patch Wine to return the expected failure result, the game starts to take the same code path as on Windows and the intro shows correctly.
Do you mean D3DFMT_A8B8G8R8 (0x20, dec 32) by any chance?
If yes, then it does it again. It was here the same principle way: https://bugs.winehq.org/show_bug.cgi?id=32092#c68. That time it was fixed in the game.
https://bugs.winehq.org/show_bug.cgi?id=46579
Józef Kucia joseph.kucia@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |joseph.kucia@gmail.com
--- Comment #5 from Józef Kucia joseph.kucia@gmail.com --- We could possibly filter supported formats based on the device feature level (wined3d_device->feature_level).
https://bugs.winehq.org/show_bug.cgi?id=46579
--- Comment #6 from Matteo Bruni matteo.mystral@gmail.com --- (In reply to Paul Gofman from comment #4)
Do you mean D3DFMT_A8B8G8R8 (0x20, dec 32) by any chance?
No, I mean D3DFMT_A8R8G8B8. The important point is that it's the ADAPTER format here that's "wrong" (i.e. third parameter of CheckDeviceFormat(), not the last one), only a few adapter formats are supported by d3d9.
(In reply to Józef Kucia from comment #5)
We could possibly filter supported formats based on the device feature level (wined3d_device->feature_level).
I think it's not necessary here, simply fixing CheckDeviceFormat() in d3d9 is okay for this bug. The only adapter formats (potentially) supported are D3DFMT_X8R8G8B8, D3DFMT_R5G6B5, D3DFMT_X1R5G5B5 and D3DFMT_A2R10G10B10, we already have some tests for that.
https://bugs.winehq.org/show_bug.cgi?id=46579
Matteo Bruni matteo.mystral@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|[Regression] F.E.A.R. 2: |F.E.A.R. 2: Project Origin |Project Origin screen is |screen is completely light |completely light grey while |grey while playing intro |playing intro movie |movie Resolution|--- |FIXED Fixed by SHA1| |bd7a48c25114983f53c2c052994 | |44e982f5a5490 Status|NEW |RESOLVED
--- Comment #7 from Matteo Bruni matteo.mystral@gmail.com --- This is fixed for me with https://source.winehq.org/git/wine.git/commitdiff/bd7a48c25114983f53c2c05299...
https://bugs.winehq.org/show_bug.cgi?id=46579
--- Comment #8 from Anthony Jagers noonetinone@gmail.com --- Created attachment 63847 --> https://bugs.winehq.org/attachment.cgi?id=63847 A backtrace with commit bd7a48
I've tested Bruni's commit. The screen didn't go grey, neither did the in-game computer monitors. To be sure I also tested this in Windows. I didn't see any difference.
It did however freeze up. This is the backtrace provided.
https://bugs.winehq.org/show_bug.cgi?id=46579
atbjyk akihiroyamaguchi1208@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |akihiroyamaguchi1208@gmail. | |com
--- Comment #9 from atbjyk akihiroyamaguchi1208@gmail.com --- league of legends currently only works with staging due to other bugs, but this commit has made it not work with staging too.
wine staging 6d35c10 06fbe73 ==> worked 6d35c10 (non staging) ==> not worked bd7a48c 3a1bf0a ==> not worked c79fbdd 3a1bf0a ==> worked
I'm sorry I'm confusing. I will check it a bit more.
https://bugs.winehq.org/show_bug.cgi?id=46579
--- Comment #10 from atbjyk akihiroyamaguchi1208@gmail.com --- git revert bd7a48c25114983f53c2c05299444e982f5a5490 and latest wine staging git league of legends is workded.
https://bugs.winehq.org/show_bug.cgi?id=46579
--- Comment #11 from atbjyk akihiroyamaguchi1208@gmail.com --- https://bugs.winehq.org/show_bug.cgi?id=46792
https://bugs.winehq.org/show_bug.cgi?id=46579
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #12 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 4.4.
https://bugs.winehq.org/show_bug.cgi?id=46579
Michael Stefaniuc mstefani@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |4.0.x
https://bugs.winehq.org/show_bug.cgi?id=46579
Michael Stefaniuc mstefani@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|4.0.x |---
--- Comment #13 from Michael Stefaniuc mstefani@winehq.org --- Removing the 4.0.x milestone from bug fixes included in 4.0.2.