https://bugs.winehq.org/show_bug.cgi?id=48302
Bug ID: 48302 Summary: Warhammer Online doesn't render without d3dx9_34 Product: Wine Version: 4.21 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: directx-d3dx9 Assignee: wine-bugs@winehq.org Reporter: xpander0@gmail.com Distribution: ---
Warhammer Online rendering is broken without installing d3dx9_34.dll
looks like this: https://cdn.discordapp.com/attachments/561359616135397396/656624199980417024...
And when installing d3dx9_34.dll it renders fine except ground textures are overly bright:
https://user-images.githubusercontent.com/1345116/63214171-799c2780-c11d-11e...
top picture is how it should look
WINEDEBUG log: https://pastebin.com/XH1pjKU4
apitrace with wined3d (d3dx9_34 installed via winetricks) - 1.1GB: https://mega.nz/#!MOh2VKLb!7qOb_2KdSmX5wQi3UR1sodY0fQ8Yg8qdyt9Gi2372ro
https://bugs.winehq.org/show_bug.cgi?id=48302
--- Comment #1 from Xpander xpander0@gmail.com --- Created attachment 66008 --> https://bugs.winehq.org/attachment.cgi?id=66008 winedebug log
https://bugs.winehq.org/show_bug.cgi?id=48302
Paul Gofman gofmanp@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |gofmanp@gmail.com
--- Comment #2 from Paul Gofman gofmanp@gmail.com --- Created attachment 66012 --> https://bugs.winehq.org/attachment.cgi?id=66012 Support SRGB read for B5G6R5 textures.
(In reply to Xpander from comment #0)
Warhammer Online rendering is broken without installing d3dx9_34.dll
Could you please attach WINEDEBUG=+d3dx log?
And when installing d3dx9_34.dll it renders fine except ground textures are overly bright:
apitrace with wined3d (d3dx9_34 installed via winetricks) - 1.1GB: https://mega.nz/#!MOh2VKLb!7qOb_2KdSmX5wQi3UR1sodY0fQ8Yg8qdyt9Gi2372ro
The attached patch seems to fix overly bright ground with the replayed apitrace. Does it completely fix the issue in game too? If it is not fixed by the patch, could you please open a separate bug for this, as the bug tracker rules are one bug per issue, not per application. If the patch fixes the issue I suppose there is no need for that.
https://bugs.winehq.org/show_bug.cgi?id=48302
--- Comment #3 from Xpander xpander0@gmail.com --- It works indeed! Thank you so much!
https://cdn.discordapp.com/attachments/620395818368630805/656851325539319808...
https://bugs.winehq.org/show_bug.cgi?id=48302
--- Comment #4 from Xpander xpander0@gmail.com --- Created attachment 66014 --> https://bugs.winehq.org/attachment.cgi?id=66014 +d3dx log
Added the +d3dx log without the native d9dx9_34.dll
https://bugs.winehq.org/show_bug.cgi?id=48302
--- Comment #5 from Xpander xpander0@gmail.com --- Created attachment 66015 --> https://bugs.winehq.org/attachment.cgi?id=66015 +d3dx - updated
it was too big to paste so it only took small parts. added file now
https://bugs.winehq.org/show_bug.cgi?id=48302
joaopa jeremielapuree@yahoo.fr changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jeremielapuree@yahoo.fr
--- Comment #6 from joaopa jeremielapuree@yahoo.fr --- *** Bug 48319 has been marked as a duplicate of this bug. ***
https://bugs.winehq.org/show_bug.cgi?id=48302
--- Comment #7 from Paul Gofman gofmanp@gmail.com --- Created attachment 66075 --> https://bugs.winehq.org/attachment.cgi?id=66075 d3dx9: Use compatibility flag for shader compilation.
Back to the original issue with builtin d3dx9_34, the problem is in shaders compilation which the game wants to compile with D3DXCompileShader(). Even with native d3dcompiler_47 overrides the shaders do not compile due to the following error returned from native compiler:
error X3025: global variables are implicitly constant, enable compatibility mode to allow modification
The attached patch fixes the issue with builtin d3dx9 (native d3dcompiler_47 overrides is still needed). This could of course use some tests to get an idea of which versions of d3dx9 support this old HLSL.
https://bugs.winehq.org/show_bug.cgi?id=48302
--- Comment #8 from Xpander xpander0@gmail.com --- Sorry for offtopic for this bugreport, but is the sRGB patch made into the wine yet? i didn't find anything on latest release notes though.
back to the butilin d3dx9_34.dll issue, is there anything i can help testing it? I'm not really good with the code myself :)
https://bugs.winehq.org/show_bug.cgi?id=48302
--- Comment #9 from Paul Gofman gofmanp@gmail.com --- (In reply to Xpander from comment #8)
Sorry for offtopic for this bugreport, but is the sRGB patch made into the wine yet? i didn't find anything on latest release notes though.
This issue is not a regression, so probably a no go during the code freeze. I was planning to finalize the unit test and suggest the patch upstream after code freeze (I guess late January or so).
back to the butilin d3dx9_34.dll issue, is there anything i can help testing it? I'm not really good with the code myself :)
I mean unit tests in the code and not some testing with the game, so unless you want to code something not sure how you can further help here. Thanks for reporting the issues and testing the patches.
https://bugs.winehq.org/show_bug.cgi?id=48302
--- Comment #10 from Matteo Bruni matteo.mystral@gmail.com --- (In reply to Paul Gofman from comment #9)
This issue is not a regression, so probably a no go during the code freeze. I was planning to finalize the unit test and suggest the patch upstream after code freeze (I guess late January or so).
I think the patch should be okay for code freeze, it's still a bug fix with very low risk. We do want to test (not necessarily Wine tests) which d3dx9 versions require the flag. FWIW 3a5688a795532640bb32bd4c3e9961c6ab9f19fa implies the behavior changed with d3dx9_37 for effect shaders.
Minor point, it would be nicer to use the D3DCOMPILE_ constant in the patch instead.
https://bugs.winehq.org/show_bug.cgi?id=48302
Matteo Bruni matteo.mystral@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever confirmed|0 |1
--- Comment #11 from Matteo Bruni matteo.mystral@gmail.com --- (In reply to Matteo Bruni from comment #10)
(In reply to Paul Gofman from comment #9)
This issue is not a regression, so probably a no go during the code freeze. I was planning to finalize the unit test and suggest the patch upstream after code freeze (I guess late January or so).
I think the patch should be okay for code freeze, it's still a bug fix with very low risk. We do want to test (not necessarily Wine tests) which d3dx9 versions require the flag. FWIW 3a5688a795532640bb32bd4c3e9961c6ab9f19fa implies the behavior changed with d3dx9_37 for effect shaders.
Eh, I was referring to the d3dx9 patch while you were talking about the wined3d change. Actually the wined3d one is probably also okay, we don't restrict acceptable patches to regression fixes only (especially when there are still a few weeks to go) and the change is very contained. Of course others might disagree so the patch can still end up deferred.
https://bugs.winehq.org/show_bug.cgi?id=48302
--- Comment #12 from Mathew Hodson mathew.hodson@gmail.com --- The compatibility flag for the builtin dll was added in https://source.winehq.org/git/wine.git/commitdiff/13880f8e6a0a972382de7de04b...
If someone wants to track the texture issue, I think another bug should be opened.
https://bugs.winehq.org/show_bug.cgi?id=48302
--- Comment #13 from Paul Gofman gofmanp@gmail.com --- (In reply to Mathew Hodson from comment #12)
The compatibility flag for the builtin dll was added in https://source.winehq.org/git/wine.git/commitdiff/ 13880f8e6a0a972382de7de04b56bd1a414bef67
Yes, the bug should be fixed now.
For the record, regarding unrelated issue (too bright textures) discussed here: - This looks now as reproducible on Nvidia only under Wine, seems to work fine if fake some AMD card by setting the following hex values under HKCU\Software\Wine\Direct3D key: VideoPciDeviceID: 67df VideoPciVendorID: 1002 - The bug reproducible with Nvidia without workarounds should be fixed by https://source.winehq.org/git/wine.git/commit/941bd46597a8e8f2c40a80a8e42962...
https://bugs.winehq.org/show_bug.cgi?id=48302
--- Comment #14 from Xpander xpander0@gmail.com --- Created attachment 66361 --> https://bugs.winehq.org/attachment.cgi?id=66361 Blackscreen + Crash
Doesn't seem to work. Using git build of wine wine-git-5.0.r322.g7c9595ef17
installed dotnet40 into the prefix (thats needed only for the Launcher)
All the rest is untouched, clean prefix
Nvidia GTX 1080Ti 440.48.02 drivers
Should i add the GPU Vendor trick or install d3dcompiler still?
https://bugs.winehq.org/show_bug.cgi?id=48302
--- Comment #15 from Paul Gofman gofmanp@gmail.com --- (In reply to Xpander from comment #14)
Should i add the GPU Vendor trick or install d3dcompiler still?
As I mentioned in comment #7, d3dcompiler_47 override is still required (while overriding d3dx9_34 is not anymore). HLSL shaders compilation is currently not implemented in builtin d3dcompiler, there is already a number of bugs opened for that. This bug ticket, as I interpret it, is concerning the fact that even with d3dcompiler_47 native override the shaders in Warhammer could still not be compiled with builtin d3dx, and that was fixed.
I think I also had to install corefonts ('winetricks corefonts') besides dotnet40, without that the launcher was crashing for me upon any entry into its edit boxes. So, while not related to this bug ticket, the workarounds currently required for Warhammer are:
'winetricks dotnet40 corefonts d3dcompiler_47'.
https://bugs.winehq.org/show_bug.cgi?id=48302
--- Comment #16 from Xpander xpander0@gmail.com --- yeah already tested, works fine with d3dcompiler_47 added
yeah corefonts are needed if you dont have microsoft fonts installed on your system. I do have, so i didn't need
Offtopic:
Thank you for the work with this!
sRGB thingy was the main problem i didn't want to play this game before, but now im completely hooked :) Several hours in a row without single problems, while watching how windows users crash or dc out from the game quite frequently :)
https://bugs.winehq.org/show_bug.cgi?id=48302
Gijs Vermeulen gijsvrm@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Fixed by SHA1| |13880f8e6a0a972382de7de04b5 | |6bd1a414bef67 Resolution|--- |FIXED
--- Comment #17 from Gijs Vermeulen gijsvrm@gmail.com --- I'm going to go ahead and mark this bug as fixed.
If anyone still wants open a new bug for the nvidia issue and mark it FIXED, feel free.
https://bugs.winehq.org/show_bug.cgi?id=48302
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #18 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 5.3.