Open Arcitec opened 6 years ago
I really wish I could help track this down since I am a programmer and I am seeing this issue on my system, but I don't know where to begin to look... I don't know ElvUI's codebase.
Okay! After a ton of crashes, I've finally discovered what's causing it, and found a reliable way to reproduce it 100% of the time:
I tried different addon combos:
!Compatibility
and !DebugTools
enabled: Fine! As above.ElvUI
(the core addon) is enabled (Compat+Debug+ElvUI enabled, nothing else needed): This crash will happen!So it is probably something about how ElvUI hooks into/takes over the Dressing Room window!
I can take a look at the code if you can guide me about what potential places to look in.
So far I've tested 1 thing:
AddOns/ElvUI/modules/skins/blizzard/load_blizzard.xml
, I removed the line that loads "dressingroom.lua". This means the dressing frame is not re-skinned.I can't replicate this on Windows 10 with ElvUI 1.45.
Unsure of where I got the client from, but I am fairly certain it wasn't Warmane.
@Saben65 Thanks for confirming that it does not happen when WoW runs natively on Windows.
And I decided to check if the client version had anything to do with it.
So I checked:
Both crash exactly the same way. Here's the Excalibur enUS client, with ElvUI+ElvUIConfig+Compatibility+DevTools, no other addons:
Interestingly, the illegal instruction happens at the exact same memory address, 0xA7589132, in both the enGB and enUS clients. If I knew anything about patching assembly code, I'd love to add a null-pointer check there and possibly fix the Wow.exe client...
I also tried with removing SET gxApi "opengl"
from Config.wtf, to ensure the game uses the Direct3D API instead. Guess what? It doesn't crash. So the crash is related to the OpenGL rendering mode.
But remember: There are no game-crashes in OpenGL mode if ElvUI is disabled. Only when ElvUI is enabled.
Here's the thing: In Direct3D mode, Wine has to translate all D3D calls to OpenGL. If you instead tell the game to use the OpenGL renderer, you get 2-3x higher FPS, and no more constant stuttering (which happens while D3D shaders are being rewritten as OpenGL by Wine). Which matters a lot. It's impossible to raid in Direct3D mode, due to the terrible performance.
So even though we now know that OpenGL mode + Wine is what's causing SOME ElvUI feature (it could be anything) to crash the game, I'll be staying in OpenGL mode. I simply avoid ctrl-clicking on any equipment while the Dressing Room is open, since that's what causes the crash.
It's not a matter of being stubborn. The game performance is unplayable in Direct3D mode. ;-)
One more question: Does Windows also crash when WoW is in OpenGL Mode?
@Saben65, please go into your WTF folder and edit Config.wtf and add this line:
SET gxApi "opengl"
Now try ctrl-clicking a helmet (or shoulder) item twice in the game, so that your 2nd click happens while the Dressing Room frame is already open. Let's see what happens!
Having the same issue running the game with opengl on linux
This may sound like an impossible bug. "How can ElvUI CRASH WOW!?". But it is 100% true!
Setup:
SET gxApi "opengl"
andSET gxTripleBuffer "1"
.!Compatibility
,!DebugTools
,ElvUI
,ElvUI Config
.Steps to reproduce:
Zorbin's Water Resistant Hat
in the screenshot below, showing such a crash.0x00000000
. That's a null pointer, meaning a pointer that is supposed to point at data but isn't pointing at anything. That's the worst kind of bug a C++ program can get, because it means an instant crash.Steps to NOT reproduce:
Here is a screenshot: