I spend a lot of time in VRChat. I recently moved from the Valve Index to the Pimax 8KX. However, I was very hesitant to try Pimax for a long time because nobody else I knew on VRChat used one or even heard of anybody using one, and there’s virtually no information I’ve been able to find on how to run VRChat on Pimax. Most of the information out there seems to be for flight sims, where the 8KX seems to have pretty good penetration.
This guide is written particularly with an eye toward VRChat users who currently own an Index (very popular and considered the best VR gear on VRChat) who may be considering switching to the Pimax 8KX.
The Pimax 8KX is able to produce a substantially better and more immersive experience on VRChat… if you are able to wield it and set it up well. The wide FOV greatly adds to the immersion factor and makes the world feel more real. And it also has several other effects I did not expect, like reducing reliance on mirrors because your vision is no longer restricted.
VRChat is inherently heavy to run. And unlike most games, the weight of VRChat varies wildly depending mostly on how many other avatars there are in the world. You could be alone with one other person, or it could be a dance party with 50 people. Some worlds are also very heavy all by themselves.
Even on the Index, it can be a struggle to get sufficient frame rate sometimes. So it’s worse for the 8KX’s dual 4K screens.
I’m using an nVidia 3080 Ti with an AMD 5900X CPU. I’m generally aiming for ~75 FPS or better. While it’s possible to run VRChat on an 8KX with lesser GPU’s (ie. 20 series nVidia), I expect you would quickly reach territory where it has no advantages over the Index. The 8KX is a beast, and it needs a beast of a PC to really drive it to its potential. Even my firebreathing PC struggles.
FOV: I set this to large. If you reduce the FOV to small (equivalent to Index FOV), performance in VRChat becomes very similar to the Index (albeit with much lower max FPS). But doing that kills the advantage of the 8KX over the Index. You’re better off using an Index in that case. I was not willing to sacrifice the FOV I bought the 8KX for. Large FOV or bust!
Resolution: FPS is even more important to immersion than FOV. So if you can’t sacrifice FPS or FOV, the sliding scale has to be clarity. I leave the render quality at 1.0 in pitool and use the resolution slider in SteamVR.
Using an eye chart testing world, I determined that the 8KX’s clarity at 50% (3188x1996) is about equal to the Index’s clarity. In a world with few people in it, I could reasonably run at 100% (5044x3160). I found that I could run down to 30% (2764x1728) minimum in a highly populated, super heavy world. Below that, clarity became unacceptably poor.
Since resolution can be adjusted in real time in SteamVR, I use this to deal with the wide swings in heaviness of VRChat. If my FPS is tanking at a big dance party, I can just drop the resolution a peg or three on the spot as needed.
MSAA: VRChat enables 4x MSAA antialiasing by default (in its own settings under Safety → Performance Options → Adv. Graphics). I found in my testing that turning this off increased FPS by 48%, and that it was better for overall video quality to use the performance that was freed to increase rendering resolution instead. That’s the reverse of what you’d expect.
If 4x MSAA is enabled, then you’ll have to drop from 100% resolution to 50% resolution to achieve similar frame rate.
Mirrors: MIrrors in VRChat are restricted to a maximum rendering resolution of 2048x2048. This is a severe problem for the 8KX. At 100%, you’re rendering at 5044x3160. But mirrors are only rendering at 2048x1284. Due to the wide aspect ratio, the mirror ends up rendering at a much lower pixel density than with the Index, and so the image in mirrors is badly degraded and becomes very blocky. It’s terrible.
A simple mod exists which raises the maximum rendering resolution of mirrors in order to avoid this problem, but unfortunately mods are against the VRChat AUP. Even one as innocuous and completely impossible for the service to detect as this one is not allowed. Alas.
There are multiple high end VR headsets releasing this year which also exceed VRChat’s arbitrary mirror resolution limit, so hopefully VRChat will notice this and update their software soon.
Fixed Foveated Rendering: I set this to Balanced in pitool. This will focus resolution at the center rather than the edges. In my testing, this helped FPS substantially and was frankly needed. It increases FPS more than going down to Normal FOV does. Large FOV isn’t really achievable in VRChat without this setting turned on. In my testing in a heavy world, turning FFR off dropped my frame rate from 73 to 46.
Reducing FOV from Large to Normal rather than using FFR dropped the frame rate to 64 which isn’t so bad. Some people find FFR or the blurred edges at large FOV to be too objectionable, so using Normal FOV instead is a viable alternative.
Contrast and Brightness: All of the content of VRChat is player created. Curiously for some reason most world creators seem obsessed with making worlds dark and also dimly lighting the avatars. To add to that, the textures that people put on their avatars are often pushing the gamut in either bright or dark directions or both. Professional games, by contrast, tend to be much better lit, brighter, and pay attention to the contrast limits of the many varied kinds of displays the game could be played on.
So while I’ve generally seen recommendations for +2/-3 or +1/-2 on these forums, in VRChat these values tend to make it hard to see. Too much gets blown out and lost in shadow. I’ve found +1/0 to produce best results. That is +1 contrast, default brightness. This is at 100% backlight.
At this setting, A-B testing against the Index in VRChat looks about the same to me.
Native vs Upscaling: Set this to Native. Coming from the Index and considering the heaviness of VRChat, I was initially expecting to run upscaling mode. Especially so I could get that 110fps max. However, inworld eye chart testing showed that clarity is substantially higher at the same SteamVR rendering resolution in native than it is in upscaling.
At the same input resolution in native mode and upscaling mode, it was possible to read line 19 (out of 25) on the eye chart in native, while in upscaling mode I could only read up to line 15. Cranking resolutions higher, it was possible to read up to line 24 in native mode while the best that upscaling mode could achieve was only line 17 (that part you would expect).
So, to my surprise, upscaling mode did not provide any FPS boost over native mode. Upscaling mode only has a higher max FPS. But VRChat tends to run in the 75fps or lower range anyway even on the Index, so the cap is fairly moot unless you’re in a mostly empty world.
Parallel Projection Mode: This is not needed for VRChat and should definitely be turned off since it eats a lot of performance.
nVidia Texture Filtering Quality: This is a setting in nVidia control panel. I changed this to high performance, and it provided up to a 12% FPS boost at large FOV on the 8KX. How much of a difference it makes varies depending on resolution settings. I was unable to notice any video quality loss from changing this setting on the 8KX, so it seemed to be a free FPS boost.
Smart Smoothing and Compulsive Smoothing: I generally leave these turned off. VRChat is a difficult case for reprojected frames, and you’re generally better off just trying to get as many real frames as you can. The one exception that I’ve found is when you’re in a very heavy world with 40+ avatars and frame rate is tanking even after lowering the resolution. The further step you can take is turning on compulsive smoothing 1/2 (1/3 is not recommended). This will reduce the FPS target to half and synthesize every other frame. This can really help in that specific circumstance.
This is also one of the few settings in Pitool that you can change on the fly without restarting VRChat. That’s important because frequently having to leave and get back to the world you’re in would be disruptive, inconvenient, and sometimes even impossible.
Audio: I recommend the KDMAS over the DMAS for VRChat. Even though the DMAS is considered higher tier and is more Index like (ie. off ear), its audio performance is inferior especially when you’re used to the Index’s excellent audio. The DMAS also suffers from microphone bleed (hearing its own audio output) in VRChat which the Index’s off ear solution does not.
The KDMAS, on the other hand, is able to produce better audio than the Index. It requires 3rd party EQ to achieve this, and I will cover that in a separate post.
The 8KX’s microphone also requires the application of EQ to perform well, and I will also be posting about that separately. Even at best tuning, the 8KX’s microphone is not able to equal the Index’s truly excellent microphone. But it does alright.
Conclusion: The struggle is mostly about frame rate while pushing so many pixels. In this guide, I’ve identified the main knobs that you can turn to adjust it, some of which aren’t obvious. At first, it didn’t seem like VRChat was ever going to be able to run well on the 8KX without giving up on wide FOV. But now it does, and it’s really good.
It has also proven to be stable running VRChat, which is very important to me. Sometimes I’m the one running the party, and it’s a big problem if the host crashes. My 8KX has been able to handle the job.
I’m hoping that this guide will help more people get into using the Pimax 8KX with VRChat so they can enjoy what I’ve been enjoying. I still love the Index, and I still recommend it to most people. It’s much less expensive and much easier to use and is still a top performer. But the 8KX offers even higher performance.