summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authormobserveur <mobserveur@gmail.co[alias]>2025-03-22 15:21:11 +0100
committerErik Kundiman <erik@megapahit.org>2025-03-22 22:27:15 +0800
commitfaab4af12b583b48cfdd9f6e41dad7bba06c3970 (patch)
tree70b2a8f196d05e0dad7aa99e9d39a0be9faa4fc9 /indra
parentf4f821fbc85286447b69eb2933dd3ec8b878f0a5 (diff)
Temporary fix for antialiasing causing lower performance on macHEADmain
Water exclusion seems to be at the origin of poor performance with antilasing combind with hdr mode. We remove this from pipeline.cpp for now as a temporary fix. Technically we revert pipeline.cpp to the previous version.
Diffstat (limited to 'indra')
-rw-r--r--indra/newview/pipeline.cpp60
1 files changed, 0 insertions, 60 deletions
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index e441e189ad..362930a71e 100644
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -431,7 +431,6 @@ void LLPipeline::init()
stop_glerror();
//create render pass pools
- getPool(LLDrawPool::POOL_WATEREXCLUSION);
getPool(LLDrawPool::POOL_ALPHA_PRE_WATER);
getPool(LLDrawPool::POOL_ALPHA_POST_WATER);
getPool(LLDrawPool::POOL_SIMPLE);
@@ -674,8 +673,6 @@ void LLPipeline::cleanup()
// don't delete wl sky pool it was handled above in the for loop
//delete mWLSkyPool;
mWLSkyPool = NULL;
- delete mWaterExclusionPool;
- mWaterExclusionPool = nullptr;
releaseGLBuffers();
@@ -910,15 +907,6 @@ bool LLPipeline::allocateScreenBufferInternal(U32 resX, U32 resY)
mPostMap.allocate(resX, resY, screenFormat);
- // The water exclusion mask needs its own depth buffer so we can take care of the problem of multiple water planes.
- // Should we ever make water not just a plane, it also aids with that as well as the water planes will be rendered into the mask.
- // Why do we do this? Because it saves us some janky logic in the exclusion shader when we generate the mask.
- // Regardless, this should always only be an R8 texture unless we choose to start having multiple kinds of exclusion that 8 bits can't handle.
- // - Geenz 2025-02-06
- bool success = mWaterExclusionMask.allocate(resX, resY, GL_R8, true);
-
- assert(success);
-
// used to scale down textures
// See LLViwerTextureList::updateImagesCreateTextures and LLImageGL::scaleDown
mDownResMap.allocate(1024, 1024, GL_RGBA);
@@ -1178,8 +1166,6 @@ void LLPipeline::releaseGLBuffers()
mSceneMap.release();
- mWaterExclusionMask.release();
-
mPostMap.release();
mFXAAMap.release();
@@ -1690,10 +1676,6 @@ LLDrawPool *LLPipeline::findPool(const U32 type, LLViewerTexture *tex0)
poolp = mPBRAlphaMaskPool;
break;
- case LLDrawPool::POOL_WATEREXCLUSION:
- poolp = mWaterExclusionPool;
- break;
-
default:
llassert(0);
LL_ERRS() << "Invalid Pool Type in LLPipeline::findPool() type=" << type << LL_ENDL;
@@ -4090,8 +4072,6 @@ void LLPipeline::renderGeomDeferred(LLCamera& camera, bool do_occlusion)
#endif
}
-// Render all of our geometry that's required after our deferred pass.
-// This is gonna be stuff like alpha, water, etc.
void LLPipeline::renderGeomPostDeferred(LLCamera& camera)
{
LL_PROFILE_ZONE_SCOPED_CATEGORY_DRAWPOOL;
@@ -4110,10 +4090,6 @@ void LLPipeline::renderGeomPostDeferred(LLCamera& camera)
bool done_atmospherics = LLPipeline::sRenderingHUDs; //skip atmospherics on huds
bool done_water_haze = done_atmospherics;
- bool done_water_exclusion = false;
-
- // do water exclusion just before water pass.
- U32 water_exclusion_pass = LLDrawPool::POOL_WATEREXCLUSION;
// do atmospheric haze just before post water alpha
U32 atmospherics_pass = LLDrawPool::POOL_ALPHA_POST_WATER;
@@ -4152,12 +4128,6 @@ void LLPipeline::renderGeomPostDeferred(LLCamera& camera)
cur_type = poolp->getType();
- if (cur_type >= water_exclusion_pass && !done_water_exclusion)
- { // do water exclusion against depth buffer before rendering alpha
- doWaterExclusionMask();
- done_water_exclusion = true;
- }
-
if (cur_type >= atmospherics_pass && !done_atmospherics)
{ // do atmospherics against depth buffer before rendering alpha
doAtmospherics();
@@ -5273,17 +5243,6 @@ void LLPipeline::addToQuickLookup( LLDrawPool* new_poolp )
}
break;
- case LLDrawPool::POOL_WATEREXCLUSION:
- if (mWaterExclusionPool)
- {
- llassert(0);
- LL_WARNS() << "LLPipeline::addPool(): Ignoring duplicate Water Exclusion Pool" << LL_ENDL;
- }
- else
- {
- mWaterExclusionPool = new_poolp;
- }
- break;
default:
llassert(0);
@@ -5406,11 +5365,6 @@ void LLPipeline::removeFromQuickLookup( LLDrawPool* poolp )
mPBRAlphaMaskPool = NULL;
break;
- case LLDrawPool::POOL_WATEREXCLUSION:
- llassert(poolp == mWaterExclusionPool);
- mWaterExclusionPool = nullptr;
- break;
-
default:
llassert(0);
LL_WARNS() << "Invalid Pool Type in LLPipeline::removeFromQuickLookup() type=" << poolp->getType() << LL_ENDL;
@@ -8912,7 +8866,6 @@ void LLPipeline::renderDeferredLighting()
LLPipeline::RENDER_TYPE_FULLBRIGHT_ALPHA_MASK,
LLPipeline::RENDER_TYPE_TERRAIN,
LLPipeline::RENDER_TYPE_WATER,
- LLPipeline::RENDER_TYPE_WATEREXCLUSION,
END_RENDER_TYPES);
renderGeomPostDeferred(*LLViewerCamera::getInstance());
@@ -9051,8 +9004,6 @@ void LLPipeline::doWaterHaze()
static LLStaticHashedString above_water_str("above_water");
haze_shader.uniform1i(above_water_str, sUnderWaterRender ? -1 : 1);
- haze_shader.bindTexture(LLShaderMgr::WATER_EXCLUSIONTEX, &mWaterExclusionMask);
-
if (LLPipeline::sUnderWaterRender)
{
LLGLDepthTest depth(GL_FALSE);
@@ -9083,17 +9034,6 @@ void LLPipeline::doWaterHaze()
}
}
-void LLPipeline::doWaterExclusionMask()
-{
- mWaterExclusionMask.bindTarget();
- glClearColor(1, 1, 1, 1);
- mWaterExclusionMask.clear();
- mWaterExclusionPool->render();
-
- mWaterExclusionMask.flush();
- glClearColor(0, 0, 0, 0);
-}
-
void LLPipeline::setupSpotLight(LLGLSLShader& shader, LLDrawable* drawablep)
{
//construct frustum