Frogging-Family / wine-tkg-git

The wine-tkg build systems, to create custom Wine and Proton builds
863 stars 156 forks source link

Quake Champions plays on Proton Expirimental but not TKG #510

Open GoLD-ReaVeR opened 3 years ago

GoLD-ReaVeR commented 3 years ago

What setting should I be looking for? :P

The long and short of it is is that I got the game working with the experimental version where as both tkg and stable just exit to desktop with no message whatsoever. The experimental version seems to suffer stutters and freezes which according to the people on the forum are related to the DXVK_ASYNC=true being required to play the game. Presumably that variable is already available in your build, so I'd like to know how I can start the game with it.

Tk-Glitch commented 3 years ago

The experimental version seems to suffer stutters and freezes which according to the people on the forum are related to the DXVK_ASYNC=true being required to play the game

It's not "required" at all, and that option and patch is still unsafe to use on multiplayer games. However the game will need some time to build caches on each maps that's for sure as it has a large pile of shaders.

Presumably that variable is already available in your build, so I'd like to know how I can start the game with it.

It's not by default (and won't ever be) due to it possibly getting you banned in various games. You'll need to build dxvk with the patch enabled, then inject that through the "prebuilt" dxvk option in your .cfg.

As to what's needed for the game to run, you'll need _use_staging="true", _quake_champions_fix="true" and _protonify="true" as a bare minimum. amdags-proton.mypatch in your community-patches array might be needed, but I'm not totally sure.

Fresh 6.17r6 build: Screenshot_20210917_152010

GoLD-ReaVeR commented 3 years ago

Thanks!

GoLD-ReaVeR commented 3 years ago

So I went ahead and compiled the latest version. Quake Champions is stuck at the running stage but doesn't actually open a window and hangs there.

GoLD-ReaVeR commented 3 years ago

Monster Hunter World doesn't start either.

GoLD-ReaVeR commented 3 years ago

Both are showing this exception:

206 789738.251:00b8:00bc:err:winediag:is_broken_driver Broken NVIDIA RandR detected, falling back to RandR 1.0. Please consider using the Nouveau driver instead. 207 789738.372:00b8:00bc:trace:seh:dispatch_exception code=c0000005 flags=0 addr=00007F6AAC0ADA0E ip=00007F6AAC0ADA0E tid=00bc 208 789738.372:00b8:00bc:warn:seh:dispatch_exception EXCEPTION_ACCESS_VIOLATION exception (code=c0000005) raised 209 789738.372:00b8:00bc:trace:seh:dispatch_exception rax=00000000000003df rbx=0000000000000000 rcx=00000000ffff3e00 rdx=0000000000000000 210 789738.372:00b8:00bc:trace:seh:dispatch_exception rsi=00007f6aaad7c28d rdi=ffffffffdb3b4356 rbp=0000000000000000 rsp=000000000021d3d8 211 789738.372:00b8:00bc:trace:seh:dispatch_exception r8=000000000023f9d0 r9=0000000000000001 r10=0000000000000008 r11=0000000000000009 212 789738.372:00b8:00bc:trace:seh:dispatch_exception r12=000000000021d750 r13=000000000021e160 r14=000000000027dff0 r15=000000000027f080 213 789738.372:00b8:00bc:trace:seh:call_stack_handlers found wine frame 000000000021EB80 rsp 000000000021ECD0 handler 000000007BC64DF0 214 789738.372:00b8:00bc:trace:seh:call_teb_handler calling TEB handler 000000007BC64DF0 (rec=000000000021D1A0, frame=000000000021EB80 context=000000000021C6F0, dispatch=000000000021C5C0) 215 789738.372:00b8:00bc:trace:seh:RtlRestoreContext returning to 000000007BC64C8A stack 000000000021EAD0 216 789738.372:00b8:00bc:trace:loaddll:free_modref Unloaded module L"C:\windows\system32\winex11.drv" : builtin 217 789738.376:00b8:00bc:trace:loaddll:build_module Loaded L"C:\windows\system32\uxtheme.dll" at 00000002F7230000: builtin 218 789738.376:00b8:00bc:trace:loaddll:free_modref Unloaded module L"C:\windows\system32\uxtheme.dll" : builtin 219 789738.386:00b8:00bc:err:explorer:initialize_display_settings Failed to query current display settings for L"\\.\DISPLAY1". 220 789738.391:00b8:00bc:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded. 221 789738.391:00b8:00bc:err:winediag:nodrv_CreateWindow Unknown error (998). 222 789738.391:00b8:00bc:err:systray:initialize_systray Could not create tray window

Tk-Glitch commented 3 years ago

What about _staging_version="v6.17" ?

MHW works fine here so from your log I assume it's some Nvidia fun. Screenshot_20210918_150654 .

GoLD-ReaVeR commented 3 years ago

That one gives me patching errors during build.

Tk-Glitch commented 3 years ago

Ok, I'll fix asap

GoLD-ReaVeR commented 3 years ago

For the record, I've never changed this line, but the community_patches config reads

_community_patches="amdags-proton.mypatch atiadlxx-proton.mypatch FinalFantasyXVHack.mypatch ntdll_Map_top-down_if_dll_characteristics_include_DYNAMIC_BASE.mypatch Shell32-CreateDirectoryInDestinationInFileOp-Move-multiop.mypatch winex11_limit_resources-nmode.mypatch unhide-prefix-update-window.mypatch"

Could it be that any of these patches are causing the issue?

EDIT: Nope

GoLD-ReaVeR commented 3 years ago

Oh, something else I found in the logs:

206 873575.899:00b4:00b8:err:winediag:is_broken_driver Broken NVIDIA RandR detected, falling back to RandR 1.0. Please consider using the Nouveau driver instead. 207 873576.021:00b4:00b8:trace:seh:dispatch_exception code=c0000005 flags=0 addr=00007F380F068A0E ip=00007F380F068A0E tid=00b8 208 873576.021:00b4:00b8:warn:seh:dispatch_exception EXCEPTION_ACCESS_VIOLATION exception (code=c0000005) raised 209 873576.021:00b4:00b8:trace:seh:dispatch_exception rax=00000000000003dd rbx=0000000000000000 rcx=00000000ffff3e00 rdx=0000000000000000 210 873576.021:00b4:00b8:trace:seh:dispatch_exception rsi=00007f380dd3728d rdi=ffffffffe90a7359 rbp=0000000000000000 rsp=000000000021d3d8 211 873576.021:00b4:00b8:trace:seh:dispatch_exception r8=000000000023f9d0 r9=0000000000000001 r10=0000000000000008 r11=0000000000000009 212 873576.021:00b4:00b8:trace:seh:dispatch_exception r12=000000000021d750 r13=000000000021e160 r14=000000000027df90 r15=000000000027f020 213 873576.021:00b4:00b8:trace:seh:call_stack_handlers found wine frame 000000000021EB80 rsp 000000000021ECD0 handler 000000007BC64DD0 214 873576.021:00b4:00b8:trace:seh:call_teb_handler calling TEB handler 000000007BC64DD0 (rec=000000000021D1A0, frame=000000000021EB80 context=000000000021C6F0, dispatch=000000000021C5C0) 215 873576.021:00b4:00b8:trace:seh:RtlRestoreContext returning to 000000007BC64C6A stack 000000000021EAD0 216 873576.022:00b4:00b8:trace:loaddll:free_modref Unloaded module L"C:\windows\system32\winex11.drv" : builtin 217 873576.025:00b4:00b8:trace:loaddll:build_module Loaded L"C:\windows\system32\uxtheme.dll" at 00000002F7230000: builtin 218 873576.025:00b4:00b8:trace:loaddll:free_modref Unloaded module L"C:\windows\system32\uxtheme.dll" : builtin 219 873576.035:00b4:00b8:err:explorer:initialize_display_settings Failed to query current display settings for L"\\.\DISPLAY1". 220 873576.039:00b4:00b8:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded. 221 873576.039:00b4:00b8:err:winediag:nodrv_CreateWindow Unknown error (998). 222 873576.039:00b4:00b8:err:systray:initialize_systray Could not create tray window

Usually when something kills an application I look for exceptions, but those errors are stating it can't create a window, which is peculiar of course since everything else works fine. Edit: notice the unexpected unloading of the winex11.drv, perhaps you can find something in that module that causes problems?

Tk-Glitch commented 3 years ago

Maybe worth trying without the FS hack. There was a small change a couple days ago that might be problematic with it. I couldn't find an issue on mesa, but Nvidia wasn't tested so.. Could be the issue at hand.

GoLD-ReaVeR commented 3 years ago

FS hack is already disabled. It caused problems with MHW some time ago remember? And it gives better borderless window behavior where opening menus allows me to move the mouse to my second monitor.

Tk-Glitch commented 3 years ago

Oh, right, I remember. Upstream regression then. You're not using Wayland, right?

Tk-Glitch commented 3 years ago

You could try adding/removing winex11_limit_resources-nmode.mypatch from your community patch array also.

GoLD-ReaVeR commented 3 years ago

I'm not using wayland, still using xorg to my knowledge.

GoLD-ReaVeR commented 3 years ago

You could try adding/removing winex11_limit_resources-nmode.mypatch from your community patch array also.

I already tried the hail mary approach of disabling all community patches, it didn't help. The patch is included in the array, so by default it's included.

Tk-Glitch commented 3 years ago

After searching a bit, it might actually be an OS/Driver configuration issue. The exact same behavior has been reported over the years on various different wine versions that worked fine for most people. Annoyingly, the people who fixed it are only stating they reinstalled their OS, so far.

GoLD-ReaVeR commented 3 years ago

Experimental and other proton versions haven't given me this problem, the 6.15 versions I have are also running fine. There is a change to the code between the two versions that X doesn't seem to like.

Tk-Glitch commented 3 years ago

Other question, did you try a fresh prefix?

GoLD-ReaVeR commented 3 years ago

I don't want to refresh my prefixes with proton as that generally tends to wipe my save data.

GoLD-ReaVeR commented 3 years ago

I tried compiling proton-tkg-git 6.17.r11.g640f5f7d-1, but it seems to have a patch failure

Applying hotfix pulse_reverts-3.myearlypatch patching file dlls/winepulse.drv/Makefile.in Hunk #1 FAILED at 1. 1 out of 1 hunk FAILED -- saving rejects to file dlls/winepulse.drv/Makefile.in.rej

Tk-Glitch commented 3 years ago

r11 will need some rebasing work.

Tk-Glitch commented 3 years ago

I don't want to refresh my prefixes with proton as that generally tends to wipe my save data.

You could backup the prefix first.

GoLD-ReaVeR commented 3 years ago

Wiping prefix doesn't work either.

GoLD-ReaVeR commented 2 years ago

More things from experimental, despite having no fps cap the game doesn't take more than 50% CPU and doesn't max out on GPU either (70%), this implies there's a stall somewhere. And when I set the texture quality to low the game looks like complete ass and still manages to use 5GB VRAM. I don't know which problem is caused where, but either the game is stupid (perfectly plausible) or there might be a problem with dxvk allocating too much ram. Any ideas?

Tk-Glitch commented 2 years ago

470.74 driver supposedly fixes an issue on nvidia leading to memory leak/overusage. If you're on an older version it's worth a shot. I cannot reproduce your issue on my 5700XT/5950x machine and I'm getting a steady 100% GPU usage (as long as it's not compiling new shaders). The game will easily eat 10GB VRAM on ultra settings though.

Tk-Glitch commented 2 years ago

Also, if you have logging enabled, disable it.

GoLD-ReaVeR commented 2 years ago

Logging disabled, 470.74 driver installed (is not in your nvidia all package, I had to select a custom release in the script), I did one clan arena game which seemed to be mangable, when to deathmatch online and the video memory hit 100% again at 8GB. Up to 1GB is in use by other applications (just like before), but it's safe to say that this didn't do the trick. I'll check to see if the latest tkg will now work again with QC and MHW.

EDIT: Still doesn't work.

Tk-Glitch commented 2 years ago

470.74 driver installed (is not in your nvidia all package, I had to select a custom release in the script)

But it is https://github.com/Frogging-Family/nvidia-all/commit/20f91f582c490b3dc4eb287484ca7bf5bc5ba3ff :thinking:

EDIT: Still doesn't work.

I can't reproduce the issue. It works on both my 5700XT and 980Ti machines. Single monitor setups though.

GoLD-ReaVeR commented 2 years ago

Hmm, I have 2 monitors, so dual monitor set up. I keep forgetting the commands, do you have those on hand? To run winecfg on a proton prefix so I can turn on emulate virtual desktop?

EDIT: virtual desktop also doesn't work.

GoLD-ReaVeR commented 2 years ago

The issue still hasn't been resolved. My last working version is proton-tkg-git-6.15.r7.g8d34769e-1-x86_64. Could you perhaps create a diff on winex11.drv code between the two versions so I can compare the code? Could you give me instructions to compile this without the staging patches? (last time I tried it failed)

GoLD-ReaVeR commented 2 years ago

I grabbed the glorious eggroll build (latest, 6.19) and it ran fine. If it turns out to be a compilation issue it'll be a very weird one. That said, the glorious eggroll build with its dxvk_async enabled (supposedly) didn't do much to improve performance, my CPU is still at 25% per core and my GPU is at 50% while the framerate is hanging between 80 and 120.

Tk-Glitch commented 2 years ago

The async patch doesn't improve performance. It only skips drawing shaders that aren't compiled yet (and that's why it's not recommended to use it on any kind of online game as it might trigger anticheats/antiexploits), while the regular behavior is to wait for the shaders to be compiled before drawing. If anything it'll lead to higher average CPU load as you can get many parallel shader compilations ongoing while still being able to move around and trigger new shader compilations. Once all shaders are compiled, there is no difference patched or unpatched.

Regarding the issue at hand, and since all other proton builds are using the FS hack, it could be the childwindow patch. Also check that you have libxcomposite (and its lib32 version as well) installed.

GoLD-ReaVeR commented 2 years ago

I already tried disabling childwindow patch, I'll try enabling fshack and see where that leads. libxcomposites are installed.

GoLD-ReaVeR commented 2 years ago

MHW runs with FS hack enabled.

QC: crashes on start up, the application seems to recognize it's crashed and requests me sending an error report.

GoLD-ReaVeR commented 2 years ago

1530565.217:0128:012c:fixme:ddraw:ddraw7_Initialize Ignoring guid {42945821-1b00-234b-9b0e-073213285a8d}. 661 1530565.219:0128:012c:trace:loaddll:build_module Loaded L"C:\windows\system32\dxvk_config.dll" at 0000000317D60000: native 662 1530565.270:0128:012c:trace:seh:dispatch_exception code=c0000005 flags=0 addr=000000007BC28E38 ip=000000007BC28E38 tid=012c 663 1530565.270:0128:012c:warn:seh:dispatch_exception EXCEPTION_ACCESS_VIOLATION exception (code=c0000005) raised 664 1530565.270:0128:012c:trace:seh:dispatch_exception rax=0000000000140078 rbx=0000000000000002 rcx=000000000022b438 rdx=000000000022ac48 665 1530565.270:0128:012c:trace:seh:dispatch_exception rsi=0000000000140000 rdi=000000000022b360 rbp=0000000000140000 rsp=000000000011d1c8 666 1530565.270:0128:012c:trace:seh:dispatch_exception r8=00000000000007f0 r9=184553550000003a r10=0000006800730069 r11=000000000022ac60 667 1530565.270:0128:012c:trace:seh:dispatch_exception r12=000000000022b358 r13=0000000000000000 r14=0000000000140108 r15=0000000000140100

results in deadlocks on the heap and loader it looks like, let me see if I can reproduce regular crash.

GoLD-ReaVeR commented 2 years ago

For whatever reason the application just started.

Tk-Glitch commented 2 years ago

The issue with games not working without FShack was fixed by disabling mk11 patch when the FShack is disabled btw.