From 17d00ee3f9c8c7ada3a998b4eb01758248cbf03e Mon Sep 17 00:00:00 2001 From: "Anthony J. Thibault" Date: Fri, 7 Oct 2016 11:41:58 -0700 Subject: [PATCH] Workaround openvr crash by calling Submit before VR_Shutdown --- plugins/openvr/src/OpenVrHelpers.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/plugins/openvr/src/OpenVrHelpers.cpp b/plugins/openvr/src/OpenVrHelpers.cpp index 820476191a..64bad19e3c 100644 --- a/plugins/openvr/src/OpenVrHelpers.cpp +++ b/plugins/openvr/src/OpenVrHelpers.cpp @@ -103,6 +103,15 @@ void releaseOpenVrSystem() { #if DEV_BUILD qCDebug(displayplugins) << "OpenVR: zero refcount, deallocate VR system"; #endif + + // HACK: workaround openvr crash, call submit right before VR_Shutdown. + const GLuint NON_ZERO_GL_TEXTURE_HANDLE = 1; + vr::Texture_t vrTexture{ (void*)NON_ZERO_GL_TEXTURE_HANDLE, vr::API_OpenGL, vr::ColorSpace_Auto }; + static vr::VRTextureBounds_t OPENVR_TEXTURE_BOUNDS_LEFT{ 0, 0, 0.5f, 1 }; + static vr::VRTextureBounds_t OPENVR_TEXTURE_BOUNDS_RIGHT{ 0.5f, 0, 1, 1 }; + vr::VRCompositor()->Submit(vr::Eye_Left, &vrTexture, &OPENVR_TEXTURE_BOUNDS_LEFT); + vr::VRCompositor()->Submit(vr::Eye_Right, &vrTexture, &OPENVR_TEXTURE_BOUNDS_RIGHT); + vr::VR_Shutdown(); _openVrQuitRequested = false; activeHmd = nullptr;