From e22a2e9e2fc424cb5584774d8f087b7c7c79e3ef Mon Sep 17 00:00:00 2001 From: Brad Hefta-Gaub Date: Tue, 25 Oct 2016 14:56:54 -0700 Subject: [PATCH] add gl info and gpu free memory to user stats --- interface/src/Application.cpp | 6 ++++-- libraries/gl/src/gl/GLHelpers.cpp | 25 +++++++++++++++---------- 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index e6fc4398c4..f70685a8b2 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -1181,8 +1181,6 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo properties["current_path"] = currentPath; properties["build_version"] = BuildInfo::VERSION; - qDebug() << "just sent stats with:" << currentDomain << currentPath << "build:" << BuildInfo::VERSION; - auto displayPlugin = qApp->getActiveDisplayPlugin(); properties["fps"] = _frameCounter.rate(); @@ -1233,6 +1231,10 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo properties["active_display_plugin"] = getActiveDisplayPlugin()->getName(); properties["using_hmd"] = isHMDMode(); + auto glInfo = getGLContextData(); + properties["gl_info"] = glInfo; + properties["gpu_free_memory"] = (int)BYTES_TO_MB(gpu::Context::getFreeGPUMemory()); + auto hmdHeadPose = getHMDSensorPose(); properties["hmd_head_pose_changed"] = isHMDMode() && (hmdHeadPose != lastHMDHeadPose); lastHMDHeadPose = hmdHeadPose; diff --git a/libraries/gl/src/gl/GLHelpers.cpp b/libraries/gl/src/gl/GLHelpers.cpp index dde1e0ec97..1604edccac 100644 --- a/libraries/gl/src/gl/GLHelpers.cpp +++ b/libraries/gl/src/gl/GLHelpers.cpp @@ -35,17 +35,22 @@ int glVersionToInteger(QString glVersion) { } QJsonObject getGLContextData() { - QString glVersion = QString((const char*)glGetString(GL_VERSION)); - QString glslVersion = QString((const char*) glGetString(GL_SHADING_LANGUAGE_VERSION)); - QString glVendor = QString((const char*) glGetString(GL_VENDOR)); - QString glRenderer = QString((const char*)glGetString(GL_RENDERER)); + static QJsonObject result; + static std::once_flag once; + std::call_once(once, [] { + QString glVersion = QString((const char*)glGetString(GL_VERSION)); + QString glslVersion = QString((const char*) glGetString(GL_SHADING_LANGUAGE_VERSION)); + QString glVendor = QString((const char*) glGetString(GL_VENDOR)); + QString glRenderer = QString((const char*)glGetString(GL_RENDERER)); - return QJsonObject { - { "version", glVersion }, - { "slVersion", glslVersion }, - { "vendor", glVendor }, - { "renderer", glRenderer }, - }; + result = QJsonObject { + { "version", glVersion }, + { "slVersion", glslVersion }, + { "vendor", glVendor }, + { "renderer", glRenderer }, + }; + }); + return result; } QThread* RENDER_THREAD = nullptr;