diff options
| author | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2021-11-12 17:34:13 +0200 | 
|---|---|---|
| committer | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2021-11-12 17:44:40 +0200 | 
| commit | 7ce17542d46ff7cb6b88d33d4cad5ba4808c6c58 (patch) | |
| tree | a29ce0a5bab1803b186fff9649954d68de78c7c0 /indra/newview | |
| parent | 0fa3d7705fb6a42410d1578b1fab5b7952a59e7c (diff) | |
DRTVWR-528 Reverting multiple commits due to moving them into D546 branch
This reverts commits
9b5b2eac82b1f423daec463b3d55d0f3d3979bbc  SL-15933
53c0144dd272470172591b967a84beaa4019b728  SL-11687
492ea7c3a03d5ef0d3679b873a44c08baaced0f1 SL-16056
b854eceee3a867d64b20de18d6b7ce91b33abed0 SL-15391
921c3f5f69c90b5924d2f4bbbd32455f8c9c8173 SL-13561
639acb6ff7495a6840d437dd8473172ec03e200a SL-15333
Diffstat (limited to 'indra/newview')
| -rw-r--r-- | indra/newview/llappviewer.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/lldrawpoolwater.cpp | 13 | ||||
| -rw-r--r-- | indra/newview/llfloaterpreference.cpp | 6 | ||||
| -rw-r--r-- | indra/newview/llviewercontrol.cpp | 1 | ||||
| -rw-r--r-- | indra/newview/llviewershadermgr.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/llvoavatar.cpp | 35 | ||||
| -rw-r--r-- | indra/newview/llvoavatar.h | 3 | ||||
| -rw-r--r-- | indra/newview/pipeline.cpp | 39 | 
8 files changed, 24 insertions, 77 deletions
| diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index 4a33563f3f..87f22a98c1 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -610,7 +610,7 @@ static void settings_modify()  	LLRenderTarget::sUseFBO				= gSavedSettings.getBOOL("RenderDeferred");  	LLPipeline::sRenderTransparentWater	= gSavedSettings.getBOOL("RenderTransparentWater");  	LLPipeline::sRenderBump				= gSavedSettings.getBOOL("RenderObjectBump"); -	LLPipeline::sRenderDeferred		= LLPipeline::sRenderBump && gSavedSettings.getBOOL("RenderDeferred"); +	LLPipeline::sRenderDeferred		= LLPipeline::sRenderTransparentWater && LLPipeline::sRenderBump && gSavedSettings.getBOOL("RenderDeferred");  	LLVOSurfacePatch::sLODFactor		= gSavedSettings.getF32("RenderTerrainLODFactor");  	LLVOSurfacePatch::sLODFactor *= LLVOSurfacePatch::sLODFactor; //square lod factor to get exponential range of [1,4]  	gDebugGL = gSavedSettings.getBOOL("RenderDebugGL") || gDebugSession; diff --git a/indra/newview/lldrawpoolwater.cpp b/indra/newview/lldrawpoolwater.cpp index 0cf36e4e8a..aa426cd785 100644 --- a/indra/newview/lldrawpoolwater.cpp +++ b/indra/newview/lldrawpoolwater.cpp @@ -137,14 +137,6 @@ void LLDrawPoolWater::endPostDeferredPass(S32 pass)  void LLDrawPoolWater::renderDeferred(S32 pass)  {  	LL_RECORD_BLOCK_TIME(FTM_RENDER_WATER); - -    if (!LLPipeline::sRenderTransparentWater) -    { -        // Will render opaque water without use of ALM -        render(pass); -        return; -    } -  	deferred_render = TRUE;  	shade();  	deferred_render = FALSE; @@ -347,11 +339,6 @@ void LLDrawPoolWater::renderOpaqueLegacyWater()  {  	LLVOSky *voskyp = gSky.mVOSkyp; -    if (voskyp == NULL) -    { -        return; -    } -  	LLGLSLShader* shader = NULL;  	if (LLGLSLShader::sNoFixedFunction)  	{ diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp index 92e64d0b95..6bf2136f60 100644 --- a/indra/newview/llfloaterpreference.cpp +++ b/indra/newview/llfloaterpreference.cpp @@ -1198,9 +1198,11 @@ void LLFloaterPreference::refreshEnabledState()  	//Deferred/SSAO/Shadows  	BOOL bumpshiny = gGLManager.mHasCubeMap && LLCubeMap::sUseCubeMaps && LLFeatureManager::getInstance()->isFeatureAvailable("RenderObjectBump") && gSavedSettings.getBOOL("RenderObjectBump"); +	BOOL transparent_water = LLFeatureManager::getInstance()->isFeatureAvailable("RenderTransparentWater") && gSavedSettings.getBOOL("RenderTransparentWater");  	BOOL shaders = gSavedSettings.getBOOL("WindLightUseAtmosShaders");  	BOOL enabled = LLFeatureManager::getInstance()->isFeatureAvailable("RenderDeferred") &&  						bumpshiny && +						transparent_water &&  						shaders &&   						gGLManager.mHasFramebufferObject &&  						gSavedSettings.getBOOL("RenderAvatarVP") && @@ -1224,6 +1226,9 @@ void LLFloaterPreferenceGraphicsAdvanced::refreshEnabledState()  	ctrl_reflections->setEnabled(reflections);  	reflections_text->setEnabled(reflections); +    // Transparent Water +    LLCheckBoxCtrl* transparent_water_ctrl = getChild<LLCheckBoxCtrl>("TransparentWater"); +  	// Bump & Shiny	  	LLCheckBoxCtrl* bumpshiny_ctrl = getChild<LLCheckBoxCtrl>("BumpShiny");  	bool bumpshiny = gGLManager.mHasCubeMap && LLCubeMap::sUseCubeMaps && LLFeatureManager::getInstance()->isFeatureAvailable("RenderObjectBump"); @@ -1274,6 +1279,7 @@ void LLFloaterPreferenceGraphicsAdvanced::refreshEnabledState()      BOOL enabled = LLFeatureManager::getInstance()->isFeatureAvailable("RenderDeferred") &&                          ((bumpshiny_ctrl && bumpshiny_ctrl->get()) ? TRUE : FALSE) && +                        ((transparent_water_ctrl && transparent_water_ctrl->get()) ? TRUE : FALSE) &&                          gGLManager.mHasFramebufferObject &&                          gSavedSettings.getBOOL("RenderAvatarVP") &&                          (ctrl_wind_light->get()) ? TRUE : FALSE; diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp index 73e0719128..76dc9a6790 100644 --- a/indra/newview/llviewercontrol.cpp +++ b/indra/newview/llviewercontrol.cpp @@ -187,6 +187,7 @@ static bool handleRenderPerfTestChanged(const LLSD& newvalue)  bool handleRenderTransparentWaterChanged(const LLSD& newvalue)  { +	LLRenderTarget::sUseFBO = newvalue.asBoolean();  	if (gPipeline.isInit())  	{  		gPipeline.updateRenderTransparentWater(); diff --git a/indra/newview/llviewershadermgr.cpp b/indra/newview/llviewershadermgr.cpp index 854fcf1359..43e9a2333e 100644 --- a/indra/newview/llviewershadermgr.cpp +++ b/indra/newview/llviewershadermgr.cpp @@ -435,7 +435,7 @@ void LLViewerShaderMgr::setShaders()      initAttribsAndUniforms();      gPipeline.releaseGLBuffers(); -    LLPipeline::sWaterReflections = gGLManager.mHasCubeMap && LLPipeline::sRenderTransparentWater; +    LLPipeline::sWaterReflections = gGLManager.mHasCubeMap;      LLPipeline::sRenderGlow = gSavedSettings.getBOOL("RenderGlow");       LLPipeline::updateRenderDeferred(); diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index 6e7d0744a5..e085a945a8 100644 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -126,9 +126,6 @@ const F32 MIN_HOVER_Z = -2.0;  const F32 MIN_ATTACHMENT_COMPLEXITY = 0.f;  const F32 DEFAULT_MAX_ATTACHMENT_COMPLEXITY = 1.0e6f; -const F32 FIRST_APPEARANCE_CLOUD_MIN_DELAY = 3.f; // seconds -const F32 FIRST_APPEARANCE_CLOUD_MAX_DELAY = 45.f; -  using namespace LLAvatarAppearanceDefines;  //----------------------------------------------------------------------------- @@ -667,7 +664,6 @@ LLVOAvatar::LLVOAvatar(const LLUUID& id,  	mVisuallyMuteSetting(AV_RENDER_NORMALLY),  	mMutedAVColor(LLColor4::white /* used for "uninitialize" */),  	mFirstFullyVisible(TRUE), -	mFirstUseDelaySeconds(FIRST_APPEARANCE_CLOUD_MIN_DELAY),  	mFullyLoaded(FALSE),  	mPreviousFullyLoaded(FALSE),  	mFullyLoadedInitialized(FALSE), @@ -742,7 +738,7 @@ LLVOAvatar::LLVOAvatar(const LLUUID& id,  	mCurrentGesticulationLevel = 0; -	mFirstSeenTimer.reset(); +      	mRuthTimer.reset();  	mRuthDebugTimer.reset();  	mDebugExistenceTimer.reset(); @@ -8130,35 +8126,16 @@ void LLVOAvatar::updateRuthTimer(bool loading)  BOOL LLVOAvatar::processFullyLoadedChange(bool loading)  {  	// We wait a little bit before giving the 'all clear', to let things to -	// settle down (models to snap into place, textures to get first packets). -    // And if viewer isn't aware of some parts yet, this gives them a chance -    // to arrive. +	// settle down (models to snap into place, textures to get first packets)  	const F32 LOADED_DELAY = 1.f; +	const F32 FIRST_USE_DELAY = 3.f; -    if (loading) -    { -        mFullyLoadedTimer.reset(); -    } +	if (loading) +		mFullyLoadedTimer.reset();  	if (mFirstFullyVisible)  	{ -        if (!isSelf() && loading) -        { -                // Note that textures can causes 60s delay on thier own -                // so this delay might end up on top of textures' delay -                mFirstUseDelaySeconds = llclamp( -                    mFirstSeenTimer.getElapsedTimeF32(), -                    FIRST_APPEARANCE_CLOUD_MIN_DELAY, -                    FIRST_APPEARANCE_CLOUD_MAX_DELAY); - -                if (shouldImpostor()) -                { -                    // Impostors are less of a priority, -                    // let them stay cloud longer -                    mFirstUseDelaySeconds *= 1.25; -                } -        } -		mFullyLoaded = (mFullyLoadedTimer.getElapsedTimeF32() > mFirstUseDelaySeconds); +		mFullyLoaded = (mFullyLoadedTimer.getElapsedTimeF32() > FIRST_USE_DELAY);  	}  	else  	{ diff --git a/indra/newview/llvoavatar.h b/indra/newview/llvoavatar.h index f7daabae56..74ef589ca4 100644 --- a/indra/newview/llvoavatar.h +++ b/indra/newview/llvoavatar.h @@ -380,9 +380,6 @@ protected:  private:  	BOOL			mFirstFullyVisible; -	F32				mFirstUseDelaySeconds; -	LLFrameTimer	mFirstSeenTimer; -  	BOOL			mFullyLoaded;  	BOOL			mPreviousFullyLoaded;  	BOOL			mFullyLoadedInitialized; diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index c417b55108..9924b02a95 100644 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -1054,6 +1054,7 @@ void LLPipeline::updateRenderDeferred()                        RenderDeferred &&                        LLRenderTarget::sUseFBO &&                        LLPipeline::sRenderBump && +                      LLPipeline::sRenderTransparentWater &&                        RenderAvatarVP &&                        WindLightUseAtmosShaders &&                        (bool) LLFeatureManager::getInstance()->isFeatureAvailable("RenderDeferred"); @@ -9259,12 +9260,7 @@ inline float sgn(float a)  void LLPipeline::generateWaterReflection(LLCamera& camera_in)  { -    if (!assertInitialized()) -    { -        return; -    } - -    if (LLPipeline::sWaterReflections && LLDrawPoolWater::sNeedsReflectionUpdate) +    if (LLPipeline::sWaterReflections && assertInitialized() && LLDrawPoolWater::sNeedsReflectionUpdate)      {          bool skip_avatar_update = false;          if (!isAgentAvatarValid() || gAgentCamera.getCameraAnimating() || gAgentCamera.getCameraMode() != CAMERA_MODE_MOUSELOOK || !LLVOAvatar::sVisibleInFirstPerson) @@ -9491,13 +9487,19 @@ void LLPipeline::generateWaterReflection(LLCamera& camera_in)                  //clip out geometry on the same side of water as the camera w/ enough margin to not include the water geo itself,                  // but not so much as to clip out parts of avatars that should be seen under the water in the distortion map -                LLPlane plane(-pnorm, camera_is_underwater ? -water_height : water_dist); +                LLPlane plane(-pnorm, water_dist);                  LLGLUserClipPlane clip_plane(plane, saved_modelview, saved_projection);                  gGL.setColorMask(true, true);                  mWaterDis.clear();                  gGL.setColorMask(true, false); +                // ignore clip plane if we're underwater and viewing distortion map of objects above waterline +                if (camera_is_underwater) +                { +                    clip_plane.disable(); +                } +                  if (reflection_detail >= WATER_REFLECT_NONE_WATER_TRANSPARENT)                  {                      updateCull(camera, mRefractedObjects, water_clip, &plane); @@ -9551,29 +9553,6 @@ void LLPipeline::generateWaterReflection(LLCamera& camera_in)          LLViewerCamera::sCurCameraID = LLViewerCamera::CAMERA_WORLD;      } -    else -    { -        // Initial sky pass is still needed even if water reflection is not rendering -        bool camera_is_underwater = LLViewerCamera::getInstance()->cameraUnderWater(); -        if (!camera_is_underwater) -        { -            gPipeline.pushRenderTypeMask(); -            { -                gPipeline.andRenderTypeMask( -                    LLPipeline::RENDER_TYPE_SKY, -                    LLPipeline::RENDER_TYPE_WL_SKY, -                    LLPipeline::END_RENDER_TYPES); - -                LLCamera camera = camera_in; -                camera.setFar(camera_in.getFar() * 0.75f); - -                updateCull(camera, mSky); -                stateSort(camera, mSky); -                renderGeom(camera, TRUE); -            } -            gPipeline.popRenderTypeMask(); -        } -    }  }  glh::matrix4f look(const LLVector3 pos, const LLVector3 dir, const LLVector3 up) | 
