07-01-2023 02:33 PM
I'm using Autodesk's VRED program.
The VRED program wants to use Hand Tracking via OpenXR (OpenXR is leveraged because the VRED program does not directly support Quest products)
If you try to activate the VR environment through OpenXR using Quest2 and Quest Pro equipment, an error occurs and the program shuts down.
Conditions are normally using a cable that supports USB 3.0 or later, enabling developer mode in the Oculus smartphone app, and enabling OpenXR Runtime in the Oculus PC program. VRED is currently using the most recent version of Professional 2024 (16.0.11988). I had the same issue when using the 2023 (April) version. The Oculus PC app version is also using the latest version, 54.0.110.284.
Switching Display Mode to OpenXR HMD with Quest Link turned on on on the Quest device in the View option of VRED often results in an error and the VRED program is forced to shut down (sometimes when multiple attempts are made)
As for the error report,
Date/Time: 2023-06-29 06:50:09 +09:00
Application: VREDPro.exe
Error: Access violation - code c0000005 (first/second chance not available)
Crashed Module Name: XR_EXT_hand_tracking.dll
Exception Address: 0x00007ff859bb6b5f
Exception Code: c0000005
Exception Flags: 0
Exception Parameters: 0, 3b4c0000003c
You can check these error details.
If you check the Callstack Text file,
OS-Version: 6.2.9200 () 0x100-0x1
00007FF859BB6B5F (XR_EXT_hand_tracking): (filename not available): OVRInterfaceShutdown
00007FF84C349873 (vrDisplayHandler): (filename not available): vrOpenXRHandTracker::locateHandJoints
00007FF84C3490C5 (vrDisplayHandler): (filename not available): vrOpenXRHandTracker::update
00007FF84C3324D0 (vrDisplayHandler): (filename not available): vrOpenXRHandler::update
00007FF841C16048 (vrKernel): (filename not available): vrOSGWidget::processVREvents
00007FF841935223 (vrKernel): (filename not available): vrController::timerLoop
00007FF85FD9321B (Qt6Core): (filename not available): QObject::qt_static_metacall
00007FF85FD95364 (Qt6Core): (filename not available): QMetaObject::activate
00007FF85FDAAB0C (Qt6Core): (filename not available): QTimer::timerEvent
00007FF85FD9B8E7 (Qt6Core): (filename not available): QObject::event
00007FF85CF7134E (Qt6Widgets): (filename not available): QApplicationPrivate::notify_helper
00007FF85CF7031B (Qt6Widgets): (filename not available): QApplication::notify
00007FF7F44EB582 (VREDPro): (filename not available): vrApplication::notify
00007FF85FD59805 (Qt6Core): (filename not available): QCoreApplication::notifyInternal2
00007FF85FEAB278 (Qt6Core): (filename not available): QEventDispatcherWin32::event
00007FF85CF7134E (Qt6Widgets): (filename not available): QApplicationPrivate::notify_helper
00007FF85CF7031B (Qt6Widgets): (filename not available): QApplication::notify
00007FF7F44EB582 (VREDPro): (filename not available): vrApplication::notify
00007FF85FD59805 (Qt6Core): (filename not available): QCoreApplication::notifyInternal2
00007FF85FD5BB4D (Qt6Core): (filename not available): QCoreApplicationPrivate::sendPostedEvents
00007FF85C81DC9F (Qt6Gui): (filename not available): QWindowsGuiEventDispatcher::sendPostedEvents
00007FF85FEAB622 (Qt6Core): (filename not available): QEventDispatcherWin32::processEvents
00007FF85C81DC79 (Qt6Gui): (filename not available): QWindowsGuiEventDispatcher::processEvents
00007FF85FD5E34F (Qt6Core): (filename not available): QEventLoop::exec
00007FF85FD578AC (Qt6Core): (filename not available): QCoreApplication::exec
00007FF84193A9F7 (vrKernel): (filename not available): vrController::loop
00007FF7F44E040E (VREDPro): (filename not available): safeRun
00007FF7F44DF7B1 (VREDPro): (filename not available): vrCrashHandler::run
00007FF7F44CCC0A (VREDPro): (filename not available): vrMain::run
00007FF7F44C176B (VREDPro): (filename not available): vrmain
00007FF7F44C11D4 (VREDPro): (filename not available): wWinMain
00007FF7F44F639A (VREDPro): (filename not available): __scrt_common_main_seh
00007FF87F797614 (KERNEL32): (filename not available): BaseThreadInitThunk
00007FF87FA426F1 (ntdll): (filename not available): RtlUserThreadStart
You can check this out.
VRED's OpenVR HMD mode operates normally, but VRED's OpenVR HMD mode operates over Steam VR, so Hand Tracking is not enabled.
Alternatively, enabling OpenXR Runtime on SteamVR and operating OpenXR HMD mode will still function normally, but Hand Tracking will not work here either. An error occurs only when utilizing Oulus's OpenXR Runtime. I'm guessing there's a problem when I try to use Hand Tracking. This is because even if you utilize Oulus' OpenXR Runtime, there is no error when you turn off Hand Tracking in VRED's settings and run OpenXR.
Does anyone know a solution?
07-14-2023 10:25 AM
Hi @jeyun.2023 - do you have a support contact at Autodesk that you can ask about this one? From the callstack, it seems like that the bug is when they are calling `xrLocateHandJointsEXT`. If one of the parameters to the two structs passed to this function has invalid parameters as crash like this might result. Those two structs are `XrHandJointsLocateInfoEXT` and `XrHandJointLocationsEXT`. Particular care should be applied to the `next` pointers in these structs which are used by the Meta / Oculus runtimes but which may not be used by other OpenXR runtimes.
Thanks,
John