From 7d402f4baeafa1ec1ee67858c53bec5b712bc6ca Mon Sep 17 00:00:00 2001 From: Fluffy Jenkins Date: Thu, 19 Dec 2019 23:19:05 +0000 Subject: [PATCH 1/6] Changed so it will fail to load VR straight away instead of trying so much it causes audio failures --- plugins/openvr/src/OpenVrHelpers.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/plugins/openvr/src/OpenVrHelpers.cpp b/plugins/openvr/src/OpenVrHelpers.cpp index 108431a8ac..f00b5d184f 100644 --- a/plugins/openvr/src/OpenVrHelpers.cpp +++ b/plugins/openvr/src/OpenVrHelpers.cpp @@ -108,9 +108,11 @@ QString getVrSettingString(const char* section, const char* setting) { return result; } +int headsetNotConnected = -1; + vr::IVRSystem* acquireOpenVrSystem() { bool hmdPresent = vr::VR_IsHmdPresent(); - if (hmdPresent) { + if (hmdPresent && (headsetNotConnected <= 0)) { Lock lock(mutex); if (!activeHmd) { #if DEV_BUILD @@ -122,6 +124,14 @@ vr::IVRSystem* acquireOpenVrSystem() { #if DEV_BUILD qCDebug(displayplugins) << "OpenVR display: HMD is " << activeHmd << " error is " << eError; #endif + + if (eError == 108) { // vr::HmdError_Init_HmdNotFound + headsetNotConnected = 1; + activeHmd = nullptr; + #if DEV_BUILD + qCDebug(displayplugins) << "OpenVR: No HMD connected, setting nullptr!"; + #endif + } } if (activeHmd) { #if DEV_BUILD From 95c7998720eb2d061792e738f20262400c039454 Mon Sep 17 00:00:00 2001 From: Fluffy Jenkins Date: Thu, 19 Dec 2019 23:34:29 +0000 Subject: [PATCH 2/6] Changed code to correct type --- plugins/openvr/src/OpenVrHelpers.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/openvr/src/OpenVrHelpers.cpp b/plugins/openvr/src/OpenVrHelpers.cpp index f00b5d184f..d184f715e8 100644 --- a/plugins/openvr/src/OpenVrHelpers.cpp +++ b/plugins/openvr/src/OpenVrHelpers.cpp @@ -108,11 +108,11 @@ QString getVrSettingString(const char* section, const char* setting) { return result; } -int headsetNotConnected = -1; +bool isHMDConnected = false; vr::IVRSystem* acquireOpenVrSystem() { bool hmdPresent = vr::VR_IsHmdPresent(); - if (hmdPresent && (headsetNotConnected <= 0)) { + if (hmdPresent && (!isHMDConnected)) { Lock lock(mutex); if (!activeHmd) { #if DEV_BUILD @@ -126,7 +126,7 @@ vr::IVRSystem* acquireOpenVrSystem() { #endif if (eError == 108) { // vr::HmdError_Init_HmdNotFound - headsetNotConnected = 1; + isHMDConnected = true; activeHmd = nullptr; #if DEV_BUILD qCDebug(displayplugins) << "OpenVR: No HMD connected, setting nullptr!"; From a9ce336f6ca8fb6be02f33c7d35181ebd6e93da5 Mon Sep 17 00:00:00 2001 From: Fluffy Jenkins <31552479+FluffyJenkins@users.noreply.github.com> Date: Thu, 19 Dec 2019 23:52:49 +0000 Subject: [PATCH 3/6] Made thoys happy by renaming a varible --- plugins/openvr/src/OpenVrHelpers.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/openvr/src/OpenVrHelpers.cpp b/plugins/openvr/src/OpenVrHelpers.cpp index d184f715e8..dafb3c4928 100644 --- a/plugins/openvr/src/OpenVrHelpers.cpp +++ b/plugins/openvr/src/OpenVrHelpers.cpp @@ -108,7 +108,7 @@ QString getVrSettingString(const char* section, const char* setting) { return result; } -bool isHMDConnected = false; +bool isHMDInErrorState = false; vr::IVRSystem* acquireOpenVrSystem() { bool hmdPresent = vr::VR_IsHmdPresent(); From 9f3772093a678da77597f0fe313322a158e6e348 Mon Sep 17 00:00:00 2001 From: Fluffy Jenkins <31552479+FluffyJenkins@users.noreply.github.com> Date: Thu, 19 Dec 2019 23:54:34 +0000 Subject: [PATCH 4/6] Its late --- plugins/openvr/src/OpenVrHelpers.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/openvr/src/OpenVrHelpers.cpp b/plugins/openvr/src/OpenVrHelpers.cpp index dafb3c4928..c05f546a62 100644 --- a/plugins/openvr/src/OpenVrHelpers.cpp +++ b/plugins/openvr/src/OpenVrHelpers.cpp @@ -112,7 +112,7 @@ bool isHMDInErrorState = false; vr::IVRSystem* acquireOpenVrSystem() { bool hmdPresent = vr::VR_IsHmdPresent(); - if (hmdPresent && (!isHMDConnected)) { + if (hmdPresent && (!isHMDInErrorState)) { Lock lock(mutex); if (!activeHmd) { #if DEV_BUILD @@ -126,7 +126,7 @@ vr::IVRSystem* acquireOpenVrSystem() { #endif if (eError == 108) { // vr::HmdError_Init_HmdNotFound - isHMDConnected = true; + isHMDInErrorState = true; activeHmd = nullptr; #if DEV_BUILD qCDebug(displayplugins) << "OpenVR: No HMD connected, setting nullptr!"; From ac9adc3dfff963277f50f4c14e1e0f9d9b07fce2 Mon Sep 17 00:00:00 2001 From: Fluffy Jenkins <31552479+FluffyJenkins@users.noreply.github.com> Date: Fri, 20 Dec 2019 00:00:17 +0000 Subject: [PATCH 5/6] Update plugins/openvr/src/OpenVrHelpers.cpp I screm Co-Authored-By: Thijs Wenker --- plugins/openvr/src/OpenVrHelpers.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/openvr/src/OpenVrHelpers.cpp b/plugins/openvr/src/OpenVrHelpers.cpp index c05f546a62..bf857ecc41 100644 --- a/plugins/openvr/src/OpenVrHelpers.cpp +++ b/plugins/openvr/src/OpenVrHelpers.cpp @@ -112,7 +112,7 @@ bool isHMDInErrorState = false; vr::IVRSystem* acquireOpenVrSystem() { bool hmdPresent = vr::VR_IsHmdPresent(); - if (hmdPresent && (!isHMDInErrorState)) { + if (hmdPresent && !isHMDInErrorState) { Lock lock(mutex); if (!activeHmd) { #if DEV_BUILD From 6563d32395ac02a820563ddb53290aaf8266436d Mon Sep 17 00:00:00 2001 From: Fluffy Jenkins Date: Fri, 20 Dec 2019 00:57:38 +0000 Subject: [PATCH 6/6] Fixed something thats for sure --- plugins/openvr/src/OpenVrHelpers.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/openvr/src/OpenVrHelpers.cpp b/plugins/openvr/src/OpenVrHelpers.cpp index d184f715e8..ce60719d67 100644 --- a/plugins/openvr/src/OpenVrHelpers.cpp +++ b/plugins/openvr/src/OpenVrHelpers.cpp @@ -108,11 +108,11 @@ QString getVrSettingString(const char* section, const char* setting) { return result; } -bool isHMDConnected = false; +bool isHMDInErrorState = false; vr::IVRSystem* acquireOpenVrSystem() { bool hmdPresent = vr::VR_IsHmdPresent(); - if (hmdPresent && (!isHMDConnected)) { + if (hmdPresent && !isHMDInErrorState) { Lock lock(mutex); if (!activeHmd) { #if DEV_BUILD @@ -125,8 +125,8 @@ vr::IVRSystem* acquireOpenVrSystem() { qCDebug(displayplugins) << "OpenVR display: HMD is " << activeHmd << " error is " << eError; #endif - if (eError == 108) { // vr::HmdError_Init_HmdNotFound - isHMDConnected = true; + if (eError == vr::VRInitError_Init_HmdNotFound) { + isHMDInErrorState = true; activeHmd = nullptr; #if DEV_BUILD qCDebug(displayplugins) << "OpenVR: No HMD connected, setting nullptr!";