summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorBrad Linden <brad@lindenlab.com>2024-10-15 10:45:05 -0700
committerBrad Linden <brad@lindenlab.com>2024-10-15 10:45:05 -0700
commitcd712960f316496b29c53dce390dd778ad9d27f4 (patch)
tree1db0dd051cd4bd8ef356983139bb21132213e73c /indra
parent4b0fa1e3d1567ea9616fd9430cf5cb91c7825133 (diff)
parent86f7e0d75ec1bb74793bbdaea82a2f02264b04a0 (diff)
Merge remote-tracking branch 'origin/release/2024.09-ExtraFPS' into develop
Diffstat (limited to 'indra')
-rw-r--r--indra/llinventory/llsettingssky.cpp8
-rw-r--r--indra/llrender/llimagegl.cpp30
-rw-r--r--indra/llrender/llrender2dutils.cpp6
-rw-r--r--indra/newview/app_settings/settings.xml13
-rw-r--r--indra/newview/llmodelpreview.cpp14
-rw-r--r--indra/newview/llpanelgrouproles.cpp3
-rw-r--r--indra/newview/llsettingsvo.cpp3
-rw-r--r--indra/newview/lltexturefetch.cpp4
-rw-r--r--indra/newview/llvoicevisualizer.cpp2
9 files changed, 59 insertions, 24 deletions
diff --git a/indra/llinventory/llsettingssky.cpp b/indra/llinventory/llsettingssky.cpp
index 3685915ffd..ce6244d038 100644
--- a/indra/llinventory/llsettingssky.cpp
+++ b/indra/llinventory/llsettingssky.cpp
@@ -1995,6 +1995,7 @@ F32 LLSettingsSky::getCloudShadow() const
void LLSettingsSky::setCloudShadow(F32 val)
{
mCloudShadow = val;
+ setDirtyFlag(true);
setLLSDDirty();
}
@@ -2051,6 +2052,7 @@ F32 LLSettingsSky::getMaxY() const
void LLSettingsSky::setMaxY(F32 val)
{
mMaxY = val;
+ setDirtyFlag(true);
setLLSDDirty();
}
@@ -2062,6 +2064,7 @@ LLQuaternion LLSettingsSky::getMoonRotation() const
void LLSettingsSky::setMoonRotation(const LLQuaternion &val)
{
mMoonRotation = val;
+ setDirtyFlag(true);
setLLSDDirty();
}
@@ -2073,6 +2076,7 @@ F32 LLSettingsSky::getMoonScale() const
void LLSettingsSky::setMoonScale(F32 val)
{
mMoonScale = val;
+ setDirtyFlag(true);
setLLSDDirty();
}
@@ -2095,6 +2099,7 @@ F32 LLSettingsSky::getMoonBrightness() const
void LLSettingsSky::setMoonBrightness(F32 brightness_factor)
{
mMoonBrightness = brightness_factor;
+ setDirtyFlag(true);
setLLSDDirty();
}
@@ -2131,6 +2136,7 @@ LLColor3 LLSettingsSky::getSunlightColorClamped() const
void LLSettingsSky::setSunlightColor(const LLColor3 &val)
{
mSunlightColor = val;
+ setDirtyFlag(true);
setLLSDDirty();
}
@@ -2142,6 +2148,7 @@ LLQuaternion LLSettingsSky::getSunRotation() const
void LLSettingsSky::setSunRotation(const LLQuaternion &val)
{
mSunRotation = val;
+ setDirtyFlag(true);
setLLSDDirty();
}
@@ -2153,6 +2160,7 @@ F32 LLSettingsSky::getSunScale() const
void LLSettingsSky::setSunScale(F32 val)
{
mSunScale = val;
+ setDirtyFlag(true);
setLLSDDirty();
}
diff --git a/indra/llrender/llimagegl.cpp b/indra/llrender/llimagegl.cpp
index 67b4ada62f..abbf90bf59 100644
--- a/indra/llrender/llimagegl.cpp
+++ b/indra/llrender/llimagegl.cpp
@@ -1323,12 +1323,16 @@ void LLImageGL::setManualImage(U32 target, S32 miplevel, S32 intformat, S32 widt
{ //GL_ALPHA is deprecated, convert to RGBA
if (pixels != nullptr)
{
- scratch.reset(new(std::nothrow) U32[width * height]);
- if (!scratch)
+ try
+ {
+ scratch.reset(new U32[width * height]);
+ }
+ catch (std::bad_alloc)
{
LLError::LLUserWarningMsg::showOutOfMemory();
LL_ERRS() << "Failed to allocate " << (U32)(width * height * sizeof(U32))
- << " bytes for a manual image W" << width << " H" << height << LL_ENDL;
+ << " bytes for a manual image W" << width << " H" << height
+ << " Pixformat: GL_ALPHA, pixtype: GL_UNSIGNED_BYTE" << LL_ENDL;
}
U32 pixel_count = (U32)(width * height);
@@ -1350,12 +1354,16 @@ void LLImageGL::setManualImage(U32 target, S32 miplevel, S32 intformat, S32 widt
{ //GL_LUMINANCE_ALPHA is deprecated, convert to RGBA
if (pixels != nullptr)
{
- scratch.reset(new(std::nothrow) U32[width * height]);
- if (!scratch)
+ try
+ {
+ scratch.reset(new U32[width * height]);
+ }
+ catch (std::bad_alloc)
{
LLError::LLUserWarningMsg::showOutOfMemory();
LL_ERRS() << "Failed to allocate " << (U32)(width * height * sizeof(U32))
- << " bytes for a manual image W" << width << " H" << height << LL_ENDL;
+ << " bytes for a manual image W" << width << " H" << height
+ << " Pixformat: GL_LUMINANCE_ALPHA, pixtype: GL_UNSIGNED_BYTE" << LL_ENDL;
}
U32 pixel_count = (U32)(width * height);
@@ -1380,12 +1388,16 @@ void LLImageGL::setManualImage(U32 target, S32 miplevel, S32 intformat, S32 widt
{ //GL_LUMINANCE_ALPHA is deprecated, convert to RGB
if (pixels != nullptr)
{
- scratch.reset(new(std::nothrow) U32[width * height]);
- if (!scratch)
+ try
+ {
+ scratch.reset(new U32[width * height]);
+ }
+ catch (std::bad_alloc)
{
LLError::LLUserWarningMsg::showOutOfMemory();
LL_ERRS() << "Failed to allocate " << (U32)(width * height * sizeof(U32))
- << " bytes for a manual image W" << width << " H" << height << LL_ENDL;
+ << " bytes for a manual image W" << width << " H" << height
+ << " Pixformat: GL_LUMINANCE, pixtype: GL_UNSIGNED_BYTE" << LL_ENDL;
}
U32 pixel_count = (U32)(width * height);
diff --git a/indra/llrender/llrender2dutils.cpp b/indra/llrender/llrender2dutils.cpp
index 971241ed05..bec6cb32c4 100644
--- a/indra/llrender/llrender2dutils.cpp
+++ b/indra/llrender/llrender2dutils.cpp
@@ -1693,10 +1693,10 @@ void gl_segmented_rect_3d_tex(const LLRectf& clip_rect, const LLRectf& center_uv
gGL.vertex3fv((center_draw_rect.mLeft * width_vec + height_vec).mV);
gGL.texCoord2f(clip_rect.mLeft, center_uv_rect.mTop);
- gGL.vertex3fv((center_draw_rect.mTop* height_vec).mV);
+ gGL.vertex3fv((center_draw_rect.mTop * height_vec).mV);
- gGL.texCoord2f(center_uv_rect.mLeft, center_uv_rect.mTop);
- gGL.vertex3fv((center_draw_rect.mLeft* width_vec + center_draw_rect.mTop * height_vec).mV);
+ gGL.texCoord2f(center_uv_rect.mLeft, clip_rect.mTop);
+ gGL.vertex3fv((center_draw_rect.mLeft * width_vec + height_vec).mV);
gGL.texCoord2f(clip_rect.mLeft, clip_rect.mTop);
gGL.vertex3fv((height_vec).mV);
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index eed9396789..ea8d268721 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -2469,6 +2469,17 @@
<key>Value</key>
<integer>1</integer>
</map>
+ <key>UseGroupMemberPagination</key>
+ <map>
+ <key>Comment</key>
+ <string>Enable pagination of group memeber list 50 members at a time.</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>Boolean</string>
+ <key>Value</key>
+ <integer>0</integer>
+ </map>
<key>DisplayTimecode</key>
<map>
<key>Comment</key>
@@ -13723,7 +13734,7 @@
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
- <integer>0</integer>
+ <integer>1</integer>
</map>
<key>WarningsAsChat</key>
<map>
diff --git a/indra/newview/llmodelpreview.cpp b/indra/newview/llmodelpreview.cpp
index 1e8b7d39cc..1e7da126b0 100644
--- a/indra/newview/llmodelpreview.cpp
+++ b/indra/newview/llmodelpreview.cpp
@@ -3365,7 +3365,7 @@ bool LLModelPreview::render()
mFMP->childSetEnabled("upload_joints", upload_skin);
}
- F32 explode = (F32)mFMP->childGetValue("physics_explode").asReal();
+ F32 physics_explode = (F32)mFMP->childGetValue("physics_explode").asReal();
LLGLDepthTest gls_depth(GL_TRUE); // SL-12781 re-enable z-buffer for 3D model preview
@@ -3590,12 +3590,12 @@ bool LLModelPreview::render()
for (U32 i = 0; i < physics.mMesh.size(); ++i)
{
- if (explode > 0.f)
+ if (physics_explode > 0.f)
{
gGL.pushMatrix();
LLVector3 offset = model->mHullCenter[i] - model->mCenterOfHullCenters;
- offset *= explode;
+ offset *= physics_explode;
gGL.translatef(offset.mV[0], offset.mV[1], offset.mV[2]);
}
@@ -3610,7 +3610,7 @@ bool LLModelPreview::render()
gGL.diffuseColor4ubv(hull_colors[i].mV);
LLVertexBuffer::drawArrays(LLRender::TRIANGLES, physics.mMesh[i].mPositions);
- if (explode > 0.f)
+ if (physics_explode > 0.f)
{
gGL.popMatrix();
}
@@ -3625,7 +3625,8 @@ bool LLModelPreview::render()
if (render_mesh)
{
auto num_models = mVertexBuffer[LLModel::LOD_PHYSICS][model].size();
- if (pass > 0){
+ if (pass > 0)
+ {
for (size_t i = 0; i < num_models; ++i)
{
gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
@@ -3805,7 +3806,8 @@ bool LLModelPreview::render()
}
}
- for (U32 i = 0, e = static_cast<U32>(mVertexBuffer[mPreviewLOD][model].size()); i < e; ++i)
+ std::size_t size = mVertexBuffer[mPreviewLOD][model].size();
+ for (U32 i = 0; i < size; ++i)
{
model->mSkinInfo.updateHash();
LLRenderPass::uploadMatrixPalette(mPreviewAvatar, &model->mSkinInfo);
diff --git a/indra/newview/llpanelgrouproles.cpp b/indra/newview/llpanelgrouproles.cpp
index 4404efff98..e1f2d7588c 100644
--- a/indra/newview/llpanelgrouproles.cpp
+++ b/indra/newview/llpanelgrouproles.cpp
@@ -1360,7 +1360,8 @@ void LLPanelGroupMembersSubTab::activate()
{
if (!gdatap || !gdatap->isMemberDataComplete())
{
- const U32 page_size = 50;
+ static LLCachedControl<bool> enable_pagination(gSavedSettings, "UseGroupMemberPagination", false);
+ const U32 page_size = enable_pagination() ? 50 : 0;
std::string sort_column_name = mMembersList->getSortColumnName();
bool sort_descending = !mMembersList->getSortAscending();
LLGroupMgr::getInstance()->sendCapGroupMembersRequest(mGroupID, page_size, 0, sort_column_name, sort_descending);
diff --git a/indra/newview/llsettingsvo.cpp b/indra/newview/llsettingsvo.cpp
index 34b8535c84..fee0bbcda4 100644
--- a/indra/newview/llsettingsvo.cpp
+++ b/indra/newview/llsettingsvo.cpp
@@ -671,7 +671,8 @@ void LLSettingsVOSky::updateSettings()
// After some A/B comparison of relesae vs EEP, tweak to allow strength to fall below 2
// at night, for better match. (mSceneLightStrength is a divisor, so lower value means brighter
// local lights)
- F32 sun_dynamic_range = llmax(gSavedSettings.getF32("RenderSunDynamicRange"), 0.0001f);
+ LLCachedControl<F32> sdr(gSavedSettings, "RenderSunDynamicRange", 1.f);
+ F32 sun_dynamic_range = llmax(sdr(), 0.0001f);
mSceneLightStrength = 2.0f * (0.75f + sun_dynamic_range * dp);
gSky.setSunAndMoonDirectionsCFR(sun_direction, moon_direction);
diff --git a/indra/newview/lltexturefetch.cpp b/indra/newview/lltexturefetch.cpp
index 69c40066b4..ed91214bd0 100644
--- a/indra/newview/lltexturefetch.cpp
+++ b/indra/newview/lltexturefetch.cpp
@@ -2090,7 +2090,7 @@ bool LLTextureFetchWorker::deleteOK()
// Allow any pending reads or writes to complete
if (mCacheReadHandle != LLTextureCache::nullHandle())
{
- if (mFetcher->mTextureCache->readComplete(mCacheReadHandle, true))
+ if (!mFetcher->mTextureCache || mFetcher->mTextureCache->readComplete(mCacheReadHandle, true))
{
mCacheReadHandle = LLTextureCache::nullHandle();
}
@@ -2101,7 +2101,7 @@ bool LLTextureFetchWorker::deleteOK()
}
if (mCacheWriteHandle != LLTextureCache::nullHandle())
{
- if (mFetcher->mTextureCache->writeComplete(mCacheWriteHandle))
+ if (!mFetcher->mTextureCache || mFetcher->mTextureCache->writeComplete(mCacheWriteHandle))
{
mCacheWriteHandle = LLTextureCache::nullHandle();
}
diff --git a/indra/newview/llvoicevisualizer.cpp b/indra/newview/llvoicevisualizer.cpp
index 7691ac54f3..c5704982b8 100644
--- a/indra/newview/llvoicevisualizer.cpp
+++ b/indra/newview/llvoicevisualizer.cpp
@@ -337,7 +337,7 @@ void LLVoiceVisualizer::lipSyncOohAah( F32& ooh, F32& aah )
//---------------------------------------------------
void LLVoiceVisualizer::render()
{
- static LLCachedControl<bool> show_visualizer(gSavedSettings, "VoiceVisualizerEnabled", false);
+ static LLCachedControl<bool> show_visualizer(gSavedSettings, "VoiceVisualizerEnabled", true);
if (!mVoiceEnabled || !show_visualizer)
{
return;