From ec2b11640ce7606e004cc6909d85b6a9bd3cd390 Mon Sep 17 00:00:00 2001 From: ZappoMan Date: Wed, 25 Mar 2015 12:51:13 -0700 Subject: [PATCH 1/5] more tweaks to LOD logic --- interface/src/LODManager.cpp | 101 ++++++++++++++++++++++++----------- interface/src/LODManager.h | 39 +++++++++----- 2 files changed, 95 insertions(+), 45 deletions(-) diff --git a/interface/src/LODManager.cpp b/interface/src/LODManager.cpp index 8b942dcfe1..751bea8c23 100644 --- a/interface/src/LODManager.cpp +++ b/interface/src/LODManager.cpp @@ -40,26 +40,38 @@ float LODManager::getLODIncreaseFPS() { void LODManager::autoAdjustLOD(float currentFPS) { + // NOTE: our first ~100 samples at app startup are completely all over the place, and we don't // really want to count them in our average, so we will ignore the real frame rates and stuff // our moving average with simulated good data const int IGNORE_THESE_SAMPLES = 100; - const float ASSUMED_FPS = 60.0f; - if (_fpsAverage.getSampleCount() < IGNORE_THESE_SAMPLES) { + //const float ASSUMED_FPS = 60.0f; + if (_fpsAverageUpWindow.getSampleCount() < IGNORE_THESE_SAMPLES) { currentFPS = ASSUMED_FPS; + _lastUpShift = _lastDownShift = usecTimestampNow(); } - _fpsAverage.updateAverage(currentFPS); - _fastFPSAverage.updateAverage(currentFPS); + _fpsAverageStartWindow.updateAverage(currentFPS); + _fpsAverageDownWindow.updateAverage(currentFPS); + _fpsAverageUpWindow.updateAverage(currentFPS); quint64 now = usecTimestampNow(); bool changed = false; bool octreeChanged = false; - quint64 elapsed = now - _lastAdjust; + quint64 elapsedSinceDownShift = now - _lastDownShift; + quint64 elapsedSinceUpShift = now - _lastUpShift; if (_automaticLODAdjust) { - // LOD Downward adjustment - if (elapsed > ADJUST_LOD_DOWN_DELAY && _fpsAverage.getAverage() < getLODDecreaseFPS()) { + + // LOD Downward adjustment + // If our last adjust was an upshift, then we don't want to consider any downshifts until we've delayed at least + // our START_DELAY_WINDOW_IN_SECS + bool doDownShift = _lastAdjustWasUpShift + ? (elapsedSinceUpShift > START_SHIFT_ELPASED && _fpsAverageStartWindow.getAverage() < getLODDecreaseFPS()) + : (elapsedSinceDownShift > DOWN_SHIFT_ELPASED && _fpsAverageDownWindow.getAverage() < getLODDecreaseFPS()); + + + if (doDownShift) { // Octree items... stepwise adjustment if (_octreeSizeScale > ADJUST_LOD_MIN_SIZE_SCALE) { @@ -70,37 +82,58 @@ void LODManager::autoAdjustLOD(float currentFPS) { octreeChanged = changed = true; } - if (changed) { - _lastAdjust = now; - qDebug() << "adjusting LOD down... average fps for last approximately 5 seconds=" << _fpsAverage.getAverage() - << "_octreeSizeScale=" << _octreeSizeScale; + if (changed) { + if (_lastAdjustWasUpShift) { + qDebug() << "adjusting LOD DOWN after initial delay..." + << "average fps for last "<< START_DELAY_WINDOW_IN_SECS <<"seconds was " + << _fpsAverageStartWindow.getAverage() + << "minimum is:" << getLODDecreaseFPS() + << "elapsedSinceUpShift:" << elapsedSinceUpShift + << " NEW _octreeSizeScale=" << _octreeSizeScale; + } else { + qDebug() << "adjusting LOD DOWN..." + << "average fps for last "<< DOWN_SHIFT_WINDOW_IN_SECS <<"seconds was " + << _fpsAverageDownWindow.getAverage() + << "minimum is:" << getLODDecreaseFPS() + << "elapsedSinceDownShift:" << elapsedSinceDownShift + << " NEW _octreeSizeScale=" << _octreeSizeScale; + } + + _lastDownShift = now; + _lastAdjustWasUpShift = false; emit LODDecreased(); } - } + } else { - // LOD Upward adjustment - if (elapsed > ADJUST_LOD_UP_DELAY && _fpsAverage.getAverage() > getLODIncreaseFPS()) { + // LOD Upward adjustment + if (elapsedSinceUpShift > UP_SHIFT_ELPASED && _fpsAverageUpWindow.getAverage() > getLODIncreaseFPS()) { - // Octee items... stepwise adjustment - if (_octreeSizeScale < ADJUST_LOD_MAX_SIZE_SCALE) { - if (_octreeSizeScale < ADJUST_LOD_MIN_SIZE_SCALE) { - _octreeSizeScale = ADJUST_LOD_MIN_SIZE_SCALE; - } else { - _octreeSizeScale *= ADJUST_LOD_UP_BY; + // Octee items... stepwise adjustment + if (_octreeSizeScale < ADJUST_LOD_MAX_SIZE_SCALE) { + if (_octreeSizeScale < ADJUST_LOD_MIN_SIZE_SCALE) { + _octreeSizeScale = ADJUST_LOD_MIN_SIZE_SCALE; + } else { + _octreeSizeScale *= ADJUST_LOD_UP_BY; + } + if (_octreeSizeScale > ADJUST_LOD_MAX_SIZE_SCALE) { + _octreeSizeScale = ADJUST_LOD_MAX_SIZE_SCALE; + } + octreeChanged = changed = true; } - if (_octreeSizeScale > ADJUST_LOD_MAX_SIZE_SCALE) { - _octreeSizeScale = ADJUST_LOD_MAX_SIZE_SCALE; - } - octreeChanged = changed = true; - } - if (changed) { - _lastAdjust = now; - qDebug() << "adjusting LOD up... average fps for last approximately 5 seconds=" << _fpsAverage.getAverage() - << "_octreeSizeScale=" << _octreeSizeScale; + if (changed) { + qDebug() << "adjusting LOD UP... average fps for last "<< UP_SHIFT_WINDOW_IN_SECS <<"seconds was " + << _fpsAverageUpWindow.getAverage() + << "upshift point is:" << getLODIncreaseFPS() + << "elapsedSinceUpShift:" << elapsedSinceUpShift + << " NEW _octreeSizeScale=" << _octreeSizeScale; - emit LODIncreased(); + _lastUpShift = now; + _lastAdjustWasUpShift = true; + + emit LODIncreased(); + } } } @@ -116,9 +149,13 @@ void LODManager::autoAdjustLOD(float currentFPS) { } void LODManager::resetLODAdjust() { - _fpsAverage.reset(); - _fastFPSAverage.reset(); + + // TODO: Do we need this??? + /* + _fpsAverageDownWindow.reset(); + _fpsAverageUpWindow.reset(); _lastAdjust = usecTimestampNow(); + */ } QString LODManager::getLODFeedbackText() { diff --git a/interface/src/LODManager.h b/interface/src/LODManager.h index c14f17ca61..3f9d2046c1 100644 --- a/interface/src/LODManager.h +++ b/interface/src/LODManager.h @@ -19,10 +19,22 @@ const float DEFAULT_DESKTOP_LOD_DOWN_FPS = 30.0; const float DEFAULT_HMD_LOD_DOWN_FPS = 60.0; -const float INCREASE_LOD_GAP = 5.0f; +const float MAX_LIKELY_DESKTOP_FPS = 59.0; // this is essentially, V-synch - 1 fps +const float MAX_LIKELY_HMD_FPS = 74.0; // this is essentially, V-synch - 1 fps +const float INCREASE_LOD_GAP = 15.0f; -const quint64 ADJUST_LOD_DOWN_DELAY = 1000 * 1000 * 0.5; // Consider adjusting LOD down after half a second -const quint64 ADJUST_LOD_UP_DELAY = ADJUST_LOD_DOWN_DELAY * 2; +const float START_DELAY_WINDOW_IN_SECS = 3.0f; // wait at least this long after steady state/last upshift to consider downshifts +const float DOWN_SHIFT_WINDOW_IN_SECS = 0.5f; +const float UP_SHIFT_WINDOW_IN_SECS = 2.5f; + +const int ASSUMED_FPS = 60; +const quint64 START_SHIFT_ELPASED = USECS_PER_SECOND * START_DELAY_WINDOW_IN_SECS; +const quint64 DOWN_SHIFT_ELPASED = USECS_PER_SECOND * DOWN_SHIFT_WINDOW_IN_SECS; // Consider adjusting LOD down after half a second +const quint64 UP_SHIFT_ELPASED = USECS_PER_SECOND * UP_SHIFT_WINDOW_IN_SECS; + +const int START_DELAY_SAMPLES_OF_FRAMES = ASSUMED_FPS * START_DELAY_WINDOW_IN_SECS; +const int DOWN_SHIFT_SAMPLES_OF_FRAMES = ASSUMED_FPS * DOWN_SHIFT_WINDOW_IN_SECS; +const int UP_SHIFT_SAMPLES_OF_FRAMES = ASSUMED_FPS * UP_SHIFT_WINDOW_IN_SECS; const float ADJUST_LOD_DOWN_BY = 0.9f; const float ADJUST_LOD_UP_BY = 1.1f; @@ -37,9 +49,6 @@ const float ADJUST_LOD_MAX_SIZE_SCALE = DEFAULT_OCTREE_SIZE_SCALE; // do. But both are still culled using the same angular size logic. const float AVATAR_TO_ENTITY_RATIO = 2.0f; -const int ONE_SECOND_OF_FRAMES = 60; -const int FIVE_SECONDS_OF_FRAMES = 5 * ONE_SECOND_OF_FRAMES; - class LODManager : public QObject, public Dependency { Q_OBJECT @@ -51,11 +60,11 @@ public: Q_INVOKABLE void setDesktopLODDecreaseFPS(float value) { _desktopLODDecreaseFPS = value; } Q_INVOKABLE float getDesktopLODDecreaseFPS() const { return _desktopLODDecreaseFPS; } - Q_INVOKABLE float getDesktopLODIncreaseFPS() const { return _desktopLODDecreaseFPS + INCREASE_LOD_GAP; } + Q_INVOKABLE float getDesktopLODIncreaseFPS() const { return glm::min(_desktopLODDecreaseFPS + INCREASE_LOD_GAP, MAX_LIKELY_DESKTOP_FPS); } Q_INVOKABLE void setHMDLODDecreaseFPS(float value) { _hmdLODDecreaseFPS = value; } Q_INVOKABLE float getHMDLODDecreaseFPS() const { return _hmdLODDecreaseFPS; } - Q_INVOKABLE float getHMDLODIncreaseFPS() const { return _hmdLODDecreaseFPS + INCREASE_LOD_GAP; } + Q_INVOKABLE float getHMDLODIncreaseFPS() const { return glm::min(_hmdLODDecreaseFPS + INCREASE_LOD_GAP, MAX_LIKELY_HMD_FPS); } Q_INVOKABLE float getAvatarLODDistanceMultiplier() const { return _avatarLODDistanceMultiplier; } @@ -68,8 +77,8 @@ public: Q_INVOKABLE int getBoundaryLevelAdjust() const { return _boundaryLevelAdjust; } Q_INVOKABLE void resetLODAdjust(); - Q_INVOKABLE float getFPSAverage() const { return _fpsAverage.getAverage(); } - Q_INVOKABLE float getFastFPSAverage() const { return _fastFPSAverage.getAverage(); } + //Q_INVOKABLE float getFPSAverage() const { return _fpsAverage.getAverage(); } + //Q_INVOKABLE float getFastFPSAverage() const { return _fastFPSAverage.getAverage(); } Q_INVOKABLE float getLODDecreaseFPS(); Q_INVOKABLE float getLODIncreaseFPS(); @@ -96,9 +105,13 @@ private: float _octreeSizeScale = DEFAULT_OCTREE_SIZE_SCALE; int _boundaryLevelAdjust = 0; - quint64 _lastAdjust = 0; - SimpleMovingAverage _fpsAverage = FIVE_SECONDS_OF_FRAMES; - SimpleMovingAverage _fastFPSAverage = ONE_SECOND_OF_FRAMES; + quint64 _lastDownShift = 0; + quint64 _lastUpShift = 0; + bool _lastAdjustWasUpShift = true; // start out as if we've just upshifted + + SimpleMovingAverage _fpsAverageStartWindow = START_DELAY_SAMPLES_OF_FRAMES; + SimpleMovingAverage _fpsAverageDownWindow = DOWN_SHIFT_SAMPLES_OF_FRAMES; + SimpleMovingAverage _fpsAverageUpWindow = UP_SHIFT_SAMPLES_OF_FRAMES; bool _shouldRenderTableNeedsRebuilding = true; QMap _shouldRenderTable; From 68e730af454938854d4220c92de521c53b399a18 Mon Sep 17 00:00:00 2001 From: ZappoMan Date: Wed, 25 Mar 2015 15:48:50 -0700 Subject: [PATCH 2/5] handle throttle render case and clean up code logic to be more obvious --- interface/src/LODManager.cpp | 46 ++++++++++++++++++++---------------- interface/src/LODManager.h | 2 +- 2 files changed, 27 insertions(+), 21 deletions(-) diff --git a/interface/src/LODManager.cpp b/interface/src/LODManager.cpp index 751bea8c23..e1a82372d2 100644 --- a/interface/src/LODManager.cpp +++ b/interface/src/LODManager.cpp @@ -50,6 +50,7 @@ void LODManager::autoAdjustLOD(float currentFPS) { currentFPS = ASSUMED_FPS; _lastUpShift = _lastDownShift = usecTimestampNow(); } + _fpsAverageStartWindow.updateAverage(currentFPS); _fpsAverageDownWindow.updateAverage(currentFPS); _fpsAverageUpWindow.updateAverage(currentFPS); @@ -64,12 +65,17 @@ void LODManager::autoAdjustLOD(float currentFPS) { if (_automaticLODAdjust) { // LOD Downward adjustment - // If our last adjust was an upshift, then we don't want to consider any downshifts until we've delayed at least - // our START_DELAY_WINDOW_IN_SECS - bool doDownShift = _lastAdjustWasUpShift - ? (elapsedSinceUpShift > START_SHIFT_ELPASED && _fpsAverageStartWindow.getAverage() < getLODDecreaseFPS()) - : (elapsedSinceDownShift > DOWN_SHIFT_ELPASED && _fpsAverageDownWindow.getAverage() < getLODDecreaseFPS()); + // If we've been downshifting, we watch a shorter downshift window so that we will quickly move toward our + // target frame rate. But if we haven't just done a downshift (either because our last shift was an upshift, + // or because we've just started out) then we look at a much longer window to consider whether or not to start + // downshifting. + bool doDownShift = false; + if (_isDownshifting) { + doDownShift = (elapsedSinceDownShift > DOWN_SHIFT_ELPASED && _fpsAverageDownWindow.getAverage() < getLODDecreaseFPS()); + } else { + doDownShift = (elapsedSinceUpShift > START_SHIFT_ELPASED && _fpsAverageStartWindow.getAverage() < getLODDecreaseFPS()); + } if (doDownShift) { @@ -83,24 +89,26 @@ void LODManager::autoAdjustLOD(float currentFPS) { } if (changed) { - if (_lastAdjustWasUpShift) { - qDebug() << "adjusting LOD DOWN after initial delay..." - << "average fps for last "<< START_DELAY_WINDOW_IN_SECS <<"seconds was " - << _fpsAverageStartWindow.getAverage() - << "minimum is:" << getLODDecreaseFPS() - << "elapsedSinceUpShift:" << elapsedSinceUpShift - << " NEW _octreeSizeScale=" << _octreeSizeScale; - } else { + if (_isDownshifting) { + // subsequent downshift qDebug() << "adjusting LOD DOWN..." << "average fps for last "<< DOWN_SHIFT_WINDOW_IN_SECS <<"seconds was " << _fpsAverageDownWindow.getAverage() << "minimum is:" << getLODDecreaseFPS() << "elapsedSinceDownShift:" << elapsedSinceDownShift << " NEW _octreeSizeScale=" << _octreeSizeScale; + } else { + // first downshift + qDebug() << "adjusting LOD DOWN after initial delay..." + << "average fps for last "<< START_DELAY_WINDOW_IN_SECS <<"seconds was " + << _fpsAverageStartWindow.getAverage() + << "minimum is:" << getLODDecreaseFPS() + << "elapsedSinceUpShift:" << elapsedSinceUpShift + << " NEW _octreeSizeScale=" << _octreeSizeScale; } _lastDownShift = now; - _lastAdjustWasUpShift = false; + _isDownshifting = true; emit LODDecreased(); } @@ -130,7 +138,7 @@ void LODManager::autoAdjustLOD(float currentFPS) { << " NEW _octreeSizeScale=" << _octreeSizeScale; _lastUpShift = now; - _lastAdjustWasUpShift = true; + _isDownshifting = false; emit LODIncreased(); } @@ -149,13 +157,11 @@ void LODManager::autoAdjustLOD(float currentFPS) { } void LODManager::resetLODAdjust() { - - // TODO: Do we need this??? - /* + _fpsAverageStartWindow.reset(); _fpsAverageDownWindow.reset(); _fpsAverageUpWindow.reset(); - _lastAdjust = usecTimestampNow(); - */ + _lastUpShift = _lastDownShift = usecTimestampNow(); + _isDownshifting = false; } QString LODManager::getLODFeedbackText() { diff --git a/interface/src/LODManager.h b/interface/src/LODManager.h index 3f9d2046c1..d3765c164a 100644 --- a/interface/src/LODManager.h +++ b/interface/src/LODManager.h @@ -107,7 +107,7 @@ private: quint64 _lastDownShift = 0; quint64 _lastUpShift = 0; - bool _lastAdjustWasUpShift = true; // start out as if we've just upshifted + bool _isDownshifting = false; // start out as if we're not downshifting SimpleMovingAverage _fpsAverageStartWindow = START_DELAY_SAMPLES_OF_FRAMES; SimpleMovingAverage _fpsAverageDownWindow = DOWN_SHIFT_SAMPLES_OF_FRAMES; From f46067b634b7530ba7f84dc24d4e8469c79ab515 Mon Sep 17 00:00:00 2001 From: ZappoMan Date: Wed, 25 Mar 2015 16:30:33 -0700 Subject: [PATCH 3/5] better tracking of being done with downshifting --- interface/src/LODManager.cpp | 51 +++++++++++++++++++++++------------- interface/src/LODManager.h | 1 + 2 files changed, 34 insertions(+), 18 deletions(-) diff --git a/interface/src/LODManager.cpp b/interface/src/LODManager.cpp index e1a82372d2..d12fe9147a 100644 --- a/interface/src/LODManager.cpp +++ b/interface/src/LODManager.cpp @@ -48,7 +48,7 @@ void LODManager::autoAdjustLOD(float currentFPS) { //const float ASSUMED_FPS = 60.0f; if (_fpsAverageUpWindow.getSampleCount() < IGNORE_THESE_SAMPLES) { currentFPS = ASSUMED_FPS; - _lastUpShift = _lastDownShift = usecTimestampNow(); + _lastStable = _lastUpShift = _lastDownShift = usecTimestampNow(); } _fpsAverageStartWindow.updateAverage(currentFPS); @@ -58,9 +58,11 @@ void LODManager::autoAdjustLOD(float currentFPS) { quint64 now = usecTimestampNow(); bool changed = false; - bool octreeChanged = false; quint64 elapsedSinceDownShift = now - _lastDownShift; quint64 elapsedSinceUpShift = now - _lastUpShift; + + quint64 lastStableOrUpshift = glm::max(_lastUpShift, _lastStable); + quint64 elapsedSinceStableOrUpShift = now - lastStableOrUpshift; if (_automaticLODAdjust) { @@ -72,9 +74,19 @@ void LODManager::autoAdjustLOD(float currentFPS) { bool doDownShift = false; if (_isDownshifting) { - doDownShift = (elapsedSinceDownShift > DOWN_SHIFT_ELPASED && _fpsAverageDownWindow.getAverage() < getLODDecreaseFPS()); + // only consider things if our DOWN_SHIFT time has elapsed... + if (elapsedSinceDownShift > DOWN_SHIFT_ELPASED) { + doDownShift = _fpsAverageDownWindow.getAverage() < getLODDecreaseFPS(); + + if (!doDownShift) { + qDebug() << "---- WE APPEAR TO BE DONE DOWN SHIFTING -----"; + _isDownshifting = false; + _lastStable = now; + } + } } else { - doDownShift = (elapsedSinceUpShift > START_SHIFT_ELPASED && _fpsAverageStartWindow.getAverage() < getLODDecreaseFPS()); + doDownShift = (elapsedSinceStableOrUpShift > START_SHIFT_ELPASED + && _fpsAverageStartWindow.getAverage() < getLODDecreaseFPS()); } if (doDownShift) { @@ -85,7 +97,7 @@ void LODManager::autoAdjustLOD(float currentFPS) { if (_octreeSizeScale < ADJUST_LOD_MIN_SIZE_SCALE) { _octreeSizeScale = ADJUST_LOD_MIN_SIZE_SCALE; } - octreeChanged = changed = true; + changed = true; } if (changed) { @@ -109,25 +121,28 @@ void LODManager::autoAdjustLOD(float currentFPS) { _lastDownShift = now; _isDownshifting = true; - + emit LODDecreased(); } } else { // LOD Upward adjustment - if (elapsedSinceUpShift > UP_SHIFT_ELPASED && _fpsAverageUpWindow.getAverage() > getLODIncreaseFPS()) { + if (elapsedSinceUpShift > UP_SHIFT_ELPASED) { + + if (_fpsAverageUpWindow.getAverage() > getLODIncreaseFPS()) { - // Octee items... stepwise adjustment - if (_octreeSizeScale < ADJUST_LOD_MAX_SIZE_SCALE) { - if (_octreeSizeScale < ADJUST_LOD_MIN_SIZE_SCALE) { - _octreeSizeScale = ADJUST_LOD_MIN_SIZE_SCALE; - } else { - _octreeSizeScale *= ADJUST_LOD_UP_BY; + // Octee items... stepwise adjustment + if (_octreeSizeScale < ADJUST_LOD_MAX_SIZE_SCALE) { + if (_octreeSizeScale < ADJUST_LOD_MIN_SIZE_SCALE) { + _octreeSizeScale = ADJUST_LOD_MIN_SIZE_SCALE; + } else { + _octreeSizeScale *= ADJUST_LOD_UP_BY; + } + if (_octreeSizeScale > ADJUST_LOD_MAX_SIZE_SCALE) { + _octreeSizeScale = ADJUST_LOD_MAX_SIZE_SCALE; + } + changed = true; } - if (_octreeSizeScale > ADJUST_LOD_MAX_SIZE_SCALE) { - _octreeSizeScale = ADJUST_LOD_MAX_SIZE_SCALE; - } - octreeChanged = changed = true; } if (changed) { @@ -139,7 +154,7 @@ void LODManager::autoAdjustLOD(float currentFPS) { _lastUpShift = now; _isDownshifting = false; - + emit LODIncreased(); } } diff --git a/interface/src/LODManager.h b/interface/src/LODManager.h index d3765c164a..4003d09344 100644 --- a/interface/src/LODManager.h +++ b/interface/src/LODManager.h @@ -107,6 +107,7 @@ private: quint64 _lastDownShift = 0; quint64 _lastUpShift = 0; + quint64 _lastStable = 0; bool _isDownshifting = false; // start out as if we're not downshifting SimpleMovingAverage _fpsAverageStartWindow = START_DELAY_SAMPLES_OF_FRAMES; From 19feeacc51e7db68ac03399be13bb845b9c2829d Mon Sep 17 00:00:00 2001 From: ZappoMan Date: Wed, 25 Mar 2015 16:38:57 -0700 Subject: [PATCH 4/5] dead code --- interface/src/LODManager.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/interface/src/LODManager.cpp b/interface/src/LODManager.cpp index d12fe9147a..cb4913df72 100644 --- a/interface/src/LODManager.cpp +++ b/interface/src/LODManager.cpp @@ -45,7 +45,6 @@ void LODManager::autoAdjustLOD(float currentFPS) { // really want to count them in our average, so we will ignore the real frame rates and stuff // our moving average with simulated good data const int IGNORE_THESE_SAMPLES = 100; - //const float ASSUMED_FPS = 60.0f; if (_fpsAverageUpWindow.getSampleCount() < IGNORE_THESE_SAMPLES) { currentFPS = ASSUMED_FPS; _lastStable = _lastUpShift = _lastDownShift = usecTimestampNow(); From c031ce15a7908d32496803332b52f8657e3ab47a Mon Sep 17 00:00:00 2001 From: ZappoMan Date: Wed, 25 Mar 2015 16:45:51 -0700 Subject: [PATCH 5/5] dead code --- interface/src/LODManager.h | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/interface/src/LODManager.h b/interface/src/LODManager.h index 4003d09344..77f156531a 100644 --- a/interface/src/LODManager.h +++ b/interface/src/LODManager.h @@ -76,10 +76,6 @@ public: Q_INVOKABLE void setBoundaryLevelAdjust(int boundaryLevelAdjust); Q_INVOKABLE int getBoundaryLevelAdjust() const { return _boundaryLevelAdjust; } - Q_INVOKABLE void resetLODAdjust(); - //Q_INVOKABLE float getFPSAverage() const { return _fpsAverage.getAverage(); } - //Q_INVOKABLE float getFastFPSAverage() const { return _fastFPSAverage.getAverage(); } - Q_INVOKABLE float getLODDecreaseFPS(); Q_INVOKABLE float getLODIncreaseFPS(); @@ -88,6 +84,7 @@ public: void loadSettings(); void saveSettings(); + void resetLODAdjust(); signals: void LODIncreased();