From 776893a5ab88cb77e14904073a5bfe7121bab0aa Mon Sep 17 00:00:00 2001 From: Zach Pomerantz Date: Mon, 28 Mar 2016 11:22:56 -0700 Subject: [PATCH] Improve logging for oculus errors --- .../oculus/src/OculusBaseDisplayPlugin.cpp | 2 +- plugins/oculus/src/OculusDisplayPlugin.cpp | 2 +- plugins/oculus/src/OculusHelpers.cpp | 26 ++++++++++++++++--- plugins/oculus/src/OculusHelpers.h | 2 ++ 4 files changed, 26 insertions(+), 6 deletions(-) diff --git a/plugins/oculus/src/OculusBaseDisplayPlugin.cpp b/plugins/oculus/src/OculusBaseDisplayPlugin.cpp index 29fc014a64..1ed5c9f22a 100644 --- a/plugins/oculus/src/OculusBaseDisplayPlugin.cpp +++ b/plugins/oculus/src/OculusBaseDisplayPlugin.cpp @@ -65,7 +65,7 @@ void OculusBaseDisplayPlugin::internalActivate() { if (!OVR_SUCCESS(ovr_ConfigureTracking(_session, ovrTrackingCap_Orientation | ovrTrackingCap_Position | ovrTrackingCap_MagYawCorrection, 0))) { - qWarning() << "Could not attach to sensor device"; + logWarning("Failed to attach to sensor device"); } // Parent class relies on our _session intialization, so it must come after that. diff --git a/plugins/oculus/src/OculusDisplayPlugin.cpp b/plugins/oculus/src/OculusDisplayPlugin.cpp index 71a858e1e8..8c3a676c61 100644 --- a/plugins/oculus/src/OculusDisplayPlugin.cpp +++ b/plugins/oculus/src/OculusDisplayPlugin.cpp @@ -67,7 +67,7 @@ void OculusDisplayPlugin::hmdPresent() { ovrLayerHeader* layers = &_sceneLayer.Header; ovrResult result = ovr_SubmitFrame(_session, _currentRenderFrameIndex, &_viewScaleDesc, &layers, 1); if (!OVR_SUCCESS(result)) { - qDebug() << result; + logWarning("Failed to present"); } } _sceneFbo->Increment(); diff --git a/plugins/oculus/src/OculusHelpers.cpp b/plugins/oculus/src/OculusHelpers.cpp index db65c72aac..170be05952 100644 --- a/plugins/oculus/src/OculusHelpers.cpp +++ b/plugins/oculus/src/OculusHelpers.cpp @@ -10,16 +10,34 @@ #include #include + using Mutex = std::mutex; using Lock = std::unique_lock; - Q_DECLARE_LOGGING_CATEGORY(oculus) Q_LOGGING_CATEGORY(oculus, "hifi.plugins.oculus") static std::atomic refCount { 0 }; static ovrSession session { nullptr }; +inline ovrErrorInfo getError() { + ovrErrorInfo error; + ovr_GetLastErrorInfo(&error); + return error; +} + +void logWarning(const char* what) { + qWarning(oculus) << what << ":" << getError().ErrorString; +} + +void logFatal(const char* what) { + std::string error("[oculus] "); + error += what; + error += ": "; + error += getError().ErrorString; + qFatal(error.c_str()); +} + bool oculusAvailable() { ovrDetectResult detect = ovr_Detect(0); return (detect.IsOculusServiceRunning && detect.IsOculusHMDConnected); @@ -37,14 +55,14 @@ ovrSession acquireOculusSession() { init.ConnectionTimeoutMS = 0; init.LogCallback = nullptr; if (!OVR_SUCCESS(ovr_Initialize(nullptr))) { - qCWarning(oculus) << "Failed to initialize Oculus SDK"; + logWarning("Failed to initialize Oculus SDK"); return session; } Q_ASSERT(0 == refCount); ovrGraphicsLuid luid; if (!OVR_SUCCESS(ovr_Create(&session, &luid))) { - qCWarning(oculus) << "Failed to acquire Oculus session"; + logWarning("Failed to acquire Oculus session"); return session; } } @@ -105,7 +123,7 @@ void SwapFramebufferWrapper::initColor() { destroyColor(); if (!OVR_SUCCESS(ovr_CreateSwapTextureSetGL(_session, GL_SRGB8_ALPHA8, size.x, size.y, &color))) { - qFatal("Unable to create swap textures"); + logFatal("Failed to create swap textures"); } for (int i = 0; i < color->TextureCount; ++i) { diff --git a/plugins/oculus/src/OculusHelpers.h b/plugins/oculus/src/OculusHelpers.h index cd527b184b..e10e058ad2 100644 --- a/plugins/oculus/src/OculusHelpers.h +++ b/plugins/oculus/src/OculusHelpers.h @@ -14,6 +14,8 @@ #include +void logWarning(const char* what); +void logFatal(const char* what); bool oculusAvailable(); ovrSession acquireOculusSession(); void releaseOculusSession();