How-To Guide for running VRChat on the Pimax 8KX

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.

6 Likes

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.

I figured I should update this guide since some things have changed both with VRChat and with Pimax since I originally posted it, and so some of the advice no longer applies or needs to be changed to reflect the current state of affairs.

EAC: VRChat has rolled out their Easy Anti-Cheat (EAC) release which both eliminates using a mod to fix the mirror problem with Pimax and stops Pimax’s foveated rendering feature from working. These issues significantly cripple running VRChat on a Pimax headset now.

In order to mitigate these issues, it is now necessary to run VRChat at lower FOV and lower rendering resolution.

Previously I was recommending large FOV at 100% rendering resolution with FFR enabled and MSAA off. Unfortunately, the mirror problem is exasperated at these settings, and the frame rate now tanks because FFR no longer works.

Now my best recommendation is to run normal FOV at 50% rendering resolution with 4x MSAA. FFR will not work whether you have it enabled in Pitool settings or not. Mirrors will still be blurry but at least usable and frame rate will be okay. Since rendering resolution in mirrors is arbitrarily limited, it is better to lower resolution and use MSAA to get the most out of the reduced number of pixels.

The overall display quality will be reduced over how well VRChat previously ran pre-EAC. This is the best compromise of settings available now.

Audio: My recommendations about KDMAS vs DMAS apply to the older 8KX (2075). Reportedly the new 8KX model has been internally redesigned (despite still having the same name) and may have better audio with the DMAS now. I don’t have one, so I can’t test that myself.

1 Like

Wow VRChat’s SteamVR rating is down to … Get this … 14%.

@PimaxUSA Indeed. VRChat has made some very poor decisions in this matter, and they’re suffering for it right now. However, I don’t think that VRChat is going to die from this. They are too big, and there simply is not a viable competitor that their users can jump ship to.

VRChat does seem to be frantically working on resolving the critical problems that their decision has caused and trying to mitigate the damage as quickly as they can. I believe the harm it has done to VRChat’s compatibility with Pimax VR headsets falls under this category, and so VRChat may be more likely than usual to respond to outreach from Pimax to address these issues right now.

I would like to politely suggest that Pimax contact VRChat to address these issues. Particularly since VRChat may need engineering help in getting Pimax’s FFR/DFR to work with EAC.

I believe that VRChat could be important to Pimax’s future if it wants to get a foothold on a larger customer base for the Crystal and 12K. Social VR strongly promotes demand for high end VR gear, and this is a largely untapped segment where Pimax has little previous penetration primarily because it hasn’t been well supported or advertised.

And as of this new EAC release, support for Pimax just got much worse. But there could be an opportunity here to turn that around completely.

2 Likes

To piggyback on what Sargon said a bit, tith the popularity of EAC and how it seems to block Pimax’s FFR, I hope the company will do some kind of outreach to make the DFR of the Reality Line possibly with it.

It does appear like there’s levels of aggressiveness on it or some ability for the dev to whitelist things. As The VRPerfkit’s FSR/Fixed Foveated Rendering works on certain games with EAC, like Contractors and Pavlov, despite being blocked in some other instances. So it should be possible.

3 Likes

This is quite an awesome community response; though not surprising as this was not thought out. They should have announced the plan well ahead of time with pre reviewing accessibility mods and white listing them. With an addition process to submit an application to have cosmetic mods white listed.

Hopefully folks also downvote Rockstar games for there dmca against vr mods. As you had said it was giving them additional sales from players whom only bought the game to play in vr.

It’s now 3 months later, and there are new updates to share which are relevant to running VRChat on the Pimax 8KX. Things have improved.

EAC: Features and support which were previously only available through mods are now built into the native client. And their implementations are generally better than the mod versions of them had been since they aren’t hacked in. VRChat should have done this before blocking mods rather than after, but that’s water under the bridge now. There are still some gaps, but at this point, I would say that VRChat is overall substantially better post-EAC than it was pre-EAC.

Mirrors: VRChat now has personal mirrors, and they can natively handle the 8KX’s high resolution. Mirrors do not, however, do so by default. They still start with a 2048x2048 resolution limit which the configuration interface refers to as “1/1”. To support the 8KX’s high resolution, change this setting to unlimited mode. You’ll have to click through a warning that this could cause performance problems, but if you have an 8KX, presumably you have a GPU capable of running it.

Unlimited mode has the mirror resolution always matching the main resolution. I don’t understand why they don’t just always do this by default anyway since it’s the right answer for all hardware large or small, but whatever.

Compulsive Smoothing: My notes about Compulsive Smoothing in the original guide are incorrect. It doesn’t do what I thought it did. A bug made it seem like it was. Compulsive Smoothing only lowers the maximum frame rate. Just turn it off. It doesn’t have any meaningful use in VRChat.

Fixed Foveated Rendering (FFR): This is the only 8KX related feature that still doesn’t work post EAC. However, VRChat has talked about in their developer blog posts that they are developing this feature for VRChat natively. It should actually work better than Pimax’s injected version when it is eventually released.

However, I don’t care anymore because…

nVidia 4090: The new 40 series really enables running VRChat on the 8KX well. I’m able to run at 100% resolution in large FOV (5032x3160 per eye) at a steady 90Hz native in most scenarios without needing FFR. Usually with a lot of room to spare.

In worlds with a very large number of avatars, the frame rate does come down below 90Hz, but this is CPU limited with my 5900X rather than GPU limited. Just based on the GPU frame times, the 4090 would have been able to achieve 70Hz in a dance world with 60 avatars if it wasn’t CPU limited (which brought it down to ~50Hz).

The big change there is that there’s no need to degrade video quality to compensate when there get to be a lot of avatars in the world. It’s not bottlenecking on the GPU anymore where on my previous 3080 Ti it was.

Performance testing in VRChat:

                              3080 Ti  4090  Improvement
FOV    MSAA  Resolution       FPS      FPS
Normal 4x     50%  2688x2232  75       128   1.7X
Normal 4x    100%  3800x3160  39        53   1.4X
Normal Off    50%  2688x2232  92       204   2.2X
Normal Off   100%  3800x3160  55       116   2.1X
Large  4x     50%  3560x2232  59        97   1.6X
Large  4x    100%  5032x3160  31        38   1.2X
Large  Off    50%  3560x2232  75       164   2.2X
Large  Off   100%  5032x3160  46        95   2.1X

Note: When frame rate is >90Hz, the measurement is estimated from the frame time instead.

Performance tanks when MSAA is turned on while at 100% resolution for some reason. That specific combination produced much smaller gains. However, I have found that it’s generally better to raise resolution rather than enabling MSAA anyway.

VRChat seems to benefit particularly well from the 40 series, achieving more than 2X improvement at the best settings relative to the 30 series.

2 Likes