Jump to content

ChannexDK

Verified Members
  • Posts

    1
  • Joined

  • Last visited

Posts posted by ChannexDK

    • Unity 2020.3.8
    • OpenVR 1.1.4
    • VIVE Hands Tracking SDK 1.0.0

    When exiting playmode, the GestureInterface.StopGestureDetection(); crashes. I noticed the comment in the WindowsPlayModeMonitor, saying that it needed to shutdown the detection engine, because the UnityXR system stops before OnApplicationExit is called. This is very true, but judging from the log, the XR system is also being shut down before the playModeStateChanged callback is executed. I'm not entirely sure how to work around this, since there is no earlier callback in Unity that I know of, so the best resolution would be for the aristo_interface to not assume that any XR pointers are valid when StopGestureDetection is called. It seems like it's trying to access something in a SetCameraTransform() function - and I have made absolutely sure that it is not because SetCameraTransform is being called from the Unity side (added logs around the call and checked).

    Note: The log entry "ViveHandTrackingEngine.StopDetection() called" is from a Debug.Log statement I added to make sure exactly where the crash came from. My StopDetection method in ViveHandTrackingEngine.cs looks like this:

    public override void StopDetection()
            {
                Debug.Log("ViveHandTrackingEngine.StopDetection() called");
                this.isRunning = false;
                GestureInterface.StopGestureDetection();
                lastIndex = -1;
                Debug.Log("ViveHandTrackingEngine.StopDetection() Complete");
            }

    The StopDetection() log statement is never logged (therefore I can be fairly certain that the crash is occuring in StopGestureDetection(). No other changes were made to the package and the crash also happens in the examples. Every time.

    Except from the log:
    [XR] [OpenVR] Device disconnected (stopping provider). Handle: 653853456. DeviceID: 0
    [XR] [OpenVR] Device disconnected (stopping provider). Handle: 653853456. DeviceID: 1
    [XR] [OpenVR] Device disconnected (stopping provider). Handle: 653853456. DeviceID: 2
    [XR] [OpenVR] Device disconnected (stopping provider). Handle: 653853456. DeviceID: 3
    [XR] [OpenVR] XR OpenVR Display Stop
    [XR] [OpenVR] XR OpenVR Display Shutdown
    XRTextureManager::RequestDestroyTexture
    XRTextureManager::RequestDestroyTexture
    XRTextureManager::RequestDestroyTexture
    XRTextureManager::RequestDestroyTexture
    [XR] [OpenVR] Shutdown
    XRTextureManager::RequestDestroyTexture
    XRTextureManager::RequestDestroyTexture
    XRTextureManager::RequestDestroyTexture
    XRTextureManager::RequestDestroyTexture

    ViveHandTrackingEngine.StopDetection() called
    UnityEngine.StackTraceUtility:ExtractStackTrace ()
    UnityEngine.DebugLogHandler:LogFormat (UnityEngine.LogType,UnityEngine.Object,string,object[])
    UnityEngine.Logger:Log (UnityEngine.LogType,object)
    UnityEngine.Debug:Log (object)
    ViveHandTracking.ViveHandTrackingEngine:StopDetection () (at Packages/com.htc.upm.vivehandtracking@1.0.0/Runtime/Scripts/Engine/ViveHandTrackingEngine.cs:220)
    ViveHandTracking.GestureProvider:StopGestureDetection () (at Packages/com.htc.upm.vivehandtracking@1.0.0/Runtime/Scripts/GestureProvider.cs:181)
    ViveHandTracking.GestureProvider:OnDisable () (at Packages/com.htc.upm.vivehandtracking@1.0.0/Runtime/Scripts/GestureProvider.cs:189)
    ViveHandTracking.WindowsPlayModeMonitor:LogPlayModeState (UnityEditor.PlayModeStateChange) (at Packages/com.htc.upm.vivehandtracking@1.0.0/Editor/WindowsPlayModeMonitor.cs:16)
    UnityEditor.EditorApplication:Internal_PlayModeStateChanged (UnityEditor.PlayModeStateChange)

    **Content CUT for clarity**

    ========== OUTPUTTING STACK TRACE ==================

    0x00007FFA3F2762C2 (aristo_interface) SetCameraTransform
    0x00007FFA3F270268 (aristo_interface) SetCameraTransform
    0x00007FFA3F26CB6F (aristo_interface) GetGestureResult
      ERROR: SymGetSymFromAddr64, GetLastError: 'Attempt to access invalid address.' (Address: 00007FFA3F257A54)
    0x00007FFA3F257A54 (aristo_interface) (function-name not available)
      ERROR: SymGetSymFromAddr64, GetLastError: 'Attempt to access invalid address.' (Address: 00007FFA3F25AC9F)
    0x00007FFA3F25AC9F (aristo_interface) (function-name not available)
      ERROR: SymGetSymFromAddr64, GetLastError: 'Attempt to access invalid address.' (Address: 00007FFA3F25E655)
    0x00007FFA3F25E655 (aristo_interface) (function-name not available)
      ERROR: SymGetSymFromAddr64, GetLastError: 'Attempt to access invalid address.' (Address: 00007FFA3F259B28)
    0x00007FFA3F259B28 (aristo_interface) (function-name not available)
    0x00007FFAB7BE1BB2 (ucrtbase) configthreadlocale
    0x00007FFAB8BC7034 (KERNEL32) BaseThreadInitThunk
    0x00007FFABA362651 (ntdll) RtlUserThreadStart

    ========== END OF STACKTRACE ===========

    • Like 1
×
×
  • Create New...