daniel-schuermann / mesa

Mesa 3D graphics library (mirror; no pull requests here please)
http://mesa3d.org
135 stars 3 forks source link

Graphical Corruption in Starcraft 2 #119

Closed Anupalabdhi closed 4 years ago

Anupalabdhi commented 5 years ago

Describe the bug Graphical corruption can be noticed in various places in the menu. Couldn't notice any issues with the actual in-game graphics but not sure if they are affected or not.

Screenshots For rendering errors, please insert screenshots showing incorrect rendering (ACO) and correct rendering (LLVM).

ACO Screenshot: 2019-08-19-184847_1920x1080_scrot

LLVM Screenshot: 2019-08-19-185126_1920x1080_scrot

RenderDoc capture: I use lutris to run Starcraft 2 with d9vk and I tried setting the environment variable as suggested in the Issue template but I was not able to get the renderdoc to start nor did pressing F12 do anything.

System information:

Additional context There are tiny corruptions in the background also that remain even with LLVM but to a lesser extent. I will keep trying to obtain a renderdoc but just wanted to put up an issue in the meantime. Let me know if any additional details are required.

Anupalabdhi commented 5 years ago

I managed to get a renderdoc while at the same screen that I posted in my initial comment. The reason it took so long was because Blizzard Launcher was not playing nicely with the renderdoc environment variable, so I used a different exe to launch the game while bypassing the launcher. Hope it doesn't change anything. For some reason, there was no graphical corruption visible while running it with renderdoc even though I didn't put the llvm variable in. (I tested the game by starting it again without renderdoc and the corruption was visible again)

Anyways, here's the renderdoc capture, hope it helps: https://drive.google.com/file/d/1wwnjK7giC_YvW5a6ntaCUAEupkMBWvLg/view?usp=sharing

daniel-schuermann commented 5 years ago

@Anupalabdhi is this issue still present with current ACO master?

Venemo commented 5 years ago

Starcraft 2 generally doesn't yet work well with D9VK. I test it every now and then but there is always something broken.

I would suggest to try to use Gallium Nine with SC2, at least until D9VK matures enough to be able to run it well.

pingubot commented 5 years ago

sc2issue

@Venemo for me d9vk works great with SC2, much better than wine or wine + gallium nine.

@daniel-schuermann The issue is still present with my build up to b738bf069172ba08a087735061570ade4415041a on my Vega 56

Venemo commented 5 years ago

@pingubot How is it "much better" when it looks like that? Also there are no shadows in SC2 with D9VK.

Anupalabdhi commented 5 years ago

Hello @daniel-schuermann ,

Sorry I was away for a while so couldn't respond earlier, but I recompiled with the latest master and as @pingubot has already noted, the corruption is still there.

Screenshot_20191003_212646

daniel-schuermann commented 4 years ago

@aufkrawall Do you think it is possible to capture SC2 the same way you did with HotS?

aufkrawall commented 4 years ago

Sure: https://drive.google.com/open?id=1jld76XBJ-qUPfeTup4UbPsJgRCOEB5W6

Described how to do it here: https://gitlab.freedesktop.org/mesa/mesa/issues/1943#note_258329

daniel-schuermann commented 4 years ago

Thx! Does someone want to test if the issue is resolved now?

aufkrawall commented 4 years ago

That particular issue is gone. There are other visual issues in the menu, but they likely are related to D9VK (amdvlk-pro shows them too).

Edit: It's already reported for D9VK: https://github.com/Joshua-Ashton/d9vk/issues/85

baryluk commented 4 years ago

I tried testing it, unfortunately the game misbehaves and terminates when it tries to setup the resolution in full screen, and actually leaves my monitor in inconsistent state (need to blindly type xrandr into invisible terminal to restore it or restart Xorg server).

From .../drive_c/users/user/My Documents/StarCraft II/GameLogs/2019-10-16 12.55.40 Graphics.txt:

...
GFX  12:55:41.094 Initialized D3D9 GraphicsDevice: AMD RADV/ACO FIJI (LLVM 10.0.0) (Driver Version: 65535.65535.65535.65535, VRAM: 4096MB, SVMEM: 4096MB).
GFX  12:55:41.104 Selected display mode 1680x1050x0 with format D3DFMT_X8R8G8B8 and error delta 0
GFX  12:55:41.104 Hardware Depth Sampling: Available
GFX  12:55:41.119 VRAM texture space: 2048MB
GFX  12:55:42.570 PerfNotifiers initialized
GFX  12:55:42.586 Selected display mode 1680x1050x0 with format D3DFMT_X8R8G8B8 and error delta 0
GFX  12:55:42.587 Lost D3D9 device
GFX  12:55:42.666
GFX  12:55:42.666 D3D9 Device Reset from unknown returned e_errorKindGfx(0)

My monitor does support 1680x1050 according to xrandr, but "x0" and the format looks weird. Also manually setting resolution using xrandr to 1650x1050 , results in a similar behaviour, of black screen ("no signal"). I guess my monitor is broken or reporting wrong EDID, and I am not sure how to remove or blacklist this mode from xrandr (xrandr --delmode DisplayPort-1 1680x1050 and xrandr --rmmode 1650x1050 returns an XError RANDR RRDeleteOutputMode BadAccess and XError RANDR RRDestroyMode BadMatch errors respectively).

aufkrawall commented 4 years ago

Try using Proton fullscreen hack and/or Wine virtual desktop.

baryluk commented 4 years ago

Yeah. I just tried using Wine virtual desktop, and additionally -Displaymode 1 as extra SC2 argument, as well edited Variables.txt to set displayMode=0 or displayMode=1, as well set manually height and width. It behaves slightly better, runs in a window, and shows a loading screen, but it crashes very soon faster with very similar error:

GFX  13:15:16.176 Floating point render targets supported.^M
GFX  13:15:16.184 DXGI Adapter Name: AMD RADV/ACO FIJI (LLVM 10.0.0)^M
GFX  13:15:16.184 VRAM Detected: Dedicated [4096MB] Shared [4096MB] (DXGI)^M
GFX  13:15:16.184 VRAM Override Variables: Dedicated [0MB] Shared [0MB]^M
GFX  13:15:16.184 Initialized D3D9 GraphicsDevice: AMD RADV/ACO FIJI (LLVM 10.0.0) (Driver Version: 65535.65535.65535.65535, VRAM: 4096MB, SVMEM: 4096MB).^M
GFX  13:15:16.184 Hardware Depth Sampling: Available^M
GFX  13:15:16.197 VRAM texture space: 2048MB^M
GFX  13:15:17.599 PerfNotifiers initialized^M
GFX  13:15:17.608 Lost D3D9 device^M
GFX  13:15:17.609 ^M
GFX  13:15:17.609 D3D9 Device Reset from unknown returned e_errorKindGfx(0)^M

I tested with Wine Staging 4.16 and with lutris-nofshack-4.16. Same effect as far as I can tell.

D9VK 0.22 and DXVK 1.4.2

It crashes when I disable D9VK and its is using OpenGL:

GFX  13:18:34.734 DXGI Adapter Name: AMD RADV/ACO FIJI (LLVM 10.0.0)^M
GFX  13:18:34.734 VRAM Detected: Dedicated [4096MB] Shared [4096MB] (DXGI)^M
GFX  13:18:34.734 VRAM Override Variables: Dedicated [0MB] Shared [0MB]^M
GFX  13:18:34.734 Initialized D3D9 GraphicsDevice: AMD Radeon (TM) R9 Fury Series (Driver Version: 10.17.10.1474, VRAM: 4096MB, SVMEM: 4096MB).^M
GFX  13:18:34.734 Hardware Depth Sampling: Available^M
GFX  13:18:34.734 VRAM texture space: 2048MB^M
GFX  13:18:36.113 PerfNotifiers initialized^M
GFX  13:18:36.123 Lost D3D9 device^M
GFX  13:18:36.128 ^M
GFX  13:18:36.128 D3D9 Device Reset from unknown returned e_errorKindGfx(0)^M
aufkrawall commented 4 years ago

I'm with custom wine-tkg build with proton fullscreen hack. Game chose 1080p as default resolution, which was correctly upscaled to my native 1440p. I could also switch to native 1440p without issues. After that, I replaced D9VK by Gallium Nine. It didn't reset any settings and continued to run in native 1440p without issues.

baryluk commented 4 years ago

Ok. I am reusing my wine prefix that I use for Overwatch, because I have Battle.net installed there already. I will do a separate prefix using Lutris installer later.