From a04cd8e95c1c4324c13465cab8dd1859b4994d5c Mon Sep 17 00:00:00 2001 From: ZappoMan Date: Thu, 31 Oct 2013 13:54:10 -0700 Subject: [PATCH 1/2] added menu item to enable extra debugging to help debug hq VS issue --- interface/src/Application.cpp | 41 ++++++++++++++++++++++++++--------- interface/src/Menu.cpp | 3 +++ interface/src/Menu.h | 1 + 3 files changed, 35 insertions(+), 10 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 45e7245fc7..dac8a81b3b 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -2370,6 +2370,8 @@ void Application::queryVoxels() { return; } + bool bWantExtraDebugging = Menu::getInstance()->isOptionChecked(MenuOption::ExtraDebugging); + // These will be the same for all servers, so we can set them up once and then reuse for each server we send to. _voxelQuery.setWantLowResMoving(Menu::getInstance()->isOptionChecked(MenuOption::LowRes)); _voxelQuery.setWantColor(Menu::getInstance()->isOptionChecked(MenuOption::SendVoxelColors)); @@ -2428,7 +2430,7 @@ void Application::queryVoxels() { } } - if (unknownJurisdictionServers > 0) { + if (bWantExtraDebugging && unknownJurisdictionServers > 0) { qDebug("Servers: total %d, in view %d, unknown jurisdiction %d \n", totalServers, inViewServers, unknownJurisdictionServers); } @@ -2448,7 +2450,7 @@ void Application::queryVoxels() { } } - if (unknownJurisdictionServers > 0) { + if (bWantExtraDebugging && unknownJurisdictionServers > 0) { qDebug("perServerPPS: %d perUnknownServer: %d\n", perServerPPS, perUnknownServer); } @@ -2468,7 +2470,9 @@ void Application::queryVoxels() { // can get the jurisdiction... if (_voxelServerJurisdictions.find(nodeUUID) == _voxelServerJurisdictions.end()) { unknownView = true; // assume it's in view - qDebug() << "no known jurisdiction for node " << *node << ", assume it's visible.\n"; + if (bWantExtraDebugging) { + qDebug() << "no known jurisdiction for node " << *node << ", assume it's visible.\n"; + } } else { const JurisdictionMap& map = (_voxelServerJurisdictions)[nodeUUID]; @@ -2486,21 +2490,38 @@ void Application::queryVoxels() { } else { inView = false; } + } else { + if (bWantExtraDebugging) { + qDebug() << "Jurisdiction without RootCode for node " << *node << ". That's unusual!\n"; + } } } if (inView) { _voxelQuery.setMaxVoxelPacketsPerSecond(perServerPPS); } else if (unknownView) { - qDebug() << "no known jurisdiction for node " << *node << ", give it budget of " - << perUnknownServer << " to send us jurisdiction.\n"; + if (bWantExtraDebugging) { + qDebug() << "no known jurisdiction for node " << *node << ", give it budget of " + << perUnknownServer << " to send us jurisdiction.\n"; + } // set the query's position/orientation to be degenerate in a manner that will get the scene quickly - _voxelQuery.setCameraPosition(glm::vec3(-0.1,-0.1,-0.1)); - const glm::quat OFF_IN_NEGATIVE_SPACE = glm::quat(-0.5, 0, -0.5, 1.0); - _voxelQuery.setCameraOrientation(OFF_IN_NEGATIVE_SPACE); - _voxelQuery.setCameraNearClip(0.1); - _voxelQuery.setCameraFarClip(0.1); + // If there's only one server, then don't do this, and just let the normal voxel query pass through + // as expected... this way, we will actually get a valid scene if there is one to be seen + if (totalServers > 1) { + _voxelQuery.setCameraPosition(glm::vec3(-0.1,-0.1,-0.1)); + const glm::quat OFF_IN_NEGATIVE_SPACE = glm::quat(-0.5, 0, -0.5, 1.0); + _voxelQuery.setCameraOrientation(OFF_IN_NEGATIVE_SPACE); + _voxelQuery.setCameraNearClip(0.1); + _voxelQuery.setCameraFarClip(0.1); + if (bWantExtraDebugging) { + qDebug() << "Using 'minimal' camera position for node " << *node << "\n"; + } + } else { + if (bWantExtraDebugging) { + qDebug() << "Using regular camera position for node " << *node << "\n"; + } + } _voxelQuery.setMaxVoxelPacketsPerSecond(perUnknownServer); } else { _voxelQuery.setMaxVoxelPacketsPerSecond(0); diff --git a/interface/src/Menu.cpp b/interface/src/Menu.cpp index 11d1513404..a1f83007fd 100644 --- a/interface/src/Menu.cpp +++ b/interface/src/Menu.cpp @@ -475,6 +475,9 @@ Menu::Menu() : addCheckableActionToQMenuAndActionHash(voxelProtoOptionsMenu, MenuOption::DeltaSending); addCheckableActionToQMenuAndActionHash(voxelProtoOptionsMenu, MenuOption::OcclusionCulling); addCheckableActionToQMenuAndActionHash(voxelProtoOptionsMenu, MenuOption::DestructiveAddVoxel); + + addCheckableActionToQMenuAndActionHash(developerMenu, MenuOption::ExtraDebugging); + #ifndef Q_OS_MAC QMenu* helpMenu = addMenu("Help"); diff --git a/interface/src/Menu.h b/interface/src/Menu.h index 1bb25d8f21..cf6a35ff2b 100644 --- a/interface/src/Menu.h +++ b/interface/src/Menu.h @@ -163,6 +163,7 @@ namespace MenuOption { const QString DontCallOpenGLForVoxels = "Don't call glDrawRangeElementsEXT() for Voxels"; const QString EchoAudio = "Echo Audio"; const QString ExportVoxels = "Export Voxels"; + const QString ExtraDebugging = "Extra Debugging"; const QString HeadMouse = "Head Mouse"; const QString FaceMode = "Cycle Face Mode"; const QString FaceshiftTCP = "Faceshift (TCP)"; From 848e78aded1a879b031dc312814b1776723e318e Mon Sep 17 00:00:00 2001 From: ZappoMan Date: Thu, 31 Oct 2013 13:58:12 -0700 Subject: [PATCH 2/2] CR feedback --- interface/src/Application.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index dac8a81b3b..d1d48a15e2 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -2370,7 +2370,7 @@ void Application::queryVoxels() { return; } - bool bWantExtraDebugging = Menu::getInstance()->isOptionChecked(MenuOption::ExtraDebugging); + bool wantExtraDebugging = Menu::getInstance()->isOptionChecked(MenuOption::ExtraDebugging); // These will be the same for all servers, so we can set them up once and then reuse for each server we send to. _voxelQuery.setWantLowResMoving(Menu::getInstance()->isOptionChecked(MenuOption::LowRes)); @@ -2430,7 +2430,7 @@ void Application::queryVoxels() { } } - if (bWantExtraDebugging && unknownJurisdictionServers > 0) { + if (wantExtraDebugging && unknownJurisdictionServers > 0) { qDebug("Servers: total %d, in view %d, unknown jurisdiction %d \n", totalServers, inViewServers, unknownJurisdictionServers); } @@ -2450,7 +2450,7 @@ void Application::queryVoxels() { } } - if (bWantExtraDebugging && unknownJurisdictionServers > 0) { + if (wantExtraDebugging && unknownJurisdictionServers > 0) { qDebug("perServerPPS: %d perUnknownServer: %d\n", perServerPPS, perUnknownServer); } @@ -2470,7 +2470,7 @@ void Application::queryVoxels() { // can get the jurisdiction... if (_voxelServerJurisdictions.find(nodeUUID) == _voxelServerJurisdictions.end()) { unknownView = true; // assume it's in view - if (bWantExtraDebugging) { + if (wantExtraDebugging) { qDebug() << "no known jurisdiction for node " << *node << ", assume it's visible.\n"; } } else { @@ -2491,7 +2491,7 @@ void Application::queryVoxels() { inView = false; } } else { - if (bWantExtraDebugging) { + if (wantExtraDebugging) { qDebug() << "Jurisdiction without RootCode for node " << *node << ". That's unusual!\n"; } } @@ -2500,7 +2500,7 @@ void Application::queryVoxels() { if (inView) { _voxelQuery.setMaxVoxelPacketsPerSecond(perServerPPS); } else if (unknownView) { - if (bWantExtraDebugging) { + if (wantExtraDebugging) { qDebug() << "no known jurisdiction for node " << *node << ", give it budget of " << perUnknownServer << " to send us jurisdiction.\n"; } @@ -2514,11 +2514,11 @@ void Application::queryVoxels() { _voxelQuery.setCameraOrientation(OFF_IN_NEGATIVE_SPACE); _voxelQuery.setCameraNearClip(0.1); _voxelQuery.setCameraFarClip(0.1); - if (bWantExtraDebugging) { + if (wantExtraDebugging) { qDebug() << "Using 'minimal' camera position for node " << *node << "\n"; } } else { - if (bWantExtraDebugging) { + if (wantExtraDebugging) { qDebug() << "Using regular camera position for node " << *node << "\n"; } }