viewer#2529 Track interpolateSDMap's performance

viewer#2529 Fix initialization
meow-7.2.2
Andrey Kleshchev 2024-09-11 18:21:03 +03:00
parent 047eb16f4c
commit 0a110ff083
7 changed files with 48 additions and 7 deletions

View File

@ -69,23 +69,21 @@ const U32 LLSettingsBase::Validator::VALIDATION_PARTIAL(0x01 << 0);
LLSettingsBase::LLSettingsBase():
mSettings(LLSD::emptyMap()),
mDirty(true),
mLLSDDirty(false),
mLLSDDirty(true),
mReplaced(false),
mBlendedFactor(0.0),
mSettingFlags(0)
{
loadValuesFromLLSD();
}
LLSettingsBase::LLSettingsBase(const LLSD setting) :
mSettings(setting),
mLLSDDirty(false),
mLLSDDirty(true),
mDirty(true),
mReplaced(false),
mBlendedFactor(0.0),
mSettingFlags(0)
{
loadValuesFromLLSD();
}
//virtual
@ -134,6 +132,7 @@ void LLSettingsBase::saveValuesIfNeeded()
//=========================================================================
void LLSettingsBase::lerpSettings(LLSettingsBase &other, F64 mix)
{
LL_PROFILE_ZONE_SCOPED_CATEGORY_ENVIRONMENT;
saveValuesIfNeeded();
stringset_t skip = getSkipInterpolateKeys();
stringset_t slerps = getSlerpKeys();
@ -437,6 +436,7 @@ bool LLSettingsBase::validate()
saveValuesIfNeeded();
LLSD result = LLSettingsBase::settingValidation(mSettings, validations);
loadValuesFromLLSD();
if (result["errors"].size() > 0)
{

View File

@ -125,6 +125,7 @@ public:
inline void setName(std::string val)
{
mSettingName = val;
setDirtyFlag(true);
setLLSDDirty();
}
@ -141,6 +142,7 @@ public:
inline void setFlags(U32 value)
{
mSettingFlags = value;
setDirtyFlag(true);
setLLSDDirty();
}
@ -183,8 +185,6 @@ public:
virtual void setLLSDDirty()
{
mLLSDDirty = true;
mDirty = true;
clearAssetId();
}
//---------------------------------------------------------------------

View File

@ -128,6 +128,7 @@ LLSettingsDay::LLSettingsDay(const LLSD &data) :
mDaySettings(LLSD::emptyMap())
{
mDayTracks.resize(TRACK_MAX);
loadValuesFromLLSD();
}
LLSettingsDay::LLSettingsDay() :
@ -136,6 +137,7 @@ LLSettingsDay::LLSettingsDay() :
mDaySettings(LLSD::emptyMap())
{
mDayTracks.resize(TRACK_MAX);
replaceSettings(defaults());
}
//=========================================================================

View File

@ -407,6 +407,7 @@ LLSettingsSky::LLSettingsSky(const LLSD &data) :
mNextRainbowTextureId(),
mNextHaloTextureId()
{
loadValuesFromLLSD();
}
LLSettingsSky::LLSettingsSky():
@ -418,6 +419,7 @@ LLSettingsSky::LLSettingsSky():
mNextRainbowTextureId(),
mNextHaloTextureId()
{
replaceSettings(defaults());
}
void LLSettingsSky::replaceSettings(LLSD settings)
@ -460,7 +462,6 @@ void LLSettingsSky::blend(LLSettingsBase::ptr_t &end, F64 blendf)
// Special case since SETTING_AMBIENT is both in outer and legacy maps, we prioritize legacy one
// see getColor(), we are about to replaceSettings(), so we are free to set it
LLColor3 ambient = getColor(SETTING_AMBIENT, LLColor3(0.25f, 0.25f, 0.25f));
setAmbientColor(ambient);
settings[SETTING_LEGACY_HAZE][SETTING_AMBIENT] = ambient.getValue();
}
}
@ -974,6 +975,7 @@ F32 get_float(bool &use_legacy, LLSD& settings, std::string key, F32 default_val
{
return (F32)settings[key].asReal();
}
use_legacy = true;
return default_value;
}
@ -989,6 +991,7 @@ LLColor3 get_color(bool& use_legacy, LLSD& settings, const std::string& key, con
{
return LLColor3(settings[key]);
}
use_legacy = true;
return default_value;
}
@ -1046,6 +1049,7 @@ void LLSettingsSky::loadValuesFromLLSD()
mPlanetRadius = (F32)settings[SETTING_PLANET_RADIUS].asReal();
// special case for legacy handling
mHasLegacyHaze = settings.has(LLSettingsSky::SETTING_LEGACY_HAZE);
mDistanceMultiplier = get_float(mLegacyDistanceMultiplier, settings, SETTING_DISTANCE_MULTIPLIER, 0.8f);
mDensityMultiplier = get_float(mLegacyDensityMultiplier, settings, SETTING_DENSITY_MULTIPLIER, 0.0001f);
mHazeHorizon = get_float(mLegacyHazeHorizon, settings, SETTING_HAZE_HORIZON, 0.19f);
@ -1053,6 +1057,14 @@ void LLSettingsSky::loadValuesFromLLSD()
mBlueHorizon = get_color(mLegacyBlueHorizon, settings, SETTING_BLUE_HORIZON, LLColor3(0.4954f, 0.4954f, 0.6399f));
mBlueDensity = get_color(mLegacyBlueDensity, settings, SETTING_BLUE_DENSITY, LLColor3(0.2447f, 0.4487f, 0.7599f));
mAmbientColor = get_color(mLegacyAmbientColor, settings, SETTING_AMBIENT, LLColor3(0.25f, 0.25f, 0.25f));
// one of these values might be true despite not having SETTING_LEGACY_HAZE if defaults were used
mHasLegacyHaze |= mLegacyDistanceMultiplier
|| mLegacyDensityMultiplier
|| mLegacyHazeHorizon
|| mLegacyHazeDensity
|| mLegacyBlueHorizon
|| mLegacyBlueDensity
|| mLegacyAmbientColor;
}
void LLSettingsSky::saveValuesToLLSD()
@ -1344,6 +1356,7 @@ void LLSettingsSky::setAmbientColor(const LLColor3 &val)
mAmbientColor = val;
mLegacyAmbientColor = true;
setDirtyFlag(true);
setLLSDDirty();
}
void LLSettingsSky::setBlueDensity(const LLColor3 &val)
@ -1351,6 +1364,7 @@ void LLSettingsSky::setBlueDensity(const LLColor3 &val)
mBlueDensity = val;
mLegacyBlueDensity = true;
setDirtyFlag(true);
setLLSDDirty();
}
void LLSettingsSky::setBlueHorizon(const LLColor3 &val)
@ -1358,6 +1372,7 @@ void LLSettingsSky::setBlueHorizon(const LLColor3 &val)
mBlueHorizon = val;
mLegacyBlueHorizon = true;
setDirtyFlag(true);
setLLSDDirty();
}
void LLSettingsSky::setDensityMultiplier(F32 val)
@ -1365,6 +1380,7 @@ void LLSettingsSky::setDensityMultiplier(F32 val)
mDensityMultiplier = val;
mLegacyDensityMultiplier = true;
setDirtyFlag(true);
setLLSDDirty();
}
void LLSettingsSky::setDistanceMultiplier(F32 val)
@ -1372,6 +1388,7 @@ void LLSettingsSky::setDistanceMultiplier(F32 val)
mDistanceMultiplier = val;
mLegacyDistanceMultiplier = true;
setDirtyFlag(true);
setLLSDDirty();
}
void LLSettingsSky::setHazeDensity(F32 val)
@ -1379,6 +1396,7 @@ void LLSettingsSky::setHazeDensity(F32 val)
mHazeDensity = val;
mLegacyHazeDensity = true;
setDirtyFlag(true);
setLLSDDirty();
}
void LLSettingsSky::setHazeHorizon(F32 val)
@ -1386,6 +1404,7 @@ void LLSettingsSky::setHazeHorizon(F32 val)
mHazeHorizon = val;
mLegacyHazeHorizon = true;
setDirtyFlag(true);
setLLSDDirty();
}
// Get total from rayleigh and mie density values for normalization
@ -1800,12 +1819,14 @@ void LLSettingsSky::setCloudScrollRate(const LLVector2 &val)
void LLSettingsSky::setCloudScrollRateX(F32 val)
{
mScrollRate.mV[0] = val;
setDirtyFlag(true);
setLLSDDirty();
}
void LLSettingsSky::setCloudScrollRateY(F32 val)
{
mScrollRate.mV[1] = val;
setDirtyFlag(true);
setLLSDDirty();
}
@ -1851,6 +1872,7 @@ F32 LLSettingsSky::getGamma() const
void LLSettingsSky::setGamma(F32 val)
{
mGamma = val;
setDirtyFlag(true);
setLLSDDirty();
}
LLColor3 LLSettingsSky::getGlow() const

View File

@ -402,6 +402,7 @@ protected:
LLColor3 mBlueDensity;
LLColor3 mAmbientColor;
bool mHasLegacyHaze;
bool mLegacyHazeHorizon;
bool mLegacyHazeDensity;
bool mLegacyDistanceMultiplier;

View File

@ -70,12 +70,14 @@ LLSettingsWater::LLSettingsWater(const LLSD &data) :
LLSettingsBase(data),
mNextNormalMapID()
{
loadValuesFromLLSD();
}
LLSettingsWater::LLSettingsWater() :
LLSettingsBase(),
mNextNormalMapID()
{
replaceSettings(defaults());
}
//=========================================================================
@ -229,6 +231,7 @@ LLSD LLSettingsWater::translateLegacySettings(LLSD legacy)
void LLSettingsWater::blend(LLSettingsBase::ptr_t &end, F64 blendf)
{
LL_PROFILE_ZONE_SCOPED_CATEGORY_ENVIRONMENT;
LLSettingsWater::ptr_t other = PTR_NAMESPACE::static_pointer_cast<LLSettingsWater>(end);
if (other)
{

View File

@ -81,6 +81,7 @@ public:
void setBlurMultiplier(F32 val)
{
mBlurMultiplier = val;
setDirtyFlag(true);
setLLSDDirty();
}
@ -92,6 +93,7 @@ public:
void setWaterFogColor(LLColor3 val)
{
mWaterFogColor = val;
setDirtyFlag(true);
setLLSDDirty();
}
@ -105,6 +107,7 @@ public:
void setWaterFogDensity(F32 val)
{
mWaterFogDensity = val;
setDirtyFlag(true);
setLLSDDirty();
}
@ -116,6 +119,7 @@ public:
void setFogMod(F32 val)
{
mFogMod = val;
setDirtyFlag(true);
setLLSDDirty();
}
@ -127,6 +131,7 @@ public:
void setFresnelOffset(F32 val)
{
mFresnelOffset = val;
setDirtyFlag(true);
setLLSDDirty();
}
@ -138,6 +143,7 @@ public:
void setFresnelScale(F32 val)
{
mFresnelScale = val;
setDirtyFlag(true);
setLLSDDirty();
}
@ -149,6 +155,7 @@ public:
void setTransparentTextureID(LLUUID val)
{
mTransparentTextureID = val;
setDirtyFlag(true);
setLLSDDirty();
}
@ -160,6 +167,7 @@ public:
void setNormalMapID(LLUUID val)
{
mNormalMapID = val;
setDirtyFlag(true);
setLLSDDirty();
}
@ -171,6 +179,7 @@ public:
void setNormalScale(LLVector3 val)
{
mNormalScale = val;
setDirtyFlag(true);
setLLSDDirty();
}
@ -182,6 +191,7 @@ public:
void setScaleAbove(F32 val)
{
mScaleAbove = val;
setDirtyFlag(true);
setLLSDDirty();
}
@ -193,6 +203,7 @@ public:
void setScaleBelow(F32 val)
{
mScaleBelow = val;
setDirtyFlag(true);
setLLSDDirty();
}
@ -204,6 +215,7 @@ public:
void setWave1Dir(LLVector2 val)
{
mWave1Dir = val;
setDirtyFlag(true);
setLLSDDirty();
}
@ -215,6 +227,7 @@ public:
void setWave2Dir(LLVector2 val)
{
mWave2Dir = val;
setDirtyFlag(true);
setLLSDDirty();
}