ValveSoftware / Proton

Compatibility tool for Steam Play based on Wine and additional components
Other
24k stars 1.05k forks source link

Pavlov VR (555160) #3012

Open mimattr opened 5 years ago

mimattr commented 5 years ago

Compatibility Report

System Information

I confirm:

steam-555160.log (working as expected) steam-555160.log (constant visual stuttering)

Symptoms

Consistent visual stuttering/dropped frames on all application launches except the first. Restarting the Steam client resets the issue (i.e. initial launch works as expected)

Reproduction

  1. Select the title within your Library using the Steam client and press the Play button
  2. Open the in-game menu and select Exit
  3. Select the title within your Library using the Steam client and press the Play button
ryao commented 5 years ago

Try disabling Advanced super sample filtering in SteamVR and see if that helps.

mimattr commented 5 years ago

Try disabling Advanced super sample filtering in SteamVR and see if that helps.

@ryao Unfortunately changing Enable advanced supersample filtering doesn't resolve the issue.

It appears the visual stuttering/dropped frames now occur on most application launches (not all) and produces incorrect frame times:

Screenshot vrcompositor.txt

Perhaps this is related to @Zamundaaa's report? Restarting the Steam client no-longer resets the issue.

System Information

Zamundaaa commented 4 years ago

Pavlov VR now doesn't start anymore. It shows a black window for a little time and then just closes. I suspect this could have something to do with anti-cheat being added. RIP Pavlov for us I guess...

rstrube commented 4 years ago

Update 22 (released on Nov 4th) broke Pavlov VR, although it appears that many Windows users are also affected. The symptoms are that the game will start, a black screen will appear on the monitor (mirror view) and then shortly thereafter crash. As mentioned, anti-cheat seems like a good candidate for being the culprit.

Zamundaaa commented 4 years ago

From the Pavlov discussions it seems like it's using VAC. Is that not supported in Proton? And, more importantly, should that even be an issue? I've read from people on Windows getting "VAC timed out" only once they try to use the online features, nothing on start.

rstrube commented 4 years ago

I've noticed the following error in the Pavlov VR log files:

[1107/135245.259:ERROR:network_change_notifier_win.cc(156)] WSALookupServiceBegin failed with: 8
[1107/145010.644:ERROR:network_change_notifier_win.cc(156)] WSALookupServiceBegin failed with: 8

Over and over again. Googling for this error I did find multiple posts that relate to it.

Here's one for example: https://forum.winehq.org/viewtopic.php?t=29792

rstrube commented 4 years ago

Based on my research it appears that the problem might be related to not having proper bcrypt library support. Pavlov VR probably started using this for it's anti-cheat with the recent update.

You can see here: https://github.com/ValveSoftware/Proton/issues/3042 that there is a similar problem with Gears 5 and Halo MCC. The thread also mentions that there is support for bycrypt being worked on upstream. So hopefully once that's completed and Proton is rebased on it Pavlov should work!

rstrube commented 4 years ago

Looks like support was added in Wine 4.19

Pulled from the other thread:

https://github.com/wine-mirror/wine/commit/b2bbb6f48f24ada876f952e9c0921ca584fe307d https://github.com/wine-mirror/wine/commit/98b230f851f859e9240e8381e3deec5016082ceb

kisak-valve commented 4 years ago

Hello @rstrube, unfortunately, that build of Proton can not be recommended here due to a legally problematic workaround which has been integrated into it.

rstrube commented 4 years ago

Hello @rstrube, unfortunately, that build of Proton can not be recommended here due to a legally problematic workaround which has been integrated into it.

I'm sorry about that, I didn't realize there were legal issues associated with that build of Proton.

Zamundaaa commented 4 years ago

Yay, with the latest Pavlov VR update the black screen is fixed! Tested on Proton 4.11-8 Pavlov then works just fine until about 5-10 seconds in, then it completely hangs. After some time it then exits. steam-555160.log

Zamundaaa commented 4 years ago

Hmm, same behaviour with Proton 5

rstrube commented 4 years ago

I'm still having problems with Proton 5. I've attached two log files in the hopes that someone can figure out what the problem is. The first log file is for when the application crashes. This occurs roughly 5-10 seconds after the main menu appears. https://gist.github.com/rstrube/f3315c1aa1d25486d8a92e91681bf2e1

The second log file is from a scenario where I quickly exit the game before the crash occurs. Perhaps this can shed some light on what is happening. https://gist.github.com/rstrube/a952c44ae47d4418c954c1735deff49e

I've done a diff between the two files, and these lines standout in that they only appear in the log file where the crash occurs. They do not appear in the logfile where I am able to quickly exit before the crash occurs.


6397.952:0040:0041:err:module:find_forwarded_export function not found for forward 'ntdll.RtlDeleteCriticalSection' used by L"C:\\windows\\system32\\kernel32.dll". If you are using builtin L"kernel32.dll", try using the native one instead.
6397.952:0040:0041:err:module:find_forwarded_export function not found for forward 'ntdll.RtlSizeHeap' used by L"C:\\windows\\system32\\kernel32.dll". If you are using builtin L"kernel32.dll", try using the native one instead.
6397.952:0040:0041:err:module:find_forwarded_export function not found for forward 'ntdll.RtlInitializeCriticalSection' used by L"C:\\windows\\system32\\kernel32.dll". If you are using builtin L"kernel32.dll", try using the native one instead.
6397.952:0040:0041:err:module:find_forwarded_export function not found for forward 'ntdll.RtlLeaveCriticalSection' used by L"C:\\windows\\system32\\kernel32.dll". If you are using builtin L"kernel32.dll", try using the native one instead.
6397.952:0040:0041:err:module:find_forwarded_export function not found for forward 'ntdll.RtlEnterCriticalSection' used by L"C:\\windows\\system32\\kernel32.dll". If you are using builtin L"kernel32.dll", try using the native one instead.
6397.952:0040:0041:err:module:find_forwarded_export function not found for forward 'ntdll.RtlReAllocateHeap' used by L"C:\\windows\\system32\\kernel32.dll". If you are using builtin L"kernel32.dll", try using the native one instead.
6397.952:0040:0041:err:module:find_forwarded_export function not found for forward 'ntdll.RtlUnwindEx' used by L"C:\\windows\\system32\\kernel32.dll". If you are using builtin L"kernel32.dll", try using the native one instead.
6397.952:0040:0041:err:module:find_forwarded_export function not found for forward 'ntdll.RtlPcToFileHeader' used by L"C:\\windows\\system32\\kernel32.dll". If you are using builtin L"kernel32.dll", try using the native one instead.
6397.952:0040:0041:err:module:find_forwarded_export function not found for forward 'ntdll.RtlInterlockedFlushSList' used by L"C:\\windows\\system32\\kernel32.dll". If you are using builtin L"kernel32.dll", try using the native one instead.
6397.952:0040:0041:err:module:find_forwarded_export function not found for forward 'ntdll.RtlVirtualUnwind' used by L"C:\\windows\\system32\\kernel32.dll". If you are using builtin L"kernel32.dll", try using the native one instead.
6397.952:0040:0041:err:module:find_forwarded_export function not found for forward 'ntdll.RtlLookupFunctionEntry' used by L"C:\\windows\\system32\\kernel32.dll". If you are using builtin L"kernel32.dll", try using the native one instead.
6397.952:0040:0041:err:module:find_forwarded_export function not found for forward 'ntdll.RtlCaptureContext' used by L"C:\\windows\\system32\\kernel32.dll". If you are using builtin L"kernel32.dll", try using the native one instead.
6397.952:0040:0041:err:module:find_forwarded_export function not found for forward 'ntdll.RtlExitUserThread' used by L"C:\\windows\\system32\\kernel32.dll". If you are using builtin L"kernel32.dll", try using the native one instead.
6397.952:0040:0041:err:module:find_forwarded_export function not found for forward 'ntdll.RtlAllocateHeap' used by L"C:\\windows\\system32\\kernel32.dll". If you are using builtin L"kernel32.dll", try using the native one instead.
6397.952:0040:0041:err:module:find_forwarded_export function not found for forward 'ntdll.RtlInterlockedPushEntrySList' used by L"C:\\windows\\system32\\kernel32.dll". If you are using builtin L"kernel32.dll", try using the native one instead.
6397.952:0040:0041:err:module:find_forwarded_export function not found for forward 'ntdll.RtlInitializeSListHead' used by L"C:\\windows\\system32\\kernel32.dll". If you are using builtin L"kernel32.dll", try using the native one instead.
6397.952:0040:0041:err:module:find_forwarded_export function not found for forward 'ntdll.RtlInterlockedPopEntrySList' used by L"C:\\windows\\system32\\kernel32.dll". If you are using builtin L"kernel32.dll", try using the native one instead.
6397.952:0040:0041:err:module:find_forwarded_export function not found for forward 'ntdll.VerSetConditionMask' used by L"C:\\windows\\system32\\kernel32.dll". If you are using builtin L"kernel32.dll", try using the native one instead.
6397.952:0040:0041:err:module:find_forwarded_export function not found for forward 'ntdll.RtlEncodePointer' used by L"C:\\windows\\system32\\kernel32.dll". If you are using builtin L"kernel32.dll", try using the native one instead.
6397.952:0040:0041:err:module:find_forwarded_export function not found for forward 'ntdll.RtlDecodePointer' used by L"C:\\windows\\system32\\kernel32.dll". If you are using builtin L"kernel32.dll", try using the native one instead.
6397.952:0040:0041:trace:seh:RtlAddFunctionTable 0x7f48582e3000 6692 7f4857ff0000
6397.952:0040:0041:trace:seh:raise_exception code=80000003 flags=0 addr=0x1f8418a2 ip=1f8418a3 tid=0041```
Zamundaaa commented 4 years ago

Same difference between the two files. Those errors are also the same with Proton 4.11 steam-555160 - manual quit.log steam-555160 crash.log

rstrube commented 4 years ago

It appears that Pavlov VR is using EAC (Easy Anti Cheat) which causes problems with Proton Edit: looks like they are using Xigncode3 for their anti-cheat. This explains all the problems that we've been having since the Nov 2019 release.

Zamundaaa commented 4 years ago

The discussions on Steam complain(ed) about "VAC timed out" messages. Can they use both VAC and EAC?!?

rstrube commented 4 years ago

The discussions on Steam complain(ed) about "VAC timed out" messages. Can they use both VAC and EAC?!?

No idea. I might ask the developers and see if what anti-cheat scheme they're using. Edit: I've posted on their Discord, hopefully somebody will confirm what anti-cheat system they use. I had another user on reddit explain that the problems since the Nov 2019 update were caused by EAC, hence me posting about it here. Perhaps this was not accurate though? Not sure.

rstrube commented 4 years ago

OK, I was able to figure it out. They are using Xigncode3 for the anti-cheat! I actually found some people posting about ways to circumvent the anti-cheat and deconstructed the calls to the Pavlov VR binaries. Take a look at this: https://hastebin.com/utalotuwav.shell

rstrube commented 4 years ago

I had a chat with the head developer on Discord the other night. He said that they're considering making the anti-cheat optional in a future update of the game. That would mean that users could opt out and play on servers that are not secured via anti-cheat. Please note that they are only considering this as a feature, so nothing is guaranteed.

It also seemed that the head developer wasn't very happy with anti-cheat in general and felt that in some ways it caused more trouble than the problems it solved.

So here's hoping that anti-cheat will be removed, or at least made optional in a future release!

mimattr commented 3 years ago

@rstrube @Zamundaaa The original visual issues appear to be resolved using the Pavlov "beta" branch with Proton 5.13-2 and SteamVR 1.15.11, multiplayer is also now working as expected. Can you confirm?

System Information

I confirm:

Issues

Zamundaaa commented 3 years ago

I can confirm that! Thanks for the notification :D

Rosentti commented 1 year ago

Newest beta starts to the EAC launcher, then errors. Bypassing the EAC launcher using bash -c 'exec "${@/Pavlov.exe/Pavlov\/Binaries\/Win64\/Pavlov\-Win64\-Shipping.exe}"' -- gamemoderun %command% Gets to the main menu, but nothing shows up inside the headset. This might be the same issue as Inside The Backrooms, which does not work in VR mode either.

kisak-valve commented 1 year ago

Pavlov VR Update 29

Issue transferred from https://github.com/ValveSoftware/Proton/issues/6848. @Maxb0tbeep posted on 2023-06-14T20:42:04:

Compatibility Report

System Information

I confirm:

steam-555160.log

Symptoms

Since the new update 29 was released, EAC shows this error when I launch the game: this

Reproduction

Open the game with the new update.