SL-18682 WIP -- Clear BOOST_SELECTED as needed. GL 3.2 compatibility pass. Fix for stack underflow when reflection probes disabled.

master
Dave Parks 2022-11-29 10:50:25 -06:00
parent b5db671f7c
commit e46323b0b9
8 changed files with 60 additions and 32 deletions

13
.gitignore vendored
View File

@ -7,9 +7,18 @@
*.pyc
*.rej
*.swp
*.vcxproj
*.filters
*.sln
*.depend
*.stamp
*.rc
*~
# Specific paths and/or names
CMakeCache.txt
cmake_install.cmake
LICENSES
build-darwin-*
build-linux-*
@ -17,6 +26,10 @@ debian/files
debian/secondlife-appearance-utility*
debian/secondlife-viewer*
indra/.distcc
indra/cmake/*
indra/out/*
indra/packages/*
build-vc80/
build-vc100/
build-vc120/

View File

@ -9235,7 +9235,7 @@
<key>RenderMaxVRAMBudget</key>
<map>
<key>Comment</key>
<string>Maximum amount of texture memory to budget for, or 0 for autodetect. Requires restart.</string>
<string>Maximum amount of texture memory to budget for (in MB), or 0 for autodetect. Requires restart.</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>

View File

@ -535,7 +535,6 @@ void LLDrawPoolBump::endFullbrightShiny()
if( cube_map )
{
cube_map->disable();
cube_map->restoreMatrix();
if (shader->mFeatures.hasReflectionProbes)
{
gPipeline.unbindReflectionProbes(*shader);

View File

@ -1215,6 +1215,16 @@ void LLFloaterPreferenceGraphicsAdvanced::refreshEnabledState()
ctrl_shadow->setEnabled(enabled);
shadow_text->setEnabled(enabled);
if (!LLFeatureManager::instance().isFeatureAvailable("RenderFSAASamples"))
{
getChildView("fsaa")->setEnabled(FALSE);
}
if (!LLFeatureManager::instance().isFeatureAvailable("RenderReflectionProbeDetail"))
{
getChildView("ReflectionDetail")->setEnabled(FALSE);
}
// Hardware settings
if (!LLFeatureManager::getInstance()->isFeatureAvailable("RenderCompressTextures"))

View File

@ -4062,7 +4062,7 @@ void LLViewerObject::updateTextures()
void LLViewerObject::boostTexturePriority(BOOL boost_children /* = TRUE */)
{
if (isDead())
if (isDead() || !getVolume())
{
return;
}

View File

@ -789,7 +789,33 @@ void LLViewerObjectList::updateApparentAngles(LLAgent &agent)
max_value = llmin((S32) mObjects.size(), mCurLazyUpdateIndex + num_updates);
}
#if 0
// Iterate through some of the objects and lazy update their texture priorities
for (i = mCurLazyUpdateIndex; i < max_value; i++)
{
objectp = mObjects[i];
if (!objectp->isDead())
{
num_objects++;
// Update distance & gpw
objectp->setPixelAreaAndAngle(agent); // Also sets the approx. pixel area
objectp->updateTextures(); // Update the image levels of textures for this object.
}
}
mCurLazyUpdateIndex = max_value;
if (mCurLazyUpdateIndex == mObjects.size())
{
// restart
mCurLazyUpdateIndex = 0;
mCurBin = 0; // keep in sync with index (mObjects.size() could have changed)
}
else
{
mCurBin = (mCurBin + 1) % NUM_BINS;
}
#if 1
// Slam priorities for textures that we care about (hovered, selected, and focused)
// Hovered
// Assumes only one level deep of parenting
@ -822,32 +848,6 @@ void LLViewerObjectList::updateApparentAngles(LLAgent &agent)
LLSelectMgr::getInstance()->getSelection()->applyToRootObjects(&func);
#endif
// Iterate through some of the objects and lazy update their texture priorities
for (i = mCurLazyUpdateIndex; i < max_value; i++)
{
objectp = mObjects[i];
if (!objectp->isDead())
{
num_objects++;
// Update distance & gpw
objectp->setPixelAreaAndAngle(agent); // Also sets the approx. pixel area
objectp->updateTextures(); // Update the image levels of textures for this object.
}
}
mCurLazyUpdateIndex = max_value;
if (mCurLazyUpdateIndex == mObjects.size())
{
// restart
mCurLazyUpdateIndex = 0;
mCurBin = 0; // keep in sync with index (mObjects.size() could have changed)
}
else
{
mCurBin = (mCurBin + 1) % NUM_BINS;
}
LLVOAvatar::cullAvatarsByPixelArea();
}

View File

@ -800,7 +800,13 @@ void LLVOVolume::updateTextureVirtualSize(bool forced)
{
continue;
}
// clear out boost selected periodically
if (imagep->getBoostLevel() == LLGLTexture::BOOST_SELECTED)
{
imagep->setBoostLevel(LLGLTexture::BOOST_NONE);
}
F32 vsize;
F32 old_size = face->getVirtualSize();

View File

@ -666,7 +666,7 @@
layout="topleft"
left_delta="130"
top_delta="0"
name="ReflectionDetial"
name="ReflectionDetail"
width="150">
<combo_box.item
label="Disabled"