Jump to content

DCS now supports OpenXR natively


BIGNEWY

Recommended Posts

Ahh, ok, Oculus, so sorry, I cant help you. I have HP G2.

Webmaster of http://www.yoyosims.pl

Yoyosimsbanner.gif

Win 10 64, i9-13900 KF, RTX  4090 24Gb OC, RAM 64Gb Corsair Vengeance LED OC@3600MHz,, 3xSSD+3xSSD M.2 NVMe, Predator XB271HU res.2560x1440 27'' G-sync, Sound Blaster Z + 5.1, TiR5, [MSFS, P3Dv5, DCS, RoF, Condor2, IL-2 CoD/BoX] VR fly only: Meta Quest Pro

Link to comment
Share on other sites

18 hours ago, Baldrick33 said:

Download the dll from here https://znix.xyz/OpenComposite/download.php?arch=x64&branch=openxr

Backup your openvr_api.dll in your DCS World installation folder\bin folder

Copy the downloaded dll into the bin folder

That should be all you need assuming you had OpenXR running previously.

When it gets fixed just let DCS update and it will overwrite the DLL.

Hi apologies for another slightly confused user post, I am in the exact same position as Parxuk, IE, G2, and want to use motion reprojection and the toolkit. I have installed the latest .dll you linked Baldrick. I have made a shortcut, with the force VR extension and used it to start DCS. DCS works and seems fine. But how do I know or can tell if DCS is now NOT using open composite? How do I un install open composite...do I need to?


Edited by markturner1960

System specs: PC1 :Scan 3XS Ryzen 5900X, 64GB Corsair veng DDR4 3600, EVGA GTX 3090 Win 10, Quest Pro, Samsung Odyssey G9 Neo monitor. Tir5. PC2 ( Helo) Scan 3XS Intel 9900 K, 32 GB Ram, 2080Ti, 50 inch Phillips monitor

 F/A-18C: Rhino FFB base TianHang F16 grip, Winwing MP 1, F-18 throttle, TO & Combat panels, MFG crosswind & DFB Aces  seat :cool:                       

Viper: WinWing MFSSB base with F-16 grip, Winwing F-16 throttle, plus Vipergear ICP. MFG crosswind rudders. 

Helo ( Apache) set up: Virpil collective with AH64D grip, Cyclic : Rhino FFB base & TM F18 grip, MFG crosswind rudders, Total controls AH64 MFD's,  TEDAC Unit. 

 

Link to comment
Share on other sites

On 1/27/2023 at 10:30 AM, BIGNEWY said:

thanks added to the report I made for the team

@BIGNEWY more information for the dev team regarding the remaining lock-up due to the frame loop deadlock.

After some more investigation, I believe the condition happens if and only if the frame predicted display times (xrFrameState.predictedDisplayTime) does not increment monotonically:

image.png

As seen above, the last value for predictedDisplayTime returned before the lock-up is 3,081,690,700,100, which is smaller than the previous frame predictedDisplayTime of 3,081,701,810,000. This seems to cause the game's frame loop to entirely skip the frame, without calling xrBeginFrame() (which is illegal and causes the deadlock).

Now I have to admit, this is a little bit weird, because per The OpenXR Specification (khronos.org):

Quote

The XrFrameState::predictedDisplayTime returned by xrWaitFrame must be monotonically increasing.

I am thinking that because the loading screens in the game are skipping many many frames, this is confusing the motion reprojection logic. That's not OK and I will make a report to fix this in the next release of our runtime.

Meanwhile, I believe if the game engine made sure to always invoke xrBeginFrame() for each xrWaitFrame(), regardless of the predictedDisplayTime, this will make the engine more robust to these situations. Perhaps better, always use corrected_predictedDisplayTime = max(current_predictedDisplayTime, last_predictedDisplayTime + 1) to even avoid skipping a frame and ask the platform to perform the necessary frame reprojection. I believe if the dev team implements either one of these measures, the lock-up issues will be resolved.

For OpenXR Toolkit users, I believe this is the same issue that they are seeing with Turbo Mode.

To be clear, there are 3 bugs here, one in the game engine frame loop, one in the WMR OpenXR runtime, and one in OpenXR Toolkit. Oops!


Edited by mbucchia
  • Like 6
  • Thanks 8

This account is now inactive and not monitored.

Link to comment
Share on other sites

  • ED Team

Thank you for the info I have added it to the report 

  • Like 2

smallCATPILOT.PNG.04bbece1b27ff1b2c193b174ec410fc0.PNG

Forum rules - DCS Crashing? Try this first - Cleanup and Repair - Discord BIGNEWY#8703 - Youtube - Patch Status

Windows 11, NVIDIA MSI RTX 3090, Intel® i9-10900K 3.70GHz, 5.30GHz Turbo, Corsair Hydro Series H150i Pro, 64GB DDR @3200, ASUS ROG Strix Z490-F Gaming, HP Reverb G2

Link to comment
Share on other sites

1 hour ago, markturner1960 said:

Hi apologies for another slightly confused user post, I am in the exact same position as Parxuk, IE, G2, and want to use motion reprojection and the toolkit. I have installed the latest .dll you linked Baldrick. I have made a shortcut, with the force VR extension and used it to start DCS. DCS works and seems fine. But how do I know or can tell if DCS is now NOT using open composite? How do I un install open composite...do I need to?

 

In my case DCS hangs up running the native OpenXR support with motion reprojection. Using the alternative DLL and removing the --force_OpenXR switch reverts it to the opencomposite method which works.

If you look in your DCS log file it will show it running OpenVR - opencomposite intercepts OpenVR and redirects it to OpenXR or something like that.

VISUALIZER (Main): LAUNCH IN VR OpenVR: OpenVR

I know it is running in OpenXR as SteamVR does not start and the OpenXR Toolkit is working

AMD 5800X3D · MSI 4080 · Asus ROG Strix B550 Gaming  · HP Reverb Pro · 1Tb M.2 NVMe, 32Gb Corsair Vengence 3600MHz DDR4 · Windows 11 · Thrustmaster TPR Pedals · VIRPIL T-50CM3 Base, Alpha Prime R. VIRPIL VPC Rotor TCS Base. JetSeat

Link to comment
Share on other sites

1 hour ago, mbucchia said:

@BIGNEWY more information for the dev team regarding the remaining lock-up due to the frame loop deadlock.

After some more investigation, I believe the condition happens if and only if the frame predicted display times (xrFrameState.predictedDisplayTime) does not increment monotonically:

image.png

As seen above, the last value for predictedDisplayTime returned before the lock-up is 3,081,690,700,100, which is smaller than the previous frame predictedDisplayTime of 3,081,701,810,000. This seems to cause the game's frame loop to entirely skip the frame, without calling xrBeginFrame() (which is illegal and causes the deadlock).

Now I have to admit, this is a little bit weird, because per The OpenXR Specification (khronos.org):

I am thinking that because the loading screens in the game are skipping many many frames, this is confusing the motion reprojection logic. That's not OK and I will make a report to fix this in the next release of our runtime.

Meanwhile, I believe if the game engine made sure to always invoke xrBeginFrame() for each xrWaitFrame(), regardless of the predictedDisplayTime, this will make the engine more robust to these situations. Perhaps better, always use corrected_predictedDisplayTime = max(current_predictedDisplayTime, last_predictedDisplayTime + 1) to even avoid skipping a frame and ask the platform to perform the necessary frame reprojection. I believe if the dev team implements either one of these measures, the lock-up issues will be resolved.

For OpenXR Toolkit users, I believe this is the same issue that they are seeing with Turbo Mode.

To be clear, there are 3 bugs here, one in the game engine frame loop, one in the WMR OpenXR runtime, and one in OpenXR Toolkit. Oops!

 

Hero :notworthy:!

  • Like 2

Webmaster of http://www.yoyosims.pl

Yoyosimsbanner.gif

Win 10 64, i9-13900 KF, RTX  4090 24Gb OC, RAM 64Gb Corsair Vengeance LED OC@3600MHz,, 3xSSD+3xSSD M.2 NVMe, Predator XB271HU res.2560x1440 27'' G-sync, Sound Blaster Z + 5.1, TiR5, [MSFS, P3Dv5, DCS, RoF, Condor2, IL-2 CoD/BoX] VR fly only: Meta Quest Pro

Link to comment
Share on other sites

1 hour ago, Baldrick33 said:

In my case DCS hangs up running the native OpenXR support with motion reprojection. Using the alternative DLL and removing the --force_OpenXR switch reverts it to the opencomposite method which works.

If you look in your DCS log file it will show it running OpenVR - opencomposite intercepts OpenVR and redirects it to OpenXR or something like that.

VISUALIZER (Main): LAUNCH IN VR OpenVR: OpenVR

I know it is running in OpenXR as SteamVR does not start and the OpenXR Toolkit is working

Thanks Baldrick but sorry, I am still confused. Whats the openVR you refer to? I looked in my log file and it does say " Launch in VR OpenVr: OpenVr" 

I thought that previous to the update, we were able to run DCS using openXR, via open composite....have I got that correct? And that the update with native openXR support for DCS means that you no longer need to use open composite....have I got that correct? 

The only way to get DCS to run openXR natively is to use the shortcut with edited command line, correct? If you dont, you can carry on using it as you were, with open composite in the middle of the process? Correct? 

I know DCS is running using openXR, as I have the performance toolkit available, and steamVR is definitely NOT running....so I must be running openXR, correct? 

What I dont know is if I am simply running it as I always was, OR, if the open composite step has been removed from the process. How can I tell? I am asking as motion reprojection and the toolkit both seem to work fine for me, but not for you ( and others...)

Sorry, this is really confusing.....

 

EDit, to clarify, (as reading another thread

, it may be relevant), I have "enable VR headset" ticked in DCS options, as before I generally used Skatezillas utility to choose wether I booted in VR or 2D, as I use both equally......


Edited by markturner1960

System specs: PC1 :Scan 3XS Ryzen 5900X, 64GB Corsair veng DDR4 3600, EVGA GTX 3090 Win 10, Quest Pro, Samsung Odyssey G9 Neo monitor. Tir5. PC2 ( Helo) Scan 3XS Intel 9900 K, 32 GB Ram, 2080Ti, 50 inch Phillips monitor

 F/A-18C: Rhino FFB base TianHang F16 grip, Winwing MP 1, F-18 throttle, TO & Combat panels, MFG crosswind & DFB Aces  seat :cool:                       

Viper: WinWing MFSSB base with F-16 grip, Winwing F-16 throttle, plus Vipergear ICP. MFG crosswind rudders. 

Helo ( Apache) set up: Virpil collective with AH64D grip, Cyclic : Rhino FFB base & TM F18 grip, MFG crosswind rudders, Total controls AH64 MFD's,  TEDAC Unit. 

 

Link to comment
Share on other sites

17 minutes ago, markturner1960 said:

Thanks Baldrick but sorry, I am still confused. Whats the openVR you refer to? I looked in my log file and it does say " Launch in VR OpenVr: OpenVr" 

I thought that previous to the update, we were able to run DCS using openXR, via open composite....have I got that correct? And that the update with native openXR support for DCS means that you no longer need to use open composite....have I got that correct? 

The only way to get DCS to run openXR natively is to use the shortcut with edited command line, correct? If you dont, you can carry on using it as you were, with open composite in the middle of the process? Correct? 

I know DCS is running using openXR, as I have the performance toolkit available, and steamVR is definitely NOT running....so I must be running openXR, correct? 

What I dont know is if I am simply running it as I always was, OR, if the open composite step has been removed from the process. How can I tell? I am asking as motion reprojection and the toolkit both seem to work fine for me, but not for you ( and others...)

, it may be relevant), I have "enable VR headset" ticked in DCS options, as before I generally used Skatezillas utility to choose wether I booted in VR or 2D, as I use both equally......

 

If the log says OpenVR you are using OpenXR via Opencomposite (it hijacks the OpenVR output for want of a better phrase!)

If the log says OpenXR you are using it natively

AMD 5800X3D · MSI 4080 · Asus ROG Strix B550 Gaming  · HP Reverb Pro · 1Tb M.2 NVMe, 32Gb Corsair Vengence 3600MHz DDR4 · Windows 11 · Thrustmaster TPR Pedals · VIRPIL T-50CM3 Base, Alpha Prime R. VIRPIL VPC Rotor TCS Base. JetSeat

Link to comment
Share on other sites

OK, so as I suspected, I am in effect, using it as I was before. Judging from the video above the improvement gained from using the native DCS support is extremely small, enough to be not noticeable.....and combined with the issue with motion reprojection and turbo mode as explained by MBucchia, it makes sense for me to continue as I am currently. 

So I can forget the shortcut and simply use the Skatezilla app to launch DCS in either 2D or VR, as I was and its Saulgoodman.....Yes? 

 

And thanks for your patience!


Edited by markturner1960
  • Like 1

System specs: PC1 :Scan 3XS Ryzen 5900X, 64GB Corsair veng DDR4 3600, EVGA GTX 3090 Win 10, Quest Pro, Samsung Odyssey G9 Neo monitor. Tir5. PC2 ( Helo) Scan 3XS Intel 9900 K, 32 GB Ram, 2080Ti, 50 inch Phillips monitor

 F/A-18C: Rhino FFB base TianHang F16 grip, Winwing MP 1, F-18 throttle, TO & Combat panels, MFG crosswind & DFB Aces  seat :cool:                       

Viper: WinWing MFSSB base with F-16 grip, Winwing F-16 throttle, plus Vipergear ICP. MFG crosswind rudders. 

Helo ( Apache) set up: Virpil collective with AH64D grip, Cyclic : Rhino FFB base & TM F18 grip, MFG crosswind rudders, Total controls AH64 MFD's,  TEDAC Unit. 

 

Link to comment
Share on other sites

17 minutes ago, markturner1960 said:

OK, so as I suspected, I am in effect, using it as I was before. Judging from the video above the improvement gained from using the native DCS support is extremely small, enough to be not noticeable.....and combined with the issue with motion reprojection and turbo mode as explained by MBucchia, it makes sense for me to continue as I am currently. 

So I can forget the shortcut and simply use the Skatezilla app to launch DCS in either 2D or VR, as I was and its Saulgoodman.....Yes? 

 

And thanks for your patience!

 

Yes all good until a fix comes for native.

You are welcome!

AMD 5800X3D · MSI 4080 · Asus ROG Strix B550 Gaming  · HP Reverb Pro · 1Tb M.2 NVMe, 32Gb Corsair Vengence 3600MHz DDR4 · Windows 11 · Thrustmaster TPR Pedals · VIRPIL T-50CM3 Base, Alpha Prime R. VIRPIL VPC Rotor TCS Base. JetSeat

Link to comment
Share on other sites

Strange thing: as I suspect SteamVR may have something to do with my instant crashes with Pico4. I uninstalled and reinstalled SteamVR last night and well, I can fly a couple of missions before it crashed while loading another one. After that, it returned to instant crashes again. I think I need to open a support ticket.

VR Flight Guy in PJ Pants -- this is how I fly. We do not fly at treetop height, we fly between trees(TM)

YouTube: https://www.youtube.com/channel/UCc9BDi-STaqgWsjNiHbW0fA

My simple missions: https://forum.dcs.world/topic/284071-vr-flight-guy-in-pj-pants-simple-missions/

NSRI - National Strategy Research Institution, a fictional organisation based on wordplay of Strategic Naval Research Institution (SNRI), a fictional institution appears in Mobile Suit Gundam UC timeline.

Link to comment
Share on other sites

No crashes here with Pico4, VD and OpenXR over SteamVR. Can play for hours and it's running great. Native OpenXR is a great feature for DCS.

  • Like 1

i9 13900K @5.5GHz, Z790 Gigabyte Aorus Master, RTX4090 Waterforce, 64 GB DDR5 @5600, Pico 4, HOTAS & Rudder: all Virpil with Rhino FFB base made by VPforce, DCS: all modules

Link to comment
Share on other sites

Strange things happen to me, support ticket opened. Let the pro sorts it out. I can fall back to Quest2.

VR Flight Guy in PJ Pants -- this is how I fly. We do not fly at treetop height, we fly between trees(TM)

YouTube: https://www.youtube.com/channel/UCc9BDi-STaqgWsjNiHbW0fA

My simple missions: https://forum.dcs.world/topic/284071-vr-flight-guy-in-pj-pants-simple-missions/

NSRI - National Strategy Research Institution, a fictional organisation based on wordplay of Strategic Naval Research Institution (SNRI), a fictional institution appears in Mobile Suit Gundam UC timeline.

Link to comment
Share on other sites

On 1/29/2023 at 3:43 AM, Nuggetz said:

Thank you for your suggestion. I did try this approach and it didn’t work for me as I couldn’t get back into VR. I reverted to the DCS shortcut with command line and re imported it into Pitool. 
 

The downside is SteamVR powers up albeit with OpenXR runtime but I am still missing 10-12 FPS. It’s the only way I can play Multiplayer. Using the DCS shortcut direct only works fully in SP for me. 
 

Fingers crossed ED are able to offer a comprehensive fix in the coming week. 

I should have clarified the openvr_api.dll that I use.

It is 1.77MB (see posted image)

Maybe is different?

If not, I wish my procedure would have helped...

Seems to be a tricky rascal - Cheers 

image.png

  • Thanks 1
Link to comment
Share on other sites

Tried it, runs great on HP G2. It was easy to get up and running by following the instructions in the first two posts. I am seeing a bit of bump in performance and visual quality over SteamVR. I was never comfortable using Open Composite on my system, so am glad the developpers implemented this.

  • Like 1
Link to comment
Share on other sites

35 minutes ago, Ajax_ said:

I should have clarified the openvr_api.dll that I use.

It is 1.77MB (see posted image)

Maybe is different?

If not, I wish my procedure would have helped...

Seems to be a tricky rascal - Cheers 

 

1.77 MB is OpenComposite, some 500+kB is the DCS native one.

Link to comment
Share on other sites

1 hour ago, Ajax_ said:

I should have clarified the openvr_api.dll that I use.

It is 1.77MB (see posted image)

Maybe is different?

If not, I wish my procedure would have helped...

Thank you for your reply. I did try again and made a little progress but various issues emerged so I reverted to DCS (native OpenXR). Since then I have been able to get into Multiplayer a couple of times using the new DCS Shortcut with Command line directly. Performance is noticeably better but equally so fragile especially if I try to use F10 (map) which causes a crash/freeze). If we can get past the crashing and freezing I think ED are on a winner especially when you consider further performance enhancements are inbound with MT and DLSS.
 

In the interim I shall focus on enjoying the performance boost in SP. 

Thanks again. 


Edited by Nuggetz
  • Like 1

Ryzen 5950X, MSI  RTX 3080TI, 1 TB SSD, 64GB 3600 MHZ DDR4 RAM, Pimax Crystal and 8KX KDMAS. WINWING F16EX Throttle: FSSB-R3-MKII ULTRA Base/TMWH Joystick: DCS: F16C

Link to comment
Share on other sites

Another confused reply, I'm not even sure it's the right thread. I recently got my Reverb G2. This Saturday, with basically default settings and no intervention in Openxr I had 40-50 fps in free flight in Syria. Yesterday I couldn't get more than 30 fps, regardless of map. I tried Open composite, SteamVR (which doesn't work at all and messed up my dll's) and native Openxr. Not sure it's me messing with some settings or the last update, I'm pretty clueless at this point. I have disabled motion reprojection, in-game settings don't seem to change much. I have a 5800x and 6900xt, 32 Gigs of RAM until I have time to install more.

Link to comment
Share on other sites

Well, it ran almost perfect before either the latest DCS or OpenComposite patch 2 weeks ago.... over here Pimax8KX, newest Nvidia driver and Pitools update. DCS runs at around 45fps, PimaxXR runtime to "PimaxXR", OpenComposite... well, I just used it for switching Steam<->OpenXR, so I let it "stuck" to OpenXR and don't start it anymore, ok. Added "--force_enable_VR --force_OpenXR " to my exe.

I get some tearing effects, the pic in flight is jumping a tiny bit, not in the lobby (the virtual hangar at start) and not in flight in map view, just in cockpit / outside view this sickening view latency at way above 30fps. I hadn't had this with even 20fps before. I changed MotionReprojection, SmartSmoothing, HiddenAreaMask... no change. Unplayable ATM.

i12700, 64 GB, 3080 and M.2.

 

I just checked, DCS update replaced the openvr_api.dll with the original one (god, I hate that!). So I put the OpenXR one back into the folder (1,77MB)but no change! Wrong or right, no damn change! So the big one for OpenComposite, the small one for "--force_enable_VR --force_OpenXR", right. I can do it either way, DCS runs and doesnt crash, it's just that bad flickering.


Edited by void68
Link to comment
Share on other sites

15 hours ago, mbucchia said:

[...] Perhaps better, always use corrected_predictedDisplayTime = max(current_predictedDisplayTime, last_predictedDisplayTime + 1) to even avoid skipping a frame and ask the platform to perform the necessary frame reprojection. I believe if the dev team implements either one of these measures, the lock-up issues will be resolved.

For OpenXR Toolkit users, I believe this is the same issue that they are seeing with Turbo Mode.

To be clear, there are 3 bugs here, one in the game engine frame loop, one in the WMR OpenXR runtime, and one in OpenXR Toolkit. Oops!

 

I can confirm 100% that the max() logic described above solves all 3 of the issues I've been tracking: motion reprojection hang with WMR, random crashes with PimaxXR, and hang when using OpenXR Toolkit Turbo Mode. I am investigating whether there is any negative side effect to it.

  • Like 2
  • Thanks 10

This account is now inactive and not monitored.

Link to comment
Share on other sites

Fantastic news @mbucchia, big thx for your help like always!


Edited by YoYo

Webmaster of http://www.yoyosims.pl

Yoyosimsbanner.gif

Win 10 64, i9-13900 KF, RTX  4090 24Gb OC, RAM 64Gb Corsair Vengeance LED OC@3600MHz,, 3xSSD+3xSSD M.2 NVMe, Predator XB271HU res.2560x1440 27'' G-sync, Sound Blaster Z + 5.1, TiR5, [MSFS, P3Dv5, DCS, RoF, Condor2, IL-2 CoD/BoX] VR fly only: Meta Quest Pro

Link to comment
Share on other sites

12 minutes ago, mbucchia said:

Released a new version of OpenXR Toolkit 1.2.4, when used with DCS in native OpenXR mode, will let you use WMR reprojection and also Turbo Mode.

Quickstart | OpenXR Toolkit (mbucchia.github.io)

Just tried it and it works! I have motion reprojection running with my Reverb G1 and native OpenXR.

VISUALIZER (Main): LAUNCH IN VR OpenXR: Windows Mixed Reality

Thank You!

I will probably regret asking as it will likely make my brain hurt but how did you fix what seemed like a game bug using your toolkit?

  • Like 2

AMD 5800X3D · MSI 4080 · Asus ROG Strix B550 Gaming  · HP Reverb Pro · 1Tb M.2 NVMe, 32Gb Corsair Vengence 3600MHz DDR4 · Windows 11 · Thrustmaster TPR Pedals · VIRPIL T-50CM3 Base, Alpha Prime R. VIRPIL VPC Rotor TCS Base. JetSeat

Link to comment
Share on other sites

20 minutes ago, mbucchia said:

Released a new version of OpenXR Toolkit 1.2.4, when used with DCS in native OpenXR mode, will let you use WMR reprojection and also Turbo Mode.

Quickstart | OpenXR Toolkit (mbucchia.github.io)

Thankyou!

  • Like 1

12900KF | Maximus Hero Z690 | ASUS 4090 TUF OC | 64GB DDR5 5200 | DCS on 2TB NVMe | WarBRD+Warthog Stick | CM3 | TM TPR's | Varjo Aero

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...