https://bugs.winehq.org/show_bug.cgi?id=41929
Bug ID: 41929 Summary: Multiple games need WINED3D_TEXF_ANISOTROPIC filter mode Product: Wine Version: 1.9.24 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: directx-d3dx9 Assignee: wine-bugs@winehq.org Reporter: spleefer90@gmail.com Distribution: ---
For example Plantera and Really Big Sky.
fixme:d3d:surface_blt_fbo Unsupported filter mode WINED3D_TEXF_ANISOTROPIC (0x3).
https://bugs.winehq.org/show_bug.cgi?id=41929
Andrey Gusev andrey.goosev@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|directx-d3dx9 |directx-d3d Ever confirmed|0 |1 Status|UNCONFIRMED |NEW CC| |andrey.goosev@gmail.com
--- Comment #1 from Andrey Gusev andrey.goosev@gmail.com --- Confirming also for The Filmmaker demo.
https://bugs.winehq.org/show_bug.cgi?id=41929
--- Comment #2 from Matteo Bruni matteo.mystral@gmail.com --- Not sure it makes much sense to do a blit with ANISOTROPIC filtering. FWIW https://msdn.microsoft.com/en-us/library/windows/desktop/bb174471(v=vs.85).a... says that only NONE, POINT and LINEAR filtering are allowed in d3d9 StretchRect. I guess the others are supposed to fallback to LINEAR (needs testing) but we're currently using GL_NEAREST in that case.
Is there any visible issue caused by this? Look for blocky textures or similar.
https://bugs.winehq.org/show_bug.cgi?id=41929
--- Comment #3 from C0rn3j spleefer90@gmail.com --- I only tested with Plantera, which is a cartoonish game where it's hard to tell, but it looks fine to me.
https://bugs.winehq.org/show_bug.cgi?id=41929
Neuro Serpens swordspirit2@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |swordspirit2@gmail.com
--- Comment #4 from Neuro Serpens swordspirit2@gmail.com --- The game Slash Or Die on Steam also keeps spamming this message to stdout. It opens a garbled version of the screen from the last game that ran successfully (no idea how) and keeps spamming that message.
https://bugs.winehq.org/show_bug.cgi?id=41929
dirk.fizzlebeef@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |dirk.fizzlebeef@gmail.com
--- Comment #5 from dirk.fizzlebeef@gmail.com --- Five Nights at Freddy's: Sister Location looks like garbage, presumably because it needs this too.
https://bugs.winehq.org/show_bug.cgi?id=41929
Józef Kucia joseph.kucia@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |leozinho29_eu@hotmail.com
--- Comment #6 from Józef Kucia joseph.kucia@gmail.com --- *** Bug 46246 has been marked as a duplicate of this bug. ***
https://bugs.winehq.org/show_bug.cgi?id=41929
Józef Kucia joseph.kucia@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Assignee|wine-bugs@winehq.org |joseph.kucia@gmail.com CC| |joseph.kucia@gmail.com
--- Comment #7 from Józef Kucia joseph.kucia@gmail.com --- Created attachment 62945 --> https://bugs.winehq.org/attachment.cgi?id=62945 Patch
https://bugs.winehq.org/show_bug.cgi?id=41929
Józef Kucia joseph.kucia@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |patch
https://bugs.winehq.org/show_bug.cgi?id=41929
--- Comment #8 from leozinho29_eu@hotmail.com --- Created attachment 62949 --> https://bugs.winehq.org/attachment.cgi?id=62949 Screenshot showing game after patch
I applied this patch and even with the multiple messages still appearing:
002d:fixme:d3d:texture2d_blt_fbo Unsupported filter mode WINED3D_TEXF_ANISOTROPIC (0x3).
The textures are appearing properly without the problematic aliasing. To me this patch solved the problem.
https://bugs.winehq.org/show_bug.cgi?id=41929
Alistair Leslie-Hughes leslie_alistair@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Staged patchset| |https://github.com/wine-sta | |ging/wine-staging/tree/mast | |er/patches/wined3d-WINED3D_ | |TEXF_ANISOTROPIC CC| |leslie_alistair@hotmail.com Status|NEW |STAGED
https://bugs.winehq.org/show_bug.cgi?id=41929
--- Comment #9 from leozinho29_eu@hotmail.com --- I wonder how relevant this error message is:
002d:fixme:d3d:texture2d_blt_fbo Unsupported filter mode WINED3D_TEXF_ANISOTROPIC (0x3).
By checking the apitrace I recorded on Windows 10 of Cat Girl Without Salad, there are two different situations where D3DERR_INVALIDCALL was the result. They happen 308 times during the record and seem to be the only errors in the entire apitrace. They are:
367 @0 IDirect3DDevice9::StretchRect(this = 0x4894520, pSourceSurface = 0x48765c0, pSourceRect = &{left = 0, top = 0, right = 1920, bottom = 1080}, pDestSurface = 0x48767c0, pDestRect = &{left = 0, top = 0, right = 1920, bottom = 1080}, Filter = D3DTEXF_POINT) = D3DERR_INVALIDCALL
Which I don't really understand what went wrong. Maybe the destination rectangle is too large? The screen is 1366x768.
407 @0 IDirect3DDevice9::StretchRect(this = 0x4894520, pSourceSurface = 0x48767c0, pSourceRect = &{left = 0, top = 0, right = 1920, bottom = 1080}, pDestSurface = 0x10be720, pDestRect = &{left = 0, top = 0, right = 1296, bottom = 729}, Filter = D3DTEXF_ANISOTROPIC) = D3DERR_INVALIDCALL
Here what caused the D3DERR_INVALIDCALL result is the invalid Filter.
I wonder if the message Wine outputs should be outputted so often or even if it should be outputted at all. On Windows it is an invalid call, but it "fails silently". Isn't Wine working as intended? So, no need for fixme on this particular case?
I compared one of the screens between llvmpipe, i965 (with the patched Wine) and Windows 10 Intel driver. The comparison was made using ImageMagick's compare, the differences are the red elements of the image and its results are below:
i965 and llvmpipe: https://i.imgur.com/5yKw2fO.png Windows 10 and llvmpipe: https://i.imgur.com/ESWYYOt.png i965 and Windows 10: https://i.imgur.com/5vdf0Sw.png
Please note it was not easy to get images with exact same proportions (Windows 10 fullscreen is 1360x768 while Wine fullscreen is 1366x768 for this game), so there is that weird elements at the top right of the screen, but the Humble Original logo is at the exact same proportion and the images are not compressed or scaled to achieve this. To get llvmpipe screenshot I used Xephyr and to get i965 screenshot I created a virtual desktop for Wine by setting it with winecfg.
i965 and Windows 10 Intel driver have nearly the exact same result, while llvmpipe result is different. So it seems Windows 10 Intel driver fall back to the same method i965 does. Maybe now it's just OpenGL vs. DirectX decimals rounding?
Maybe someone with Nvidia or AMD GPUs should check if with their drivers the result for that operations is D3D_OK, but with Intel GPU it is D3DERR_INVALIDCALL.
https://bugs.winehq.org/show_bug.cgi?id=41929
Alistair Leslie-Hughes leslie_alistair@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |5b6c85d64ab49efba506e11e1f8 | |450da15096cea Status|STAGED |RESOLVED Resolution|--- |FIXED
--- Comment #10 from Alistair Leslie-Hughes leslie_alistair@hotmail.com --- This should be fixed by https://source.winehq.org/git/wine.git/?a=commit;h=5b6c85d64ab49efba506e11e1...
https://bugs.winehq.org/show_bug.cgi?id=41929
Paul Gofman gofmanp@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |gofmanp@gmail.com
--- Comment #11 from Paul Gofman gofmanp@gmail.com --- (In reply to Alistair Leslie-Hughes from comment #10)
This should be fixed by https://source.winehq.org/git/wine.git/?a=commit; h=5b6c85d64ab49efba506e11e1f8450da15096cea
Unfortunately it does not. My patch also messes with the stretch filtering modes in the same place but it is related to multisample resolves and not to defaulting to _LINEAR or _NEAREST.
https://bugs.winehq.org/show_bug.cgi?id=41929
Alistair Leslie-Hughes leslie_alistair@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |REOPENED Resolution|FIXED |---
--- Comment #12 from Alistair Leslie-Hughes leslie_alistair@hotmail.com --- (In reply to Paul Gofman from comment #11)
(In reply to Alistair Leslie-Hughes from comment #10)
This should be fixed by https://source.winehq.org/git/wine.git/?a=commit; h=5b6c85d64ab49efba506e11e1f8450da15096cea
Unfortunately it does not. My patch also messes with the stretch filtering modes in the same place but it is related to multisample resolves and not to defaulting to _LINEAR or _NEAREST.
Reopening
https://bugs.winehq.org/show_bug.cgi?id=41929
--- Comment #13 from Henri Verbeet hverbeet@gmail.com --- For what it's worth, it should be easy enough to write a test for this.
https://bugs.winehq.org/show_bug.cgi?id=41929
--- Comment #14 from Paul Gofman gofmanp@gmail.com --- (In reply to Henri Verbeet from comment #13)
For what it's worth, it should be easy enough to write a test for this.
That's actually what I was going to do.
https://bugs.winehq.org/show_bug.cgi?id=41929
Alistair Leslie-Hughes leslie_alistair@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|REOPENED |STAGED
https://bugs.winehq.org/show_bug.cgi?id=41929
Alistair Leslie-Hughes leslie_alistair@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1|5b6c85d64ab49efba506e11e1f8 |e9961039ec46ec64198489338ec |450da15096cea |df01a4b1c765c Resolution|--- |FIXED Status|STAGED |RESOLVED
--- Comment #15 from Alistair Leslie-Hughes leslie_alistair@hotmail.com --- Fixed by https://source.winehq.org/git/wine.git/?a=commit;h=e9961039ec46ec64198489338...
Thanks Paul.
https://bugs.winehq.org/show_bug.cgi?id=41929
--- Comment #16 from Paul Gofman gofmanp@gmail.com --- I should note that the upstream fix is different from the staged patch tested here: testing showed that _StretchRect with invalid filters (like _ANISOTROPIC) just never succeeds (see also Comment #2). Upsteam patch just rejects such blits.
So if it happens that games that were previously helped by the superseded patch now have problems again most likely they have some distinct root cause for their issue and deserve a separate bug report.
https://bugs.winehq.org/show_bug.cgi?id=41929
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #17 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 5.5.