diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 861e3a2246..6ebe997057 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -858,7 +858,7 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo { "gl_version_int", glVersionToInteger(glContextData.value("version").toString()) }, { "gl_version", glContextData["version"] }, { "gl_vender", glContextData["vendor"] }, - { "gl_sl_version", glContextData["slVersion"] }, + { "gl_sl_version", glContextData["sl_version"] }, { "gl_renderer", glContextData["renderer"] }, { "ideal_thread_count", QThread::idealThreadCount() } }; @@ -1173,10 +1173,19 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo properties["process_memory_used"] = static_cast(memInfo.processUsedMemoryBytes); } + // content location and build info - useful for filtering stats + auto addressManager = DependencyManager::get(); + auto currentDomain = addressManager->currentShareableAddress(true).toString(); // domain only + auto currentPath = addressManager->currentPath(true); // with orientation + properties["current_domain"] = currentDomain; + properties["current_path"] = currentPath; + properties["build_version"] = BuildInfo::VERSION; + auto displayPlugin = qApp->getActiveDisplayPlugin(); properties["fps"] = _frameCounter.rate(); properties["target_frame_rate"] = getTargetFrameRate(); + properties["render_rate"] = displayPlugin->renderRate(); properties["present_rate"] = displayPlugin->presentRate(); properties["new_frame_present_rate"] = displayPlugin->newFramePresentRate(); properties["dropped_frame_rate"] = displayPlugin->droppedFrameRate(); @@ -1222,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..4091a0d0b6 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 }, + { "sl_version", glslVersion }, + { "vendor", glVendor }, + { "renderer", glRenderer }, + }; + }); + return result; } QThread* RENDER_THREAD = nullptr; diff --git a/libraries/networking/src/AddressManager.cpp b/libraries/networking/src/AddressManager.cpp index c40fe29642..90250f839e 100644 --- a/libraries/networking/src/AddressManager.cpp +++ b/libraries/networking/src/AddressManager.cpp @@ -47,7 +47,7 @@ bool AddressManager::isConnected() { return DependencyManager::get()->getDomainHandler().isConnected(); } -QUrl AddressManager::currentAddress() const { +QUrl AddressManager::currentAddress(bool domainOnly) const { QUrl hifiURL; hifiURL.setScheme(HIFI_URL_SCHEME); @@ -57,7 +57,9 @@ QUrl AddressManager::currentAddress() const { hifiURL.setPort(_port); } - hifiURL.setPath(currentPath()); + if (!domainOnly) { + hifiURL.setPath(currentPath()); + } return hifiURL; } @@ -69,8 +71,7 @@ QUrl AddressManager::currentFacingAddress() const { return hifiURL; } - -QUrl AddressManager::currentShareableAddress() const { +QUrl AddressManager::currentShareableAddress(bool domainOnly) const { if (!_shareablePlaceName.isEmpty()) { // if we have a shareable place name use that instead of whatever the current host is QUrl hifiURL; @@ -78,11 +79,13 @@ QUrl AddressManager::currentShareableAddress() const { hifiURL.setScheme(HIFI_URL_SCHEME); hifiURL.setHost(_shareablePlaceName); - hifiURL.setPath(currentPath()); + if (!domainOnly) { + hifiURL.setPath(currentPath()); + } return hifiURL; } else { - return currentAddress(); + return currentAddress(domainOnly); } } diff --git a/libraries/networking/src/AddressManager.h b/libraries/networking/src/AddressManager.h index 06c5a8c554..ca0585583d 100644 --- a/libraries/networking/src/AddressManager.h +++ b/libraries/networking/src/AddressManager.h @@ -63,9 +63,9 @@ public: bool isConnected(); const QString& getProtocol() { return HIFI_URL_SCHEME; }; - QUrl currentAddress() const; + QUrl currentAddress(bool domainOnly = false) const; QUrl currentFacingAddress() const; - QUrl currentShareableAddress() const; + QUrl currentShareableAddress(bool domainOnly = false) const; QUrl currentFacingShareableAddress() const; QString currentPath(bool withOrientation = true) const; QString currentFacingPath() const;