Search the Community
Showing results for tags 'openxr dev toolkit'.
-
I have been testing my VR configuration/stability & visual improvements with my Pimax5k Super HMD since DCS provided OpenXR support. At first, tests where KO and could hardly just get to the flight phase. But a recent break through has occurred and has changed the testing results by 180 degrees for the better. The big game changer happened yesterday when I found out that the OpenXR Toolkit was revised to v1.2.4. to improve usability with DCS OpenXR implementation, see note 1. I will spare you the testing details and jump directly to some results/configurations that work for me. Hardware configuration: (if you wish to compare, here are my PC details) Mobo: MSI X570-A PRO/PCIe 4 CPU: AMD RYZEN 9 3900X (12 CORE) GPU: EVGA-RTX 3080Ti RAM: DDR4-32 GB (3200MHZ wt XMP) HMD: PIMAX-5K SUPER Software configuration: DCS World Open Beta v 2.8.2.35759 (latest as of 3 FEB 2023 & wt OpenXR support) PiTool v1.0.1.284v - Version 284 is required as per PimaxXR requirements. See note 1. PimaxXR v0.3.0 - This app is the runtime required for OpenXR to work with PiTool and to bypass SteamVR. PimaxXR runtime is needed to avoid PiTool kick starting SteamVR by default. Install PimaxXR and make sure that PimaxXR is selected as the OpenXR runtime. See note 2. OpenXR Toolkit v1.2.4 – Latest version as of 2 FEB 2023. See note 3. OpenXR Explorer v1.4 - Optional application to analyze OpenXR runtimes & OpenXR Toolkit app that is installed. Not required for success in implementing OpenXR with DCS. See note 4. OpenComposite - This application and its DLL implementation into DCS is not required for success in implementing OpenXR with DCS. However, you may need it for other VR games or simulators that are designed to use the SteamVR app to run them in VR. See note 6. Recommendations: Always make sure that the PiTool app is UP and running regardless of what VR runtime (SteamVR or OpenXR) you use. Otherwise, your Pimax HMD is not available for your VR sessions. If you have configured a DCS game start icon in PiTool and wish to test OpenXR runtime, avoid using that game start icon. Starting DCS from the PiTool/My games/DCS icon will kick start SteamVR. Having DCS started via SteamVR while OpenXR is configure for the game will likely cause undesired results. If you are going to run or test DCS OpenXR VR method (bypassing SteamVR), for safety, just delete the game start icon in PiTool as you will not really need it anymore. Instead, do the following… Exploit the DCS command line features to start the simulator as these will be useful to you. Make yourself some DCS game start window shortcuts to facilitate things. Here are some windows shortcut command line targets that I use. Make a DCS game start shortcut for each of the following shortcut targets & see note 5 for other DCS post link; "your game install path\DCS World OpenBeta\bin\DCS.exe" --force_enable_VR --force_OpenXR - to start DCS with OpenXR support. Make sure that SteamVR is not running. Make sure that OpenXR Toolkit is enabled. At first, use the default Toolkit shortcuts. Also, make sure that active OpenXR runtime is ticked back to OpenXR within the PimaxXR app. This will enable bypassing SteamVR and will avoid SteamVR from being called. "your game install path\DCS World OpenBeta\bin\DCS.exe" --force_enable_VR --force_SteamVR - to start DCS with SteamVR support. If you revert back to using SteamVR, make sure that the OpenXR Toolkit is disabled (tick the disable switch in OpenXR Toolkit) and that active OpenXR runtime is ticked back to STEAMVR within the PimaxXR app (start PimaxXR app and select SteamVR as the runtime). "your game install path\DCS World OpenBeta\bin\DCS.exe" --force_disable_VR – to start DCS without VR so that DCS displays on your primary display screen. This could useful for HOTAS configuration, etc. Without guaranties, this methodology should work for Pimax4k, 5k or 8k HMD owners. Can all these pieces of software & apps co-exist at the same time on your PC. YES, however, configuring the apps correctly is required if you wish to use DCS with SteamVR or with OpenXR. See comments above depending on the shortcut command lines that you are using to start the DCS simulator. You need to experiment with the OpenXR Toolkit settings. Do that using the Toolkit shortcuts while in the game. Settings will likely vary if you have a Pimax4k, 5k or 8k HMD. When your satisfied with your Toolkit settings, share them with the community by writing your own post. Using OpenXR... Generally speaking, I am getting better control of my FPS frame rates, better control of color effects and better control of sharpness inside the cockpits. I do experience a bit of stuttering when switching from F1 to F10 and back to F1 views...not sure what would cause that. So far, multiplayer seems OK. Could the experience be better...YES. Correcting the stuttering when changing views needs to be addressed but I am not sure to who I should shot the requests ...to DCS regarding their OpenXR implementation, to the PimaxXR folks dev team or to OpenXR Toolkit dev team...don't know! Hope this helps you enjoy OpenXR with your Pimax HMD. Everest…Out! Notes: 1- For PiTool v1.0.1.284v, see https://community.openmr.com/t/pitool-1-0-1-284v/39823 2- For PimaxXR v0.3.0, see https://github.com/mbucchia/Pimax-OpenXR 3- For OpenXR Toolkit v1.2.4., see https://mbucchia.github.io/OpenXR-Toolkit/ 4- For OpenXR Explorer v1.4, see https://github.com/maluoi/openxr-explorer/releases/tag/v1.4 Be aware that this app is not required for OpenXR implementation with DCS. It is included here as reference only and is recommended for folks that do application development work. 5- For DCS news letter regarding OpenXR implementation, see the following forum post: https://forum.dcs.world/topic/318004-dcs-now-supports-openxr-natively/ 6- For OpenComposite & OpenComposite switcher, see https://mbucchia.github.io/OpenXR-Toolkit/opencomposite.html Note that no revision is mentioned for OpenComposite probably because this is actually a DLL which did the work of throwing DCS VR runtimes to PimaxXR before introduction/support of OpenXR in DCS. OpenComposite solution is no longer required to operate OpenXR in DCS. PS...If you like this post, please rate (@ top of post) or like it...
- 9 replies
-
- 2
-
-
- openxr
- openxr dev toolkit
-
(and 3 more)
Tagged with:
-
I have updated this first post to try to clear up some of the chaff now that DCS supports openxr natively. The original post in it's entirety is in spoiler tags below, I have lifted portions of it for this but I wanted to retain it for archival purposes. Since writing this I have upgraded my GPU from the 3070 to the 3080ti, as such I now have a little more knowledge on higher end hardware. Similarly DCS itself has changed in the ever marching way of progression that it has habit to do so, VR performance is now currently a little slower than it was 11 months ago. This is based on my experiences and testing, specifically with my set up. It isn't an all encompassing guide and by all means feel free to add your own insights and observations First things first set some baselines of what you want to achieve, do you want: - A clear, stable picture? All the bells and whistles? All the FPS? For performance metrics use the tools built into openxr toolkit. For tuning create a test mission that has your typically heaviest passive GPU workload, I use a rooftop pass over the top of Beirut. Some naming conventions: - OXR = OpenXR (Installed with windows by default) SVR = SteamVR (Steam App) WMR4SVR = Windows Mixed Reality for SteamVR (Steam App) OXRTK = OpenXR ToolKit (Obtainable from github) OXRDT = OpenXR Developer Tools (Also known as OpenXR Tools for Windows Mixed Reality - Sourced from Microsoft App Store) MR = Motion Reprojection For detail of the functionality of the excellent OpenXR Toolkit by @mbucchia please see the features list here. A clear, stable picture? Doing the following will typically be running DCS at framerates below the headset refresh rate, as such there will be some associated ghosting/stutter. Some scenarios will be smoother than others. Within the OXRDT set resolution to 100% and disable motion reprojection. This will give the ultimate image quality but with the caveat that you have to tune DCS to keep framerates above your own personal comfort threshold for stutter (mine is 50fps). If you're struggling to get it fast enough to eliminate the stutter for your test scenario, then the first thing to do is set the resolution in the OXRDT to default, this will set the resolution based upon your VRAM quantity. The calculation is based on the size of the three backbuffers with 4xMSAA applied should be no more than 10% of total VRAM. For the reverb having a 100% resolution of around 3160 pixels wide, the 8gb 3070 defaults to around 60-65%, the 12gb 3080ti defaults to around 95%. Within the OXRTK menu you can enable foveated rendering and upscaling to gain some frames back but at the expense of some image quality. Turbo mode can subjectively claw some FPS back in certain scenarios; typically it can help you gain 10-20% when running below refresh rate. It has been found that throttling the framerate to 55fps within OXRTK produces a minor improvement in apparent object stuttering when the headset is at 90Hz. This appears to be a sweetspot that has be correlated against by several different people, it may be different for you but it's easy enough to find your personal best compromise - fly low and level with the framerate throttled to 45fps, look out of the window whilst altering the framerate throttle and when you see an reduction of object ghosting leave it there. Based on the above, if you can consistently keep >60 FPS then it is worth trying out 60Hz refresh rate. Being above the refresh rate is nirvana and is ultimately smooth with zero artifacts. A couple of caveats to bear in mind: - the reverb has an apparent refresh rate flicker in 60Hz mode than can be hard to stomach, some people can, some people can't. It may be possible to train yourself to get used to it, treat it like getting your VR legs again. A little at a time is key, build it up in short sessions over days at a time. If you FPS drops below 60 then the smoothness of the display is not a good as 90Hz when below refresh rate. Therefore you ideally need some GPU overhead available to compensate for this - I use 60Hz and work on having a typical GPU frametime of 13ms or so which equates to around 77fps. All the bells and whistles? Doing the following will typically be running DCS at framerates below the headset refresh rate, however motion reprojection will be inserting synthetic frames to make it appear to running at refresh rate and will be very smooth. Image clarity suffers slightly and visual artifacting can be distracting. Within the OXRDT set resolution to 100% and set MR to always on (don't use auto, that's for app specific configurations and not implemented for DCS as of yet). Within the OXRTK menu make sure that MR is set to unlocked. With MR enabled and unlocked, DCS is now able to smoothly display framerates from 90 all the down to 30. This is a huge range and it will allow you to run far higher settings than you would think. Your FPS will be displayed as 90, 45, 30 or 22 (I've found 22 reprojected to not be pleasant) with occasional movement a few frames either way for a second or two when it changes reprojection fraction. The further from the 90hz refresh you get the more reprojection has to pick up the slack so will introduce more artifacts. The coding behind the OXR implementation of MR is virtually identical to WMR4SVR so should behave the same. The OXR MR can reproject at fractions of the refresh rate - 1, 1/2, 1/3, 1/4. For 90hz the fraction brackets work out at approximately 11ms 90fps, 20ms 50fps, 30ms 33fps (and we'll ignore 22fps because you don't want to be here), there is a small MR overhead to account for so the numbers aren't exact. WMR4SVR can only reproject at 1/2 refresh rate, therefore below 20ms 50fps it disables itself entirely. When tuning DCS you ideally want to be aiming to keep your FPS away from the bottom end of a fraction bracket. Therefore if you're getting 18ms you will be skipping between 1/2 and 1/3 brackets, best to turn some settings up and push it down into the 1/3 bracket. MR will keep things smooth but at the expense of some warping/ghosting particularly on edges of wings/cockpit frames. The slower the relative motion between the two edges the less it will artifact. If you're suffering with watery looking distortions/artifacts then ensure that you don't have shaking reduction enabled as the two don't play nicely. If you're ok with the artifacting you can run phenomenal settings, let it sit at 30hz reprojection and be on your way, unless you're in a weaker GPU then the world is your oyster. All the FPS? Within the OXRDT set resolution to default or below and MR to disabled. Within OXRTK enable upscaling of your choice (I wouldn't recommend dropping below 75% to retain most image quality) and enable foveated rendering (you can use a preset or play with the custom settings, it doesn't make a huge difference in performance). You may well be able to achieve the 90hz refresh rate by doing this although the use of upscaling will introduce additional shimmering that you will not get rid of. It is possible to balance out portions of the above to achieve a desirable outcome; it's not gospel, play with it yourself to find your own ideal. My current settings are as follows: - Reverb @60Hz, resolution override to 3200 pixels wide, MR disabled. FFR on Quality/Wide preset, Turbo mode enabled. NIS upscaling @75% with no sharpening. With DCS settings as follows I can comfortably keep below 16ms (>60fps) on Syria on all but the heaviest of missions in which case the CPU gets swamped - the GPU is still producing frames fast enough, the CPU simply can't supply it fast enough. The multithreaded engine update should hopefully alleviate this issue moving forwards.
- 688 replies
-
- 20
-
-
-
- oxr
- openxr dev toolkit
-
(and 1 more)
Tagged with: