Crash when submitting OpenGL textures to OpenVR while hand detection is running

SOLVED
latte_oha
Contributor

Crash when submitting OpenGL textures to OpenVR while hand detection is running

Hello, I'm trying to integrate Hand Tracking SDK (0.8.0) onto my OpenVR application written in C++ and using OpenGL for rendering.

 

Unfortunately, my app begins to always crash within the first few frames after integration of the SDK although I could receive valid tracking data before crashing.

It looks that something wrong is occuring at IVRCompositor::Submit, because If I omit to call this, my app runs without crashing.

 

I've tried the UE4 plugin and found that it works fine, thus begin to suspect that there is some inconsistency issue when running the SDK on OpenVR+OpenGL based apps.

After looking into the developer forum, I found the simillar topic about SRWorks SDK which is already solved with binary modification.

https://community.viveport.com/t5/Vive-SRWorks-SDK/How-do-I-integrate-SRWorks-SDK-to-another-OpenVR-...

 

 

Any suggestion/information is helpful!

Thank you

Moderator

Re: Crash when submitting OpenGL textures to OpenVR while hand detection is running

Hi @latte_oha 

 

I think there is one difference between Hand Tracking SDK and SRWorks SDK, that we don't actuall use DirectX and OpenGL APIs. So the problem might be different though they have similar behaviors.

 

Can you problem a minimum working sample for us to reproduce your error and check how to fix it in Hand Tracking SDK?

 

Also, I think you need to initialize OpenVR in your application first before starting Hand Tracking SDK.

 

Best Regards,

Zhongyang

latte_oha
Contributor

Re: Crash when submitting OpenGL textures to OpenVR while hand detection is running

Hello @zzy 

 

Thanks for your quick reply!

 

Based on your suggestion, I've tried to see if the problem reproduces using the openvr's official examples "hellovr_opengl" and "hellovr_dx12" (https://github.com/ValveSoftware/openvr/tree/master/samples).

The result is that "hellovr_opengl" app crashes with in the first few frames while "hellovr_dx12" app runs without any problem.

 

- To build them on my Windows 10 x64, I've used the solution/project files for x86 build, which are contained in the openvr samples above, and made minimal necessary modification to them for x64 build.

- Hand Tracking SDK is used following the documentation.

    - StartGestureDetection at the end of CMainApplication::BInit()

    - StopGestureDetection in the beginning of CMainApplication::Shutdown()

    - the problem occurs even if I don't call GetGestureResult

    - when the app crashes, access violation at vcruntime140.dll is sometimes reported by the debugger

 

I think it will not take much time to arrange them, but if you need the actual codes for further investigation, let me somehow send them to you.

 

Best Regards

Moderator

Re: Crash when submitting OpenGL textures to OpenVR while hand detection is running

Hi @latte_oha ,

 

Thanks for the info. I will try to reproduce it this week to see if I can find any solutions.

Moderator
Solution

Re: Crash when submitting OpenGL textures to OpenVR while hand detection is running

Hi @latte_oha,

 

We have released a patch release (forum link) which should your problem. Please have a try.

 

Best Regards,

zzy

latte_oha
Contributor

Re: Crash when submitting OpenGL textures to OpenVR while hand detection is running

Hi @zzy 

 

Thank you for the patch release!

Now Hand Tracking SDK works fine with OpenGL based apps :)

 

Thank you