What is roughly the performance decrease using Z3D?

Homepage Forums Technical Support What is roughly the performance decrease using Z3D?

Viewing 4 posts - 1 through 4 (of 4 total)
  • Author
  • #215390

    Hello everyone!

    I recently upgraded my Oculus Rift CV1 to a Quest 2, used with Link cable for PCVR. I’m trying to fully utilize the 120 Hz refresh rate of the headset as I’m really sensitive to low frame rates (I play Rocket League competitively on an eSports monitor in 240 Hz).

    The fact is that I can’t quite reach 120 FPS in game despite using Z3D on default settings. The game I tested deeply so far is Forza Horizon 4: keeping the same exact settings, in the same exact spot I get 185 FPS without VorpX and 105 with VorpX.

    All settings are on max except the ones that impact CPU, which are set at minimum (1080p in game res, 3200×1632 on Quest 2). My CPU is a Core i7-9700KF @4.7 GHz, GPU is 3070Ti.

    Normally the game is clearly CPU-bound, as my GPU utilization never even reaches 80%. Likewise with VorpX enabled. I read somewhere that VorpX mostly increases the workload of the CPU, so I guess it’s normal to see a performance degradation in a CPU-bound environment like Forza.

    My question is, though: is a 43% decrease in FPS normal in Z3D?
    I know G3D has to basically produce 2 different images so your framerate is pretty much cut in half compared to VorpX off, but isn’t -43% a lot for Z3D?

    I also tried decreasing various settings like render resolution in the headset and resolution in game but the performance remains fairly similar when using VorpX (I suppose resolution is mostly a GPU / VRAM thing).

    If this is not a normal behavior, my follow up question would be: is the encoding done from my GPU somehow reducing the performance in game?
    Theoretically it shouldn’t, as RTX cards have their own dedicated piece of hardware for encoding, but the encoding process (OVRserver_x64.exe) usually eats around 13% of CPU despite this fact, so there might be some kind of setting I can tweak that regards encoding in order to squeeze out those last 10 FPS I need to fully enjoy the game in 120 Hz.

    In Rocket League I manage to get 120 constant FPS in G3D but the game is not fully stable: despite the graph in game shows no dips from 120 FPS, I get basically the same thing as an FPS drop when my GPU stat goes from “Green” to “Red”. This is why I thought about the encoding problem.

    Sorry for the long post, but I searched around and I couldn’t find any precise tests on the matter so I need to go to the source to know more about the various mechanics that lie behind the scenes ;)


    To measure the actual Z3D performance impact you have to take the performance hit from rendering to the headset out of the equation. I.e. you have to compare your normal desktop performance with what you get when vorpX is set to ‘Generic 3D Display’ in the config app. Under normal circumstances that way you shouldn’t see much of a difference.

    Everything else comes from the extra workload caused by the headset render thread, or some related settings in the vorpX menu. Most importantly the ‘Headset Sync’ options, but also the amount of post processing you may have enabled (sharpening, gamma etc.). Also the efficiency of the headset runtime plays a role here obviously.

    40% sounds too much though. I’d suspect that maybe the Headset Sync settings are set to something that artificially reduces the framerate for better headset syncing. At settings that favor performance over safer syncing the performance impact caused by rendering to the headset is similar to the GPU load that the Oculus/SteamVR/OpenXR runtimes cause when rendering their grey/black ’empty space’ environments.

    On a sidenote: if this is related to a DX9 game on Windows 11: there currently is a major DX9 performance hit on Windows 11, which will be addressed in the next beta in a few days.


    Thanks Ralf for the explanation!

    I did notice some kind of frame rate limitation while messing around with settings. However, I did not have any setting that explicitly says “limits frame rate” on (FluidSync On and Headset Sync Safe).
    This is what I found out:
    – Headset Sync: Default (Fast) gives normal ~100 frame rate, Safe lowers it to ~80. This should be normal.
    – Direct Mode Async Render: This one is weird. I usually have it set to Device (on). When I turn it off I either get warping frame rate (similar to internet lag in online games) and sometimes it caps at 60 FPS on its own and it’s really smooth. In the latter case the game feels more responsive, which should make sense since there’s less input lag with synchronous rendering (if I got it right).
    – Direct Mode FluidSync: Auto lowers framerate to 60 since my PC can’t reach 120, so it works properly. I usually have it default which is Device (off) and I get ~100 FPS.
    – Tracking prediction: On or off doesn’t seem to impact frame rate, but from what I’ve seen setting it to On makes some sort of frame interpolation so 60 FPS looks like a fake 120 FPS, pretty cool.

    Are there other settings that also limit frame rate as a secondary effect?

    I also noticed that when vorpX hooks into FH4 it says “vorpx 21.3.2 | DX12” even though my vorpX version is 21.3.3. I don’t know if that could be part of the issue.


    Quick update:

    I was wondering if the fact that my CPU (i7-9700KF) does not have Hyperthreading could be related to this performance issue, especially in CPU bound scenarios like the aforementioned racing games.
    I do get a similar performance drop even in GPU-bound games but I was wondering if maybe vorpX had trouble dealing with hardware that does not physically support hyperthreading even though the CPU performance is quite good (8 cores @ 4.7 GHz).

    @Ralf is there a way to assess this on my end? Cause I don’t see a vorpX process doing much if anything when hooked into a game, so I don’t know how to see how many resources it’s taking for rendering the game inside the headset.

Viewing 4 posts - 1 through 4 (of 4 total)
  • You must be logged in to reply to this topic.

Spread the word. Share this post!