VR testing and findings
-
@Viper I’ll have to try this! Sounds like a no brainer if it does help with performance!
-
Folks, let me give some context here about all these terms. This will help you understand a bit what each flag does. Some dirty coding info in here follows, sorry about that.
I will show each option with their default released value. You can override any of those in Falcon BMS User.cfg.
Parallel Render
set g_bVRParallelRenderThread 1 // 0 disables, 1 enables parallel render
One of the nastier bugs we had during VR development was understanding jittering/juddering (when you rotate your head and the movement is not smooth). This happens because in BMS we prepare the scene in one thread and render in another, like most modern games. The problem is that VR is a bit peculiar, so this creates a race between the thread that prepares the scene and the one that renders it.
To fix this issue, we serialized both threads for VR. The drawback is that we lost a lot of performance because of this. We were able to fix this issue, but for some headsets (or for virtual desktop) the fix doesn’t seem to work for reasons we still don’t understand.
So, if you have jitter/judder, try reverting to
set g_bVRParallelRenderThread 0
, which will make movement a lot smoother.Environment mapping
Enviroment mapping is what renders reflections. For example, water displaying sky, glasses reflecting objects near it and so on. In Falcon, we have a very simplified environment mapping, where only terrain and sky are drawn (and ownship as well, but I think this is disabled for released version).
If any of these is enabled, environment mapping will happen, so you need to disable both to get its performance back.
set g_bEnvironmentMapping 1 set g_bWaterEnvironmentMapping 1
I’d say this is almost prohibitive in VR. Environment mapping adds 6 additional renderings of the scene (one for each cube face from the origin point of view). The renderings are simplified, not as expensive as a full rendering though, so your experience may be different.
The visual effect is beautiful, specially over the water. But not essential.
Shadow mapping
This is what creates dynamic shadows. For example, when the sun is behind you, cockpit shadows are projected into your pit. This is a very nice effect.
set g_bShadowMapping 1
Shadow mapping adds 2 additional renders of the scene. One focused on target object, the other on nearby objects (area). This causes a big impact on airbases with a lot of objects and I have seen it taking almost 50% of the frame time.
If you are having low FPS, try disabling it… but quality drops a bit, so I don’t recommend removing it. For next version, we are already working on improvements on this.
Companion Window
Aside from the VR, Falcon also renders to a companion window. This is useful to debug, to have other people watching you play… But if you are alone, has no benefit.
The companion window rendering is kinda cheap, but for some reason I cannot understand, sometimes it takes a lot of time. Maybe vsync? I don’t know. Anyway,l you can disable it with:
set g_bVRNoPresent 0 // set to 1 to disable companion.
-
@Seifer said in VR testing and findings:
Folks, let me give some context here about all these terms. This will help you understand a bit what each flag does. Some dirty coding info in here follows, sorry about that.
I will show each option with their default released value. You can override any of those in Falcon BMS User.cfg.
Parallel Render
set g_bVRParallelRenderThread 1 // 0 disables, 1 enables parallel render
One of the nastier bugs we had during VR development was understanding jittering/juddering (when you rotate your head and the movement is not smooth). This happens because in BMS we prepare the scene in one thread and render in another, like most modern games. The problem is that VR is a bit peculiar, so this creates a race between the thread that prepares the scene and the one that renders it.
To fix this issue, we serialized both threads for VR. The drawback is that we lost a lot of performance because of this. We were able to fix this issue, but for some headsets (or for virtual desktop) the fix doesn’t seem to work for reasons we still don’t understand.
So, if you have jitter/judder, try reverting to
set g_bVRParallelRenderThread 0
, which will make movement a lot smoother.Environment mapping
Enviroment mapping is what renders reflections. For example, water displaying sky, glasses reflecting objects near it and so on. In Falcon, we have a very simplified environment mapping, where only terrain and sky are drawn (and ownship as well, but I think this is disabled for released version).
If any of these is enabled, environment mapping will happen, so you need to disable both to get its performance back.
set g_bEnvironmentMapping 1 set g_bWaterEnvironmentMapping 1
I’d say this is almost prohibitive in VR. Environment mapping adds 6 additional renderings of the scene (one for each cube face from the origin point of view). The renderings are simplified, not as expensive as a full rendering though, so your experience may be different.
The visual effect is beautiful, specially over the water. But not essential.
Shadow mapping
This is what creates dynamic shadows. For example, when the sun is behind you, cockpit shadows are projected into your pit. This is a very nice effect.
set g_bShadowMapping 1
Shadow mapping adds 2 additional renders of the scene. One focused on target object, the other on nearby objects (area). This causes a big impact on airbases with a lot of objects and I have seen it taking almost 50% of the frame time.
If you are having low FPS, try disabling it… but quality drops a bit, so I don’t recommend removing it. For next version, we are already working on improvements on this.
Companion Window
Aside from the VR, Falcon also renders to a companion window. This is useful to debug, to have other people watching you play… But if you are alone, has no benefit.
The companion window rendering is kinda cheap, but for some reason I cannot understand, sometimes it takes a lot of time. Maybe vsync? I don’t know. Anyway,l you can disable it with:
set g_bVRNoPresent 0 // set to 1 to disable companion.
Thank you for the clarifications. You probably guess what some of us will come with: video recording. Any opinion? So far, I’ve come to think it is not a good idea. It would promote the work done in VR but (supposing I change my mind about the damages it does to proficiency) with current means and parameters, I can’t have something people would watch for more than a minute.
-
I don’t see any difference other than the fps impact.
-
@Seifer said in VR testing and findings:
Folks, let me give some context here about all these terms. This will help you understand a bit what each flag does. Some dirty coding info in here follows, sorry about that.
I will show each option with their default released value. You can override any of those in Falcon BMS User.cfg.
Parallel Render
set g_bVRParallelRenderThread 1 // 0 disables, 1 enables parallel render
One of the nastier bugs we had during VR development was understanding jittering/juddering (when you rotate your head and the movement is not smooth). This happens because in BMS we prepare the scene in one thread and render in another, like most modern games. The problem is that VR is a bit peculiar, so this creates a race between the thread that prepares the scene and the one that renders it.
To fix this issue, we serialized both threads for VR. The drawback is that we lost a lot of performance because of this. We were able to fix this issue, but for some headsets (or for virtual desktop) the fix doesn’t seem to work for reasons we still don’t understand.
So, if you have jitter/judder, try reverting to
set g_bVRParallelRenderThread 0
, which will make movement a lot smoother.Environment mapping
Enviroment mapping is what renders reflections. For example, water displaying sky, glasses reflecting objects near it and so on. In Falcon, we have a very simplified environment mapping, where only terrain and sky are drawn (and ownship as well, but I think this is disabled for released version).
If any of these is enabled, environment mapping will happen, so you need to disable both to get its performance back.
set g_bEnvironmentMapping 1 set g_bWaterEnvironmentMapping 1
I’d say this is almost prohibitive in VR. Environment mapping adds 6 additional renderings of the scene (one for each cube face from the origin point of view). The renderings are simplified, not as expensive as a full rendering though, so your experience may be different.
The visual effect is beautiful, specially over the water. But not essential.
Shadow mapping
This is what creates dynamic shadows. For example, when the sun is behind you, cockpit shadows are projected into your pit. This is a very nice effect.
set g_bShadowMapping 1
Shadow mapping adds 2 additional renders of the scene. One focused on target object, the other on nearby objects (area). This causes a big impact on airbases with a lot of objects and I have seen it taking almost 50% of the frame time.
If you are having low FPS, try disabling it… but quality drops a bit, so I don’t recommend removing it. For next version, we are already working on improvements on this.
Companion Window
Aside from the VR, Falcon also renders to a companion window. This is useful to debug, to have other people watching you play… But if you are alone, has no benefit.
The companion window rendering is kinda cheap, but for some reason I cannot understand, sometimes it takes a lot of time. Maybe vsync? I don’t know. Anyway,l you can disable it with:
set g_bVRNoPresent 0 // set to 1 to disable companion.
I would recommend to have all those options present (and REM documented) in default Falcon BMS.cfg
-
…You probably guess what some of us will come with: video recording. Any opinion? So far, I’ve come to think it is not a good idea…
AGREED.
Recording VR footage = oxymoron.
Unless its a VR recording which can be replayed in a VR set in 3d
-
@danaos75 said in VR testing and findings:
I don’t see any difference other than the fps impact.
If I am not wrong, it is a matter of distance of LOD transitions, not about max details level.
-
@Dee-Jay regarding obj detail, agreed, that is my opinion as well… so when looking up close, they are using the same LODs and thus, no difference.
-
@Seifer said in VR testing and findings:
@Dee-Jay regarding obj detail, agreed, that is my opinion as well… so when looking up close, they are using the same LODs and thus, no difference.
I have no idea if/how LOD distances are actually impacted the same way than in non VR mode (you see what I mean? … depending on FOV / Resolution … etc … discussion on Dev forum)
-
Thank you for the comparison
-
@Dragasath warning to all! I STRONGLY recommend to leave the object detail slider to max (7). I did more testing today and it definitely has to do with distance, but not just on the level of detail, but on the object visibility itself. I tried the instant action and with OD =1 the enemy planes were not visible until well under 5nm. I could see their smoke trails but not the planes themselves. Then suddenly one by one they popped in front of me. I guess one could place the slider somewhere between 1 and 7 but I left it at 7.
-
EDIT
Please ignore below. Not an issue generally.
-
@Fish44 said in VR testing and findings:
Keep this setting minimum. Game turned to a slide show when i bumped this to 8 in VR.
What GPU do you have? For me 8, is ok. 1 is horrible visually.
If you want to reduce or get rid of the judders, lower the refresh rate of your headset if you can. I lowered mine from 90Hz to 60Hz which has given a huge amount of headroom before the framerate drops below 60fps.
-
@scubapics Thanks for heads up.
For me 1 or 8 is the same visually, just huge performance degradation. Game is running like butter (close to or at 90hz in SP in the air), with clarity I expect from the reverb @ 1.6 super sampling.
Good to hear others not having the issue. Will edit post above
-
@LorikEolmin said: …I can’t have something people would watch for more than a minute.
I need more than ten minutes to even understand your accent as you speak over the radio…!
Thus, your movies certainly need more than a minute…!
P.S. With the 2,800 posts over the last few days, I have lost track of your LAST video (which I did not finish getting through).
Could you save me a search and link to that below…? Cheers. -
Video memory leak fixed by updating “windows mixed reality for steamVR” to beta.
-
@Aragorn said in VR testing and findings:
@LorikEolmin said: …I can’t have something people would watch for more than a minute.
I need more than ten minutes to even understand your accent as you speak over the radio…!
Thus, your movies certainly need more than a minute…!
P.S. With the 2,800 posts over the last few days, I have lost track of your LAST video (which I did not finish getting through).
Could you save me a search and link to that below…? Cheers.Sorry I missed your post. Here it is. And thank you =).
-
@Seifer said in VR testing and findings:
To fix this issue, we serialized both threads for VR. The drawback is that we lost a lot of performance because of this. We were able to fix this issue, but for some headsets (or for virtual desktop) the fix doesn’t seem to work for reasons we still don’t understand.
I’m on a Pico 4 with Virtual Desktop. I disabled background thread via set g_bVRParallelRenderThread 0 because I experienced some jitter during head movement. But today I tried again with set g_bVRParallelRenderThread 1 and I figured out that the jitter is gone when no other VR application is shown in parallel.
I always ran BMS with fpsVR status window and/or OpenKneeboard in parallel. Once I disabled them jitter was gone. As soon as I start them, jitter starts.My HW is CPU 12700K, GPU 4090 RTX, 32GB RAM. So I think the HW is not the bottleneck. Plus I have no jitter running DCS VR with the mentioned above in parallel.
Hope this is useful input for you.
-
On a side note - has a poll been done to account VR users and their gear ? Would be interesting to know how many and what kind of gear people uses to fly BMS and other sims.
-
Interesting, I also run both fpsVR and openkneeboard and have no issues