mirror of
https://gitlab.com/lvra/lvra.gitlab.io.git
synced 2025-04-28 10:18:29 +02:00
Merge branch 'eac-message' into 'main'
VRChat EAC: Rewrite See merge request lvra/lvra.gitlab.io!91
This commit is contained in:
commit
b3fc86f9a4
2 changed files with 39 additions and 3 deletions
|
@ -8,6 +8,8 @@ IgnoreURLs:
|
||||||
# For "Edit this page" and "Last modified by":
|
# For "Edit this page" and "Last modified by":
|
||||||
- "https://gitlab.com/lvra/lvra.gitlab.io/-/edit"
|
- "https://gitlab.com/lvra/lvra.gitlab.io/-/edit"
|
||||||
- "https://gitlab.com/lvra/lvra.gitlab.io/-/commit"
|
- "https://gitlab.com/lvra/lvra.gitlab.io/-/commit"
|
||||||
|
# Uses Cloudflare to block bots:
|
||||||
|
- "https://www.pcgamingwiki.com/"
|
||||||
# IgnoreDirs:
|
# IgnoreDirs:
|
||||||
# - "lib"
|
# - "lib"
|
||||||
CacheExpires: "6h"
|
CacheExpires: "6h"
|
||||||
|
|
|
@ -5,26 +5,58 @@ title: Easy Anti-Cheat
|
||||||
|
|
||||||
# Easy Anti-Cheat
|
# Easy Anti-Cheat
|
||||||
|
|
||||||
Sometimes, seemingly randomly, you can get an EAC error during the VRChat startup/login screen. It looks like a message box, with the title "Anti-cheat Error", no actual message text, and a single button labeled "Quit".
|
Running VRChat on Linux *used to be* prone to unwarranted EAC errors. Sometimes, seemingly randomly, you would get an EAC error during the VRChat startup/login screen. It looks like a message box, with the title "Anti-cheat Error", a message referring to a filepath that failed to validate integrity, and a single button labeled "Quit". This would trigger even when all files were unmodified.
|
||||||
|
|
||||||
## Recommended Workaround
|
Thankfully, at some point in October or November 2024, **these EAC errors resolved themselves**. While it is still possible to get EAC errors for other reasons, the race condition that made it a coin-flip on startup no longer plagues us.
|
||||||
|
|
||||||
|
If you are running into EAC errors still, try these options:
|
||||||
|
- Trigger a reinstall of the EAC runtime by moving the [Proton prefix for VRChat](https://www.pcgamingwiki.com/wiki/VRChat#Configuration_file.28s.29_location) somewhere else, forcing Steam to regenerate it on next launch
|
||||||
|
- Make sure you are not blocking the EAC domains, such as `modules-cdn.eac-prod.on.epicgames.com`
|
||||||
|
- Do not set `SDL_VIDEODRIVER` env var anywhere - this breaks the splash screen
|
||||||
|
- Do not use the `VR_OVERRIDE` env var
|
||||||
|
|
||||||
|
The below workaround shouldn't be necessary anymore, but is kept here in case the issue comes back someday.
|
||||||
|
|
||||||
|
## Workaround
|
||||||
|
|
||||||
Wrapper script for starting VRChat: [startvrc.sh on GitHub](https://gist.github.com/galister/ca63a5795694e4c839a8e7f4bb8a35bc)
|
Wrapper script for starting VRChat: [startvrc.sh on GitHub](https://gist.github.com/galister/ca63a5795694e4c839a8e7f4bb8a35bc)
|
||||||
|
|
||||||
|
|
||||||
Set startup options for VRChat:
|
Set startup options for VRChat:
|
||||||
`/path/to/startvrc.sh %command%`
|
`/path/to/startvrc.sh %command%`
|
||||||
|
|
||||||
If you're using extra env vars, they should go first:
|
If you're using extra env vars, they should go first:
|
||||||
`PRESSURE_VESSEL_FILESYSTEMS_RW=/run/user/1000/monado_comp_ipc /path/to/startvrc.sh %command%`
|
`PRESSURE_VESSEL_FILESYSTEMS_RW=/run/user/1000/monado_comp_ipc /path/to/startvrc.sh %command%`
|
||||||
|
|
||||||
|
<!--
|
||||||
|
|
||||||
## Root Cause
|
## Root Cause
|
||||||
|
|
||||||
We are still trying to determine the cause.
|
We are still trying to determine the cause.
|
||||||
|
|
||||||
|
Here is what we know:
|
||||||
|
- The filepath in the message always refers to a file within `steamapps/common/VRChat`.
|
||||||
|
- EAC errors can trigger even when all these files are completely pristine.
|
||||||
|
- The triggering file can be different each time.
|
||||||
|
- EAC doesn't care about any of the files in `AppData/LocalLow/VRChat`. This means yt-dlp.exe, logs, the local cache, etc are not subject to integrity checks.
|
||||||
|
- Getting multiple EAC errors in a row is very possible.
|
||||||
|
- Some EAC info is also written to the VRChat log file.
|
||||||
|
- EAC errors can also happen on Steam Deck.
|
||||||
|
- EAC errors can happen regardless of Proton version, kernel version, distro.
|
||||||
|
- EAC errors can happen regardless of whether you're in in VR or desktop mode.
|
||||||
|
- The message box used to have no actual message text. The message returned in a VRChat update, possibly on the serverside and without a steam depot update, sometime between 2024-03-25 and 2024-03-28.
|
||||||
|
|
||||||
It is likely caused by a race condition. Closing unnecessary apps or otherwise **lowering your CPU usage** before starting VRChat seems to make the EAC error happen significantly less often. It is safe to crank the CPU usage back up after the home world has loaded.
|
It is likely caused by a race condition. Closing unnecessary apps or otherwise **lowering your CPU usage** before starting VRChat seems to make the EAC error happen significantly less often. It is safe to crank the CPU usage back up after the home world has loaded.
|
||||||
|
|
||||||
|
Some approaches we haven't tried or fully documented:
|
||||||
|
|
||||||
|
- Is it tied to network speed? Slow down connection to EAC servers - DNS delay or traffic shaping
|
||||||
|
- Is it tied to filesystem? Compare between ext4, btrfs, etc
|
||||||
|
- Analyze EAC-related network traffic
|
||||||
|
- Blocking EAC servers
|
||||||
|
- Slowing down IO read speed
|
||||||
|
- Debugging with winedbg or bpftrace (because strace and gdb both trigger an immediate splash screen and disconnect)
|
||||||
|
- REing EAC itself
|
||||||
|
|
||||||
The following sections do not fix the issue, but are still kept on the wiki to dispel rumors and record research.
|
The following sections do not fix the issue, but are still kept on the wiki to dispel rumors and record research.
|
||||||
|
|
||||||
## (Outdated) glibc dt_gnu_hash
|
## (Outdated) glibc dt_gnu_hash
|
||||||
|
@ -44,3 +76,5 @@ As of 2024-02-09, Arch Linux no longer ships with this flag.
|
||||||
- Gentoo users could enable the fix using the `hash-sysv-compat` USE flag on `sys-libs/glibc`.
|
- Gentoo users could enable the fix using the `hash-sysv-compat` USE flag on `sys-libs/glibc`.
|
||||||
|
|
||||||
To reiterate, this glibc flag does _not_ appear to fix VRChat's particular flavor of EAC failures.
|
To reiterate, this glibc flag does _not_ appear to fix VRChat's particular flavor of EAC failures.
|
||||||
|
|
||||||
|
-->
|
||||||
|
|
Loading…
Add table
Reference in a new issue