diff options
| author | Rider Linden <rider@lindenlab.com> | 2018-06-19 12:04:35 -0700 | 
|---|---|---|
| committer | Rider Linden <rider@lindenlab.com> | 2018-06-19 12:04:35 -0700 | 
| commit | 8b9ff4487bdc4becef270197f86c6f0bbfd324d1 (patch) | |
| tree | ebc04698fad012980bdec3bea93a564af9214bcc | |
| parent | 2f655d117acca491270add307952042e8ab08aeb (diff) | |
Adding some timers for tracking
| -rw-r--r-- | indra/llinventory/llsettingssky.cpp | 103 | ||||
| -rw-r--r-- | indra/newview/llvosky.cpp | 10 | 
2 files changed, 65 insertions, 48 deletions
diff --git a/indra/llinventory/llsettingssky.cpp b/indra/llinventory/llsettingssky.cpp index c25f9a5b2c..5de8c7bad6 100644 --- a/indra/llinventory/llsettingssky.cpp +++ b/indra/llinventory/llsettingssky.cpp @@ -35,8 +35,7 @@  //=========================================================================  namespace  { -    LLTrace::BlockTimerStatHandle FTM_BLEND_SKYVALUES("Blending Sky Environment"); -    LLTrace::BlockTimerStatHandle FTM_UPDATE_SKYVALUES("Update Sky Environment");     +      const F32 NIGHTTIME_ELEVATION = -8.0f; // degrees      const F32 NIGHTTIME_ELEVATION_SIN = (F32)sinf(NIGHTTIME_ELEVATION * DEG_TO_RAD); @@ -51,6 +50,11 @@ namespace  } +static LLTrace::BlockTimerStatHandle FTM_BLEND_SKYVALUES("Blending Sky Environment"); +static LLTrace::BlockTimerStatHandle FTM_RECALCULATE_SKYVALUES("Recalculate Sky"); +static LLTrace::BlockTimerStatHandle FTM_RECALCULATE_BODIES("Recalculate Heavenly Bodies"); +static LLTrace::BlockTimerStatHandle FTM_RECALCULATE_LIGHTING("Recalculate Lighting"); +  //=========================================================================  const std::string LLSettingsSky::SETTING_AMBIENT("ambient");  const std::string LLSettingsSky::SETTING_BLUE_DENSITY("blue_density"); @@ -784,6 +788,8 @@ LLSD LLSettingsSky::translateLegacySettings(const LLSD& legacy)  void LLSettingsSky::updateSettings()  { +    LL_RECORD_BLOCK_TIME(FTM_RECALCULATE_SKYVALUES); +      mPositionsDirty |= isVeryDirty();      mLightingDirty  |= isVeryDirty(); @@ -811,29 +817,31 @@ bool LLSettingsSky::getIsMoonUp() const  void LLSettingsSky::calculateHeavenlyBodyPositions()  const  { -    /* can't do this as it gets defeated during animation of env panel settings      if (!mPositionsDirty)      {          return; -    }*/ +    } +    { +        LL_RECORD_BLOCK_TIME(FTM_RECALCULATE_BODIES); -    mPositionsDirty = false; -    mLightingDirty = true;  // changes light direction +        mPositionsDirty = false; +        mLightingDirty = true;  // changes light direction -    LLQuaternion sunq  = getSunRotation(); -    LLQuaternion moonq = getMoonRotation(); +        LLQuaternion sunq = getSunRotation(); +        LLQuaternion moonq = getMoonRotation(); -    mSunDirection  = DUE_EAST * sunq; -    mMoonDirection = DUE_EAST * moonq; +        mSunDirection = DUE_EAST * sunq; +        mMoonDirection = DUE_EAST * moonq; -    mSunDirection.normalize(); -    mMoonDirection.normalize(); +        mSunDirection.normalize(); +        mMoonDirection.normalize(); -    LL_WARNS("LAPRAS") << "Sun info:  Rotation=" << sunq << " Vector=" << mSunDirection << LL_ENDL; -    LL_WARNS("LAPRAS") << "Moon info: Rotation=" << moonq << " Vector=" << mMoonDirection << LL_ENDL; +        LL_WARNS("LAPRAS") << "Sun info:  Rotation=" << sunq << " Vector=" << mSunDirection << LL_ENDL; +        LL_WARNS("LAPRAS") << "Moon info: Rotation=" << moonq << " Vector=" << mMoonDirection << LL_ENDL; -    llassert(mSunDirection.lengthSquared() > 0.0); -    llassert(mMoonDirection.lengthSquared() > 0.0); +        llassert(mSunDirection.lengthSquared() > 0.0); +        llassert(mMoonDirection.lengthSquared() > 0.0); +    }  }  LLVector3 LLSettingsSky::getLightDirection() const @@ -1037,51 +1045,52 @@ LLColor4 LLSettingsSky::getTotalAmbient() const  void LLSettingsSky::calculateLightSettings() const  { -    /* can't do this as it gets defeated during animation of env panel settings      if (!mLightingDirty)      {          return;      } -    calculateHeavenlyBodyPositions();*/ +    { +        LL_RECORD_BLOCK_TIME(FTM_RECALCULATE_LIGHTING); -    mLightingDirty = false; +        mLightingDirty = false; -    // Initialize temp variables -    LLColor3    sunlight = getSunlightColor(); -    LLColor3    ambient = getAmbientColor(); -    F32         cloud_shadow = getCloudShadow(); -    LLVector3   lightnorm = getLightDirection(); +        // Initialize temp variables +        LLColor3    sunlight = getSunlightColor(); +        LLColor3    ambient = getAmbientColor(); +        F32         cloud_shadow = getCloudShadow(); +        LLVector3   lightnorm = getLightDirection(); -    // Sunlight attenuation effect (hue and brightness) due to atmosphere -    // this is used later for sunlight modulation at various altitudes -    F32      max_y = getMaxY(); -    LLColor3 light_atten = getLightAttenuation(max_y); -    LLColor3 light_transmittance = getLightTransmittance(); +        // Sunlight attenuation effect (hue and brightness) due to atmosphere +        // this is used later for sunlight modulation at various altitudes +        F32      max_y = getMaxY(); +        LLColor3 light_atten = getLightAttenuation(max_y); +        LLColor3 light_transmittance = getLightTransmittance(); -    // and vary_sunlight will work properly with moon light -    F32 lighty = lightnorm[1]; +        // and vary_sunlight will work properly with moon light +        F32 lighty = lightnorm[1]; -    lighty = llmax(0.f, lighty); -    if(lighty > 0.f) -    { -        lighty = 1.f / lighty; -    } -    componentMultBy(sunlight, componentExp((light_atten * -1.f) * lighty)); +        lighty = llmax(0.f, lighty); +        if (lighty > 0.f) +        { +            lighty = 1.f / lighty; +        } +        componentMultBy(sunlight, componentExp((light_atten * -1.f) * lighty)); -    //increase ambient when there are more clouds -    LLColor3 tmpAmbient = ambient + (smear(1.f) - ambient) * cloud_shadow * 0.5f; +        //increase ambient when there are more clouds +        LLColor3 tmpAmbient = ambient + (smear(1.f) - ambient) * cloud_shadow * 0.5f; -    //brightness of surface both sunlight and ambient -    mSunDiffuse = gammaCorrect(componentMult(sunlight, light_transmittance));        -    mSunAmbient = gammaCorrect(componentMult(tmpAmbient, light_transmittance) * 0.5); +        //brightness of surface both sunlight and ambient +        mSunDiffuse = gammaCorrect(componentMult(sunlight, light_transmittance)); +        mSunAmbient = gammaCorrect(componentMult(tmpAmbient, light_transmittance) * 0.5); -    mMoonDiffuse  = gammaCorrect(componentMult(LLColor3::white, light_transmittance)); -    mMoonAmbient  = gammaCorrect(componentMult(LLColor3::white, light_transmittance) * 0.5f); -    mTotalAmbient = mSunAmbient; +        mMoonDiffuse = gammaCorrect(componentMult(LLColor3::white, light_transmittance)); +        mMoonAmbient = gammaCorrect(componentMult(LLColor3::white, light_transmittance) * 0.5f); +        mTotalAmbient = mSunAmbient; -    mFadeColor = mTotalAmbient + (mSunDiffuse + mMoonDiffuse) * 0.5f; -    mFadeColor.setAlpha(0); +        mFadeColor = mTotalAmbient + (mSunDiffuse + mMoonDiffuse) * 0.5f; +        mFadeColor.setAlpha(0); +    }  }  LLUUID LLSettingsSky::GetDefaultAssetId() diff --git a/indra/newview/llvosky.cpp b/indra/newview/llvosky.cpp index c73b5041c0..52b5b1a3a2 100644 --- a/indra/newview/llvosky.cpp +++ b/indra/newview/llvosky.cpp @@ -53,6 +53,9 @@  #include "llsettingssky.h"  #include "llenvironment.h" +#include "lltrace.h" +#include "llfasttimer.h" +  #undef min  #undef max @@ -74,6 +77,9 @@ static const LLVector2 TEX11 = LLVector2(1.f, 1.f);  static const F32 LIGHT_DIRECTION_THRESHOLD = (F32) cosf(DEG_TO_RAD * 1.f);  static const F32 COLOR_CHANGE_THRESHOLD = 0.01f; +static LLTrace::BlockTimerStatHandle FTM_VOSKY_UPDATETIMER("VOSky Update Timer Tick"); +static LLTrace::BlockTimerStatHandle FTM_VOSKY_UPDATEFORCED("VOSky Update Forced"); +  /***************************************  		SkyTex  ***************************************/ @@ -609,7 +615,7 @@ bool LLVOSky::updateSky()  	if (mUpdateTimer.getElapsedTimeF32() > 0.025f)  	{ -		mUpdateTimer.reset(); +        mUpdateTimer.reset();  		const S32 frame = next_frame;          mForceUpdate = mForceUpdate || (total_no_tiles == frame); @@ -641,6 +647,8 @@ bool LLVOSky::updateSky()  		if (mForceUpdate)  		{ +            LL_RECORD_BLOCK_TIME(FTM_VOSKY_UPDATEFORCED) +  			LLSkyTex::stepCurrent();			  			if (!direction.isExactlyZero())  | 
