Limited by RDR only in VR

Hi!

So I finally got a great performance in non VR 4k ultra with around 60-80 fps. However VR is still a big issue. I get 40 fps no matter where I fly (Manhatten vs. open sea). You can see that I’m limited by RDR Thread. Any Ideas?

My system:
3090 EVGA XC3
AMD 5900X (undervoltetd)
32gb RAM 3600 g.skill neo
Asus ROG Strix X570-E Gaming

Settings MSFS: Ultra
Settings nvidia: Vanilla (expect for energy: prefer maximum perfomance)

Heres what I already tried:

  • Reinstal Windows mixed reality
  • Deinstal Open XR toolkit
  • Enable/disable Motion reprojection
  • Reinstall nvidia drivers
  • Disable MSFF


type or paste code here
1 Like

what does “limited by RDR” mean? is that cpu or gpu limited?
you’re gonna get less fps in vr than at 4k.
what vr headset ru using?
what are your lod/traffic settings (ie the settings that load the cpu)?
the higher the resolution or the higher the TAA setting the more the gpu is going to be used.

1 Like

By sheer coincidence I have just been Googling render thread earlier today to find out what it actually means. There’s surprisingly little on it, especially as it relates to MSFS. The best I can gather is that it is akin to a complete CPU package of work that has been finished by the CPU and is now waiting for the GPU to execute.

Or I’m completely wrong and in need of a good smack. I honestly don’t know.

What I do see is that my CPU times can be say 7ms, my Rdr thread at 19 or even more ms and my GPU at 27 ms and I’m GPU bound, but if the Rdr thread goes higher than the GPU count I’m Rdr thread bound???

But again, from what I understand, if the RDR thread turns from yellow to red that means that it is the bottleneck… or is it still the GPU that has fallen behind in carrying out that chunk of work?

If someone could explain what the heck it really is, I would be most grateful. Also how to interpret the Dev mode counter properly.

Edit: I have sometimes come across REALLY high Rdr thread numbers with some third party aircraft that makes the sim unflyable. The freeware H135 helicopter is a prime example, which starts out OK, but then the timing gets longer and longer so that the Rdr thread is so high I get 5fps. Yet the far more complex H145 payware chopper has way lower and consistent Rdr thread times and works fine with good fps. It’s really confusing.

rdr thread

Based on your VR screenshot, you are limited by GPU, not RDR. Yes RDR is longer than mainthread but GPU is even longer and is thus the bottleneck.

Yes I know that, it was just an example to show that the Rdr thread can be higher than the main thread , which I don’t properly understand, as I thought that was part and parcel of the overall CPU time. I’m going to PM mbucchia to ask him for some help in understanding this.

I was actually referring to the @Sepp55555’s original post, which does not appear to be factually correct against the title of the post. I agree that it is strange to see RDR thread longer than mainthread and it will be interesting to see how mbucchia clarifies the distinction between these two threads.

Traffic is completly off
Lod is 200
Im using the hp reverb g2

Here are pictures of the same region better visible


Turn down the graphics settings from Ultra to High….ultra is a huge hit to the CPU without a lot of noticeable visual difference from High for most folks. I find that even on a 12900k/4090 if I go from High to Ultra the CPUs gets really hammered and becomes bottlenecked and fps drops a lot. You might see higher fps, smoother frametimes and nearly the same visuals on High with your setup.

RdrThread is some Asobo terminology that is honestly not 100% sure we can decode and understand exactly what it is… but we can make a close guess.

  • RdrThread is definitely CPU workload
  • RdrThread is most likely the group of CPU work that envelopes the game writing commands to the GPU for drawing geometry and applying post-processing
  • The geometry part would be the most costly part of it: computing transform matrices, performing geometry culling based on camera FOV, uploading data to the GPU, then finally enqueuing the list of polygons to draw
  • Applying post-processing is typically cheap on the CPU: it comes down to enqueing what shaders to run and uploading the corresponding parameters to the GPU
  • In a good implementation, RdrThread does not wait on the GPU ever, and therefore is not related to the performance of your GPU

RdrThread being lower than the Main thread would mean that it is faster for the game to draw geometry etc than it is to compute game physics, AI, and other game logic.

RdrThread being higher than the Main thread would mean there is a lot of geometry to draw and it dominates every other workload (other aspects of the game such as physics, AI, etc…).

RdrThread being lower than the GPU time means you are GPU-bound: executing the commands on the GPU to draw all the scenery/objects and perform image processing costs more than it does for the CPU to tell the GPU what to do, and eventually your need to wait for the GPU to complete this work. You need to lower your resolution and/or the complexity of the effects to apply in post-processing (eg: TAA, clouds).

RdrThread being higher than the GPU time means you are CPU-bound: it takes longer to tell the GPU what to do than it takes the GPU to do it. So the GPU is constantly “underfed” commands to execute, and waits for the CPU to send the next commands. You need to lower your geometry settings like LOD.

Ideally, for maximum efficiency, you would want the RdrThread and GPU frame time to be equal: it means you are maximizing both your CPU and GPU.

If you plan to rely on OpenXR Toolkit (FSR or foveated rendering) or DLSS to improve your performance, you will want to be GPU-bound: these performance features help reducing your GPU time only. There is no cure to high RdrThread besides lowering LOD.

Ideally, for the smoothest experience, you will want the maximum of RdrThread and GPU frame time to be as low as possible, which determines your effective frame rate.

10 Likes

So basically if I upgrade my CPU i can expect this rdr limitation to go away?
I‘m using dlss quality btw

Not necessarily, depends what’s an “upgrade”. You’d have to go for more GHz, not more cores. I dont think MSFS spreads RdrThread over multiple cores, so you’d really need faster core rather than more of them. Also even with faster cores, nothing guarantees that you will no longer be CPU-limited, especially if you have an awesome GPU.

Also, I’m confused, your screenshots in the top post show Limited by GPU, not RdrThread.

Thanks for that explanation, it helps a lot in understanding what effects what in choosing settings, especially as my Asus Tuf OC 4090 is finally coming today. :smiley:

Thanks for this fantastic explanation Matt. I bookmarked your post so I can do some troubleshooting. I stumbled on to this, because I was running in to performance issues all of a sudden with G2, 5950x PBO to 5ghz SMT off, 32GB PC3600, and a GB Gaming OC 4090 using OXR 100, TAA 100, TLOD 200, OLOD 150, MR Unlocked, Ultra Settings, FlyTampa Vegas Scenery, clear day preset…

Installed SU11 and tried out DX12, and at one point for a few hours I was getting 30FPS, sometimes 22.5 MR, and minimal stuttering. Flash forward a few hours and all of this suddenly went haywire, I could barely lock 22.5. I shut down the sim, restarted, rebooted, and eventually flew to Kansas. Literally, Kansas… corn fields… and could barely lock 22.5 MR. WTF?!

SO I started watching the developer mode looking at main thread, RDR threat, and GPU trying to discern what they all meant in relation to each other, and I thought to myself “I wish there was a way to display and break down geometry, transforms, culling, physics, weather, AI and to parts” so I can see wtf is going on. Your post helps with that, I think. LOL!

Ideally, for maximum efficiency, you would want the RdrThread and GPU frame time to be equal: it means you are maximizing both your CPU and GPU.

I’m glad you used the word “Ideally” here, cuz it’s technically impossible to do this consistently. The sim is extremely dynamic and changes from one instance to the next. What’s the weather like, OH clouds? What is your Volumetric Cloud setting… Ultra… huge tax. No clouds? Head room for other geometry routines. Buildings… photogrammetry, AI, players… network speed… is this area cached… etc etc etc.

The point is, it’s maddening and extremely difficult to troubleshoot. Even with top of the line hardware. I think a good approach is to load up an area with heavy geometry, terrible weather conditions, tons of AI traffic and just throw a hot mess at the PC and tweak it from there.

So just a quick update from my side:

I upgrade to a 4090 FE and overclocked my 5900x. I see a nice performance increase in non VR. However in VR i still see the RDR limitation. Any additional Advice?

I found the fix myself for the current issue. HAGS was on because I wanted to try the dlss 3 in non vr. Turning off fixed it

2 Likes

Great explanation mbuccia, I’ve been looking for a detailed one like this on this topic in a while!

Anyone happen to roughly know the effect of upgrading from an 5800x to a 5800x3D on RDRthread/Mainthread? Since everyone seems to say the 3D is the best chip possible for smoothness in the sim, I guess it has a disproportionate effect here?

Hard to quantify obviously, but maybe someone has made this (or a similarly) upgrade and could comment on the effects, both subjectively and in terms of the thread timings?

I’m curious as I will be trying to upgrade my 7700x to a 7800x3D as soon as it comes out (only bought it as a stop-gap).

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