Jump to content

Vive Business Streaming - ViveOpenXRFacialTracking.dll xr api layer causes random crashes in unity OpenXR applications.


Recommended Posts


Applications sometimes crash during openxr initialization/startup when XR_APILAYER_VIVE_facial_tracking (ViveOpenXRFacialTracking.dll) is loaded.



VBS - 1.10.4

ViveOpenXRFacialTracking.dll -

Unity - 2021.3

OpenXR plugin - 1.6.0


Cannot be reproduced consistently. Happens mostly when VBS  is running without steamvr and openxr is initialized manually inside unity script.

Sample app:

Unity application with unity OpenXR plugin v1.6.0 https://docs.unity3d.com/Packages/com.unity.xr.openxr@1.6/manual/index.html

One of the OpenXR plugin samples (InterceptFeature) can be used.

+ simple script (attatched in files) that would start and stop openxr loader on key press.

To achieve said crash:

1/ start VBS (without steamvr)

2/ start unity app

3/ press M (StartXR)

4/ if application did not crash kill vrserver.exe and goto step 3

Workaround A:

Disable facial tracking layer in system registry. HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\OpenXR\1\ApiLayers\Implicit  - set facial tracking dword to something != 0

Workaround B:

Disable facial tracking layer using DISABLE_XR_APILAYER_VIVE_FACIAL_TRACKING_1 environment variable


XRSwitch.cs Editor.log htc_openxr_facial_tracking_20230118.txt crash.dmp htc_facial_tracking_crash.evtx

Link to comment
Share on other sites

  • 1 month later...

Hi @vrp_vh,

After reading your reproduce steps, there is one thing I cannot figure out - how do you mean VBS running without SteamVR?

Since VBS is not a OpenXR runtime, if you would like to run a OpenXR App, you must need SteamVR as a OpenXR runtime to get it work.

But from your reproduce step 4, you mentioned about vrserver which is one component of SteamVR and that means SteamVR is running at that time, amm I right?

Just want to confirm that SteamVR is running or not when you play the Unity OpenXR App and whether SteamVR is set to be OpenXR active runtime?


Link to comment
Share on other sites

  • 2 months later...


sorry for the delay, I did not get any notification about your reply.

When you start VBS it's in "Stand by" mode and SteamVR is not running until you connect the headset.

The unity application can start in "desktop view/desktop mode" and then request "VR/OpenXR" startup on-demand. (see the attached script)

Most of the time it's going to start SteamVR just fine. Then you can connect the headset and everything's fine. Sometimes crash happens.

Funny thing... I have just noticed while testing this again that similar crash happens with "ViveOpenXRHandtracking.dll"




crash.dmp Editor.log

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Create New...