https://bugs.winehq.org/show_bug.cgi?id=41711
Bug ID: 41711 Summary: World of Warcraft - Legion renders fonts incorrectly with DirectX Product: Wine-staging Version: 1.9.22 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: rankincj@yahoo.com CC: erich.e.hoover@wine-staging.com, michael@fds-team.de, sebastian@fds-team.de Distribution: ---
Created attachment 56123 --> https://bugs.winehq.org/attachment.cgi?id=56123 Incorrectly renderer login screen
Fedora 24 has just upgraded Wine from 1.9.20-staging to 1.9.22-staging. And now some text is rendered to the screen incorrectly.
I have attached a screenshot; the overlarge text is supposed to have been rendered in the "Breaking News" window.
https://bugs.winehq.org/show_bug.cgi?id=41711
--- Comment #1 from Chris Rankin rankincj@yahoo.com --- This problem happens in DirectX 9 mode, but not in OpenGL mode. However, OpenGL mode is unplayable anyway because Blizzard released it without testing it properly.
https://bugs.winehq.org/show_bug.cgi?id=41711
--- Comment #2 from Chris Rankin rankincj@yahoo.com --- FWIW: I have a Radeon R7 360 card, and am running Mesa 13.1.0-devel.
https://bugs.winehq.org/show_bug.cgi?id=41711
Chris Rankin rankincj@yahoo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Distribution|--- |Fedora
https://bugs.winehq.org/show_bug.cgi?id=41711
Michael Cronenworth mike@cchtml.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |mike@cchtml.com
--- Comment #3 from Michael Cronenworth mike@cchtml.com --- Hi, Chris. I have pushed a 1.9.23 build to updates-testing if you want to see if the issue is fixed there.
Fedora 24 https://bodhi.fedoraproject.org/updates/FEDORA-2016-32e6b1d86a
Fedora 25 https://bodhi.fedoraproject.org/updates/FEDORA-2016-aa50f6b48d
https://bugs.winehq.org/show_bug.cgi?id=41711
--- Comment #4 from Chris Rankin rankincj@yahoo.com --- Created attachment 56164 --> https://bugs.winehq.org/attachment.cgi?id=56164 Screenshot showing incorrect rendering
The problem seems to happen when rendering to "in-game windows". The large black circle dominating the screenshot is the game's minimap, which *should* be rendered within the circular frame in the top-right corner.
https://bugs.winehq.org/show_bug.cgi?id=41711
Chris Rankin rankincj@yahoo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|World of Warcraft - Legion |World of Warcraft - Legion |renders fonts incorrectly |renders into "sub-windows" |with DirectX |incorrectly with DirectX
https://bugs.winehq.org/show_bug.cgi?id=41711
Chris Rankin rankincj@yahoo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Version|1.9.22 |1.9.23
https://bugs.winehq.org/show_bug.cgi?id=41711
Bjoern Bidar theodorstormgrade@googlemail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |theodorstormgrade@googlemai | |l.com
--- Comment #5 from Bjoern Bidar theodorstormgrade@googlemail.com --- I'm using the same version on arch Linux and I didn't have the issue. However there are other users having the issue that the 64bit client freezes.
https://bugs.winehq.org/show_bug.cgi?id=41711
--- Comment #6 from Chris Rankin rankincj@yahoo.com --- (In reply to Bjoern Bidar from comment #5)
I'm using the same version on arch Linux and I didn't have the issue.
Are you using Radeon graphics with Mesa? Or NVIDIA graphics with binary blob?
https://bugs.winehq.org/show_bug.cgi?id=41711
--- Comment #7 from Chris Rankin rankincj@yahoo.com --- I have managed to test this on a laptop which has hybrid Broadwell/NVIDIA graphics, and can report that Wine does indeed behave correctly when using NVIDIA's driver. However, the bug still happens with Broadwell/Mesa.
The difference between the Wine output with each driver appears to be that Broadwell/Mesa generates log lines like these:
err:d3d:wined3d_debug_callback 0xed9a20: "GL_INVALID_OPERATION in unsupported function called (unsupported extension or deprecated function?)".
https://bugs.winehq.org/show_bug.cgi?id=41711
Chris Rankin rankincj@yahoo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|World of Warcraft - Legion |World of Warcraft - Legion |renders into "sub-windows" |renders into "sub-windows" |incorrectly with DirectX |incorrectly with | |DirectX/Mesa
https://bugs.winehq.org/show_bug.cgi?id=41711
--- Comment #8 from Henri Verbeet hverbeet@gmail.com --- (In reply to Chris Rankin from comment #7)
The difference between the Wine output with each driver appears to be that Broadwell/Mesa generates log lines like these:
err:d3d:wined3d_debug_callback 0xed9a20: "GL_INVALID_OPERATION in unsupported function called (unsupported extension or deprecated function?)".
Could you find out what function that is? If there are no hints in the log, the easiest way to find that out may be to put a breakpoint on wined3d_debug_callback() and get a backtrace when it triggers.
https://bugs.winehq.org/show_bug.cgi?id=41711
--- Comment #9 from Henri Verbeet hverbeet@gmail.com --- Actually, does this happen on mainline Wine?
https://bugs.winehq.org/show_bug.cgi?id=41711
--- Comment #10 from Chris Rankin rankincj@yahoo.com --- (In reply to Henri Verbeet from comment #9)
Actually, does this happen on mainline Wine?
Impossible to say, because Fedora only supplies Staging RPMs.
https://bugs.winehq.org/show_bug.cgi?id=41711
--- Comment #11 from Rosanne DiMesio dimesio@earthlink.net --- (In reply to Chris Rankin from comment #10)
Impossible to say, because Fedora only supplies Staging RPMs.
Which is precisely why WineHQ provides them. https://wiki.winehq.org/Fedora
https://bugs.winehq.org/show_bug.cgi?id=41711
--- Comment #12 from Chris Rankin rankincj@yahoo.com --- (In reply to Rosanne DiMesio from comment #11)
Which is precisely why WineHQ provides them. https://wiki.winehq.org/Fedora
OK, so can you tell me precisely which commands you're expecting me to be running, please? And that goes for your request to "put a breakpoint on wined3d_debug_callback()" too.
https://bugs.winehq.org/show_bug.cgi?id=41711
--- Comment #13 from Chris Rankin rankincj@yahoo.com --- (In reply to Rosanne DiMesio from comment #11)
Which is precisely why WineHQ provides them. https://wiki.winehq.org/Fedora
OK, I've figured this much out. Yes, it also happens with 1.9.23 mainline.
https://bugs.winehq.org/show_bug.cgi?id=41711
--- Comment #14 from Chris Rankin rankincj@yahoo.com --- winedbg doesn't seem to like Wow-64.exe, and so I've had to use the 32 bit client instead:
$ winedbg Wow.exe -noautolaunch64bit
Wine-dbg>break wined3d_debug_callback No symbols found for wined3d_debug_callback Unable to add breakpoint, will check again when a new DLL is loaded
Wine-dbg>info break No breakpoints No watchpoints Delayed breakpoints: 0: wined3d_debug_callback
Does anyone have any ideas, please?
https://bugs.winehq.org/show_bug.cgi?id=41711
--- Comment #15 from Bruno Jesus 00cpxxx@gmail.com --- (In reply to Chris Rankin from comment #14)
winedbg doesn't seem to like Wow-64.exe, and so I've had to use the 32 bit client instead:
$ winedbg Wow.exe -noautolaunch64bit
Wine-dbg>break wined3d_debug_callback No symbols found for wined3d_debug_callback Unable to add breakpoint, will check again when a new DLL is loaded
After this point you have to type "c" to make the program actually run.
https://bugs.winehq.org/show_bug.cgi?id=41711
--- Comment #16 from Chris Rankin rankincj@yahoo.com --- (In reply to Bruno Jesus from comment #15)
After this point you have to type "c" to make the program actually run.
Thank you, but I can actually tell when a program is running and when it isn't :-|. I'm suspecting that debuginfo-install is only installing the 64 bit debug symbols, rather than the 32 bit symbols that winedbg needs.
https://bugs.winehq.org/show_bug.cgi?id=41711
--- Comment #17 from Chris Rankin rankincj@yahoo.com --- And to cap it all:
$ winedbg Wow.exe -noautolaunch64bit err:winedevice:async_create_driver failed to create driver L"Null": c0000142 WineDbg starting on pid 0030 fixme:dbghelp_dwarf:dwarf2_swallow_attribute Unhandled attribute form 1f21 winedbg: Internal crash at 0x7ecae7bb
So winedbg doesn't work for 64 bi and crashes for 32 bit. I'm all out of ideas here.
https://bugs.winehq.org/show_bug.cgi?id=41711
Chris Rankin rankincj@yahoo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Product|Wine-staging |Wine Component|-unknown |directx-d3d
https://bugs.winehq.org/show_bug.cgi?id=41711
--- Comment #18 from Chris Rankin rankincj@yahoo.com --- Whatever this bug is, it requires Mesa also to support OpenGL >= 4. Which means that WoW will work correctly provided I set the following environment variables:
MESA_GL_VERSION_OVERRIDE=3.3COMPAT MESA_GLSL_VERSION_OVERRIDE=420
(This is for my Radeon R7 360, which supports OpenGL 4.5 with the latest Mesa.)
WoW only really requires OpenGL 3.3, although I think some of its shaders demand GLSL 4.2 support. So "under advertising" OpenGL support is a work-around.
https://bugs.winehq.org/show_bug.cgi?id=41711
--- Comment #19 from Matteo Bruni matteo.mystral@gmail.com --- I'm curious, can you check that you're not running with the d3d11 renderer (that's the "Graphics API" setting under System->Advanced)?
https://bugs.winehq.org/show_bug.cgi?id=41711
--- Comment #20 from Chris Rankin rankincj@yahoo.com --- (In reply to Matteo Bruni from comment #19)
I'm curious, can you check that you're not running with the d3d11 renderer (that's the "Graphics API" setting under System->Advanced)?
I am most definitely using DirectX 9, and my Config.wtf file contains: SET gxApi "D3D9"
https://bugs.winehq.org/show_bug.cgi?id=41711
--- Comment #21 from Chris Rankin rankincj@yahoo.com --- I've narrowed the problem down further:
MESA_GL_VERSION_OVERRIDE=4.0COMPAT Works MESA_GL_VERSION_OVERRIDE=4.1COMPAT Broken
https://bugs.winehq.org/show_bug.cgi?id=41711
--- Comment #22 from Matteo Bruni matteo.mystral@gmail.com --- (In reply to Chris Rankin from comment #21)
I've narrowed the problem down further:
MESA_GL_VERSION_OVERRIDE=4.0COMPAT Works MESA_GL_VERSION_OVERRIDE=4.1COMPAT Broken
You normally run the game without Mesa version overrides and that fails as in the bug description, right?
Can you please attach the plain terminal output with no overrides?
https://bugs.winehq.org/show_bug.cgi?id=41711
--- Comment #23 from Chris Rankin rankincj@yahoo.com --- (In reply to Matteo Bruni from comment #22)
You normally run the game without Mesa version overrides and that fails as in the bug description, right?
No, I've been running WoW with MESA_GL_VERSION_OVERRIDE for a while now so that OpenGL mode wouldn't crash:
https://bugs.freedesktop.org/show_bug.cgi?id=91600#c5
However, then Blizzard made a half-donkeyed effort to update OpenGL mode that left it unplayable. And D3D11 mode doesn't work yet either, so D3D9 mode it had to be.
https://bugs.winehq.org/show_bug.cgi?id=41711
--- Comment #24 from Matteo Bruni matteo.mystral@gmail.com --- (In reply to Chris Rankin from comment #23)
(In reply to Matteo Bruni from comment #22)
You normally run the game without Mesa version overrides and that fails as in the bug description, right?
No, I've been running WoW with MESA_GL_VERSION_OVERRIDE for a while now so that OpenGL mode wouldn't crash:
https://bugs.freedesktop.org/show_bug.cgi?id=91600#c5
However, then Blizzard made a half-donkeyed effort to update OpenGL mode that left it unplayable. And D3D11 mode doesn't work yet either, so D3D9 mode it had to be.
Well, don't run Wine with Mesa version overrides, that's not a supported configuration and it might explain the bug.
So if I understand it correctly, WoW works fine for you with d3d9 and no overrides? If that's the case there is nothing to fix here.
https://bugs.winehq.org/show_bug.cgi?id=41711
--- Comment #25 from Chris Rankin rankincj@yahoo.com --- (In reply to Matteo Bruni from comment #24)
So if I understand it correctly, WoW works fine for you with d3d9 and no overrides? If that's the case there is nothing to fix here.
Not setting MESA_GL_VERSION_OVERRIDE sounds like just another workaround to me :-|. Because as I've already said, it also works with MESA_GL_VERSION_OVERRIDE=4.0COMPAT.
https://bugs.winehq.org/show_bug.cgi?id=41711
--- Comment #26 from Chris Rankin rankincj@yahoo.com --- For reference, Warcraft's OpenGL mode *still* crashes unless MESA_GL_VERSION_OVERRIDE=3.3COMPAT or better. (It complains that it cannot activate 3D acceleration).
https://bugs.winehq.org/show_bug.cgi?id=41711
Matteo Bruni matteo.mystral@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |INVALID Status|UNCONFIRMED |RESOLVED
--- Comment #27 from Matteo Bruni matteo.mystral@gmail.com --- (In reply to Chris Rankin from comment #25)
(In reply to Matteo Bruni from comment #24)
So if I understand it correctly, WoW works fine for you with d3d9 and no overrides? If that's the case there is nothing to fix here.
Not setting MESA_GL_VERSION_OVERRIDE sounds like just another workaround to me :-|. Because as I've already said, it also works with MESA_GL_VERSION_OVERRIDE=4.0COMPAT.
How is not setting any override a workaround? Wine, like any reasonable OpenGL application, checks what features are available with the current driver / GPU and uses only those that are supported. If you override the GL version reported by the Mesa driver you effectively break that kind of checking, since the driver now reports a bunch more features as supported which they really aren't (that environment variable doesn't magically add features to the driver). Wine goes to use them, they don't work and you get GL errors and broken rendering.
By overriding the GL version to 4.1 compatibility you enable a number of extensions flags in Wine without the driver being able to support them, breaking things. FWIW it's probably ARB_viewport_array the relevant extension.
https://bugs.winehq.org/show_bug.cgi?id=41711
--- Comment #28 from Matteo Bruni matteo.mystral@gmail.com --- (In reply to Chris Rankin from comment #26)
For reference, Warcraft's OpenGL mode *still* crashes unless MESA_GL_VERSION_OVERRIDE=3.3COMPAT or better. (It complains that it cannot activate 3D acceleration).
That would be a separate bug. There isn't anything we can do if Warcraft requires an OpenGL 3.3 compatibility profile, Mesa just doesn't support that.
https://bugs.winehq.org/show_bug.cgi?id=41711
--- Comment #29 from Chris Rankin rankincj@yahoo.com --- (In reply to Matteo Bruni from comment #27)
By overriding the GL version to 4.1 compatibility you enable a number of extensions flags in Wine without the driver being able to support them, breaking things.
Except that I have a Radeon R7 360 that supports OpenGL *4.5* with the latest version of Mesa (which I am running). So "yes", I expect Wine still to work correctly when I *downgrade* to OpenGL 4.1.
FWIW it's probably ARB_viewport_array the relevant extension.
Which radeonsi supports. So what's your point?
https://bugs.winehq.org/show_bug.cgi?id=41711
--- Comment #30 from Matteo Bruni matteo.mystral@gmail.com --- (In reply to Matteo Bruni from comment #28)
(In reply to Chris Rankin from comment #26)
For reference, Warcraft's OpenGL mode *still* crashes unless MESA_GL_VERSION_OVERRIDE=3.3COMPAT or better. (It complains that it cannot activate 3D acceleration).
That would be a separate bug. There isn't anything we can do if Warcraft requires an OpenGL 3.3 compatibility profile, Mesa just doesn't support that.
I meant to insert a "though" after "profile"... Anyway, OpenGL being broken for you with Mesa + the version override is not surprising, with that you're just hacking the driver to pass the WoW GL version check.
(In reply to Chris Rankin from comment #29)
Except that I have a Radeon R7 360 that supports OpenGL *4.5* with the latest version of Mesa (which I am running). So "yes", I expect Wine still to work correctly when I *downgrade* to OpenGL 4.1.
It supports OpenGL 4.5 only with core profile. You're forcing compatibility, which is a separate thing.
FWIW it's probably ARB_viewport_array the relevant extension.
Which radeonsi supports. So what's your point?
Only in core profiles.
https://bugs.winehq.org/show_bug.cgi?id=41711
--- Comment #31 from Matteo Bruni matteo.mystral@gmail.com --- For the records, Mesa reports GL 3.0 in compatibility profile.
https://bugs.winehq.org/show_bug.cgi?id=41711
--- Comment #32 from Chris Rankin rankincj@yahoo.com --- (In reply to Matteo Bruni from comment #31)
For the records, Mesa reports GL 3.0 in compatibility profile.
It reports GL 3.0, except with lots of other extensions available too (e.g. ARB_sync). Otherwise WoW's OpenGL mode would still crash despite my setting MESA_GL_VERSION_OVERRIDE=3.3COMPAT.
https://bugs.winehq.org/show_bug.cgi?id=41711
--- Comment #33 from Matteo Bruni matteo.mystral@gmail.com --- (In reply to Chris Rankin from comment #32)
(In reply to Matteo Bruni from comment #31)
For the records, Mesa reports GL 3.0 in compatibility profile.
It reports GL 3.0, except with lots of other extensions available too (e.g. ARB_sync). Otherwise WoW's OpenGL mode would still crash despite my setting MESA_GL_VERSION_OVERRIDE=3.3COMPAT.
But not ARB_viewport_array, which is the likely reason for this bug report.
https://bugs.winehq.org/show_bug.cgi?id=41711
Michael Cronenworth mike@cchtml.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC|mike@cchtml.com |
https://bugs.winehq.org/show_bug.cgi?id=41711
--- Comment #34 from Matteo Bruni matteo.mystral@gmail.com --- In Mesa there are a number of 3.1+ extensions / features which are only implemented for core profile. There is a reason why the reported version is 3.0 in compatibility profile and overriding the version is generally going to break stuff.
I'm sure there might be some applications for which a version override might work good enough, but that's the exception, not the norm.
https://bugs.winehq.org/show_bug.cgi?id=41711
--- Comment #35 from Chris Rankin rankincj@yahoo.com --- (In reply to Matteo Bruni from comment #30)
It supports OpenGL 4.5 only with core profile. You're forcing compatibility, which is a separate thing.
I think what worries me even more here is the implication that Wine doesn't use core profiles for its DirectX emulation. That doesn't bode well for Mesa users.
https://bugs.winehq.org/show_bug.cgi?id=41711
Matteo Bruni matteo.mystral@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #36 from Matteo Bruni matteo.mystral@gmail.com --- (In reply to Chris Rankin from comment #35)
(In reply to Matteo Bruni from comment #30)
It supports OpenGL 4.5 only with core profile. You're forcing compatibility, which is a separate thing.
I think what worries me even more here is the implication that Wine doesn't use core profiles for its DirectX emulation. That doesn't bode well for Mesa users.
That is bug 38648. We're working on it, in the meantime you can set the MaxVersionGL registry key to try that out. Just remember to mention that if you are to report bugs with the key set :)