Proton: Pavlov VR (555160)

Created on 25 Aug 2019  路  19Comments  路  Source: ValveSoftware/Proton

Compatibility Report

  • Name of the game with compatibility issues: Pavlov VR
  • Steam AppID of the game: 555160

System Information

I confirm:

  • [x] that I haven't found an existing compatibility report for this game.
  • [x] that I have checked whether there are updates for my system available.

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
Game compatibility - Unofficial XAudio2

Most helpful comment

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!

All 19 comments

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

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

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...

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.

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.

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

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!

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

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.

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

Hmm, same behaviour with Proton 5

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

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

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.

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

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.

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

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!

Was this page helpful?
0 / 5 - 0 ratings

Related issues

Elkasitu picture Elkasitu  路  3Comments

leifmetcalf picture leifmetcalf  路  3Comments

matou68 picture matou68  路  3Comments

AwesamLinux picture AwesamLinux  路  3Comments

shanefagan picture shanefagan  路  3Comments