diff options
24 files changed, 257 insertions, 371 deletions
diff --git a/indra/newview/app_settings/high_graphics.xml b/indra/newview/app_settings/high_graphics.xml index c38b3fcda4..662f7e39dd 100644 --- a/indra/newview/app_settings/high_graphics.xml +++ b/indra/newview/app_settings/high_graphics.xml @@ -33,8 +33,6 @@  	<!--Default for now-->  	<RenderVolumeLODFactor value="1.125"/>  	<!--NO SHADERS--> -	<VertexShaderEnable value="TRUE"/> -	<!--NO SHADERS-->  	<WindLightUseAtmosShaders value="TRUE"/>  	<!--Deferred Shading-->  	<RenderDeferred value="FALSE"/> diff --git a/indra/newview/app_settings/low_graphics.xml b/indra/newview/app_settings/low_graphics.xml index df3f67a5a1..0ee8e7a059 100644 --- a/indra/newview/app_settings/low_graphics.xml +++ b/indra/newview/app_settings/low_graphics.xml @@ -33,8 +33,6 @@  	<!--Default for now-->  	<RenderVolumeLODFactor value="1.125"/>  	<!--NO SHADERS--> -	<VertexShaderEnable value="FALSE"/> -	<!--NO SHADERS-->  	<WindLightUseAtmosShaders value="FALSE"/>  	<!--No Deferred Shading-->  	<RenderDeferred value="FALSE"/> diff --git a/indra/newview/app_settings/mid_graphics.xml b/indra/newview/app_settings/mid_graphics.xml index a10c02b79f..c89e060307 100644 --- a/indra/newview/app_settings/mid_graphics.xml +++ b/indra/newview/app_settings/mid_graphics.xml @@ -33,8 +33,6 @@  	<!--Default for now-->  	<RenderVolumeLODFactor value="1.125"/>  	<!--NO SHADERS--> -	<VertexShaderEnable value="TRUE"/> -	<!--NO SHADERS-->  	<WindLightUseAtmosShaders value="FALSE"/>  	<!--No Deferred Shading-->  	<RenderDeferred value="FALSE"/> diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 05722bd8c1..0cb9ee3ace 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -14259,6 +14259,7 @@        <key>Value</key>        <integer>1</integer>      </map> +    <!-- SL-12594 removes fixed function rendering      <key>VertexShaderEnable</key>      <map>        <key>Comment</key> @@ -14270,6 +14271,7 @@        <key>Value</key>        <integer>0</integer>      </map> +    <-->      <key>VivoxAutoPostCrashDumps</key>      <map>        <key>Comment</key> diff --git a/indra/newview/app_settings/ultra_graphics.xml b/indra/newview/app_settings/ultra_graphics.xml index 3e7fccbd5f..eb2cd356d9 100644 --- a/indra/newview/app_settings/ultra_graphics.xml +++ b/indra/newview/app_settings/ultra_graphics.xml @@ -34,8 +34,6 @@  	<!--Default for now-->  	<RenderVolumeLODFactor value="2.0"/>  	<!--NO SHADERS--> -	<VertexShaderEnable value="TRUE"/> -	<!--NO SHADERS-->  	<WindLightUseAtmosShaders value="TRUE"/>  	<!--Deferred Shading-->  	<RenderDeferred value="TRUE"/> diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp index 5cfdc466ef..093753c967 100644 --- a/indra/newview/llfloaterpreference.cpp +++ b/indra/newview/llfloaterpreference.cpp @@ -407,7 +407,7 @@ LLFloaterPreference::LLFloaterPreference(const LLSD& key)  	mCommitCallbackRegistrar.add("Pref.HardwareDefaults",		boost::bind(&LLFloaterPreference::setHardwareDefaults, this));  	mCommitCallbackRegistrar.add("Pref.AvatarImpostorsEnable",	boost::bind(&LLFloaterPreference::onAvatarImpostorsEnable, this));  	mCommitCallbackRegistrar.add("Pref.UpdateIndirectMaxComplexity",	boost::bind(&LLFloaterPreference::updateMaxComplexity, this)); -	mCommitCallbackRegistrar.add("Pref.VertexShaderEnable",		boost::bind(&LLFloaterPreference::onVertexShaderEnable, this)); +    mCommitCallbackRegistrar.add("Pref.RenderOptionUpdate",     boost::bind(&LLFloaterPreference::onRenderOptionEnable, this));  	mCommitCallbackRegistrar.add("Pref.WindowedMod",			boost::bind(&LLFloaterPreference::onCommitWindowedMode, this));  	mCommitCallbackRegistrar.add("Pref.UpdateSliderText",		boost::bind(&LLFloaterPreference::refreshUI,this));  	mCommitCallbackRegistrar.add("Pref.QualityPerformance",		boost::bind(&LLFloaterPreference::onChangeQuality, this, _2)); @@ -866,12 +866,12 @@ void LLFloaterPreference::onOpen(const LLSD& key)  	}  } -void LLFloaterPreference::onVertexShaderEnable() +void LLFloaterPreference::onRenderOptionEnable()  {  	refreshEnabledGraphics();  } -void LLFloaterPreferenceGraphicsAdvanced::onVertexShaderEnable() +void LLFloaterPreferenceGraphicsAdvanced::onRenderOptionEnable()  {  	LLFloaterPreference* instance = LLFloaterReg::findTypedInstance<LLFloaterPreference>("preferences");  	if (instance) @@ -1305,20 +1305,19 @@ void LLFloaterPreference::refreshEnabledState()  	LLCheckBoxCtrl* ctrl_deferred = getChild<LLCheckBoxCtrl>("UseLightShaders");  	// if vertex shaders off, disable all shader related products -	if (!LLFeatureManager::getInstance()->isFeatureAvailable("VertexShaderEnable") || -		!LLFeatureManager::getInstance()->isFeatureAvailable("WindLightUseAtmosShaders")) +	if (!LLFeatureManager::getInstance()->isFeatureAvailable("WindLightUseAtmosShaders"))  	{  		ctrl_wind_light->setEnabled(FALSE);  		ctrl_wind_light->setValue(FALSE);  	}  	else  	{ -		ctrl_wind_light->setEnabled(gSavedSettings.getBOOL("VertexShaderEnable")); +		ctrl_wind_light->setEnabled(TRUE);  	}  	//Deferred/SSAO/Shadows  	BOOL bumpshiny = gGLManager.mHasCubeMap && LLCubeMap::sUseCubeMaps && LLFeatureManager::getInstance()->isFeatureAvailable("RenderObjectBump") && gSavedSettings.getBOOL("RenderObjectBump"); -	BOOL shaders = gSavedSettings.getBOOL("WindLightUseAtmosShaders") && gSavedSettings.getBOOL("VertexShaderEnable"); +	BOOL shaders = gSavedSettings.getBOOL("WindLightUseAtmosShaders");  	BOOL enabled = LLFeatureManager::getInstance()->isFeatureAvailable("RenderDeferred") &&  						bumpshiny &&  						shaders &&  @@ -1340,9 +1339,7 @@ void LLFloaterPreferenceGraphicsAdvanced::refreshEnabledState()  	LLTextBox* reflections_text = getChild<LLTextBox>("ReflectionsText");  	// Reflections -	BOOL reflections = gSavedSettings.getBOOL("VertexShaderEnable")  -		&& gGLManager.mHasCubeMap -		&& LLCubeMap::sUseCubeMaps; +    BOOL reflections = gGLManager.mHasCubeMap && LLCubeMap::sUseCubeMaps;  	ctrl_reflections->setEnabled(reflections);  	reflections_text->setEnabled(reflections); @@ -1366,59 +1363,41 @@ void LLFloaterPreferenceGraphicsAdvanced::refreshEnabledState()  	ctrl_avatar_vp->setEnabled(avatar_vp_enabled); -	if (gSavedSettings.getBOOL("VertexShaderEnable") == FALSE ||  -		gSavedSettings.getBOOL("RenderAvatarVP") == FALSE) -	{ -		ctrl_avatar_cloth->setEnabled(FALSE); -	}  -	else -	{ -		ctrl_avatar_cloth->setEnabled(TRUE); -	} -	 -	// Vertex Shaders -	// Global Shader Enable -	LLCheckBoxCtrl* ctrl_shader_enable   = getChild<LLCheckBoxCtrl>("BasicShaders"); -	LLSliderCtrl* terrain_detail = getChild<LLSliderCtrl>("TerrainDetail");   // can be linked with control var -	LLTextBox* terrain_text = getChild<LLTextBox>("TerrainDetailText"); +    if (gSavedSettings.getBOOL("RenderAvatarVP") == FALSE) +    { +        ctrl_avatar_cloth->setEnabled(FALSE); +    }  +    else +    { +        ctrl_avatar_cloth->setEnabled(TRUE); +    } -	ctrl_shader_enable->setEnabled(LLFeatureManager::getInstance()->isFeatureAvailable("VertexShaderEnable")); -	 -	BOOL shaders = ctrl_shader_enable->get(); -	if (shaders) -	{ -		terrain_detail->setEnabled(FALSE); -		terrain_text->setEnabled(FALSE); -	} -	else -	{ -		terrain_detail->setEnabled(TRUE); -		terrain_text->setEnabled(TRUE); -	} -	 -	// WindLight -	LLCheckBoxCtrl* ctrl_wind_light = getChild<LLCheckBoxCtrl>("WindLightUseAtmosShaders"); -	LLSliderCtrl* sky = getChild<LLSliderCtrl>("SkyMeshDetail"); -	LLTextBox* sky_text = getChild<LLTextBox>("SkyMeshDetailText"); +    // Vertex Shaders, Global Shader Enable +    // SL-12594 Basic shaders are always enabled. DJH TODO clean up now-orphaned state handling code +    LLSliderCtrl* terrain_detail = getChild<LLSliderCtrl>("TerrainDetail");   // can be linked with control var +    LLTextBox* terrain_text = getChild<LLTextBox>("TerrainDetailText"); -	// *HACK just checks to see if we can use shaders...  -	// maybe some cards that use shaders, but don't support windlight -	ctrl_wind_light->setEnabled(ctrl_shader_enable->getEnabled() && shaders); +    terrain_detail->setEnabled(FALSE); +    terrain_text->setEnabled(FALSE); -	sky->setEnabled(ctrl_wind_light->get() && shaders); -	sky_text->setEnabled(ctrl_wind_light->get() && shaders); +    // WindLight +    LLCheckBoxCtrl* ctrl_wind_light = getChild<LLCheckBoxCtrl>("WindLightUseAtmosShaders"); +    LLSliderCtrl* sky = getChild<LLSliderCtrl>("SkyMeshDetail"); +    LLTextBox* sky_text = getChild<LLTextBox>("SkyMeshDetailText"); +    ctrl_wind_light->setEnabled(TRUE); +    sky->setEnabled(TRUE); +    sky_text->setEnabled(TRUE); -	//Deferred/SSAO/Shadows -	LLCheckBoxCtrl* ctrl_deferred = getChild<LLCheckBoxCtrl>("UseLightShaders"); -	 -	BOOL enabled = LLFeatureManager::getInstance()->isFeatureAvailable("RenderDeferred") && -						((bumpshiny_ctrl && bumpshiny_ctrl->get()) ? TRUE : FALSE) && -						shaders &&  -						gGLManager.mHasFramebufferObject && -						gSavedSettings.getBOOL("RenderAvatarVP") && -						(ctrl_wind_light->get()) ? TRUE : FALSE; +    //Deferred/SSAO/Shadows +    LLCheckBoxCtrl* ctrl_deferred = getChild<LLCheckBoxCtrl>("UseLightShaders"); +     +    BOOL enabled = LLFeatureManager::getInstance()->isFeatureAvailable("RenderDeferred") && +                        ((bumpshiny_ctrl && bumpshiny_ctrl->get()) ? TRUE : FALSE) && +                        gGLManager.mHasFramebufferObject && +                        gSavedSettings.getBOOL("RenderAvatarVP") && +                        (ctrl_wind_light->get()) ? TRUE : FALSE; -	ctrl_deferred->setEnabled(enabled); +    ctrl_deferred->setEnabled(enabled);  	LLCheckBoxCtrl* ctrl_ssao = getChild<LLCheckBoxCtrl>("UseSSAO");  	LLCheckBoxCtrl* ctrl_dof = getChild<LLCheckBoxCtrl>("UseDoF"); @@ -1516,7 +1495,6 @@ void LLFloaterPreferenceGraphicsAdvanced::disableUnavailableSettings()  	LLTextBox* reflections_text = getChild<LLTextBox>("ReflectionsText");  	LLCheckBoxCtrl* ctrl_avatar_vp     = getChild<LLCheckBoxCtrl>("AvatarVertexProgram");  	LLCheckBoxCtrl* ctrl_avatar_cloth  = getChild<LLCheckBoxCtrl>("AvatarCloth"); -	LLCheckBoxCtrl* ctrl_shader_enable = getChild<LLCheckBoxCtrl>("BasicShaders");  	LLCheckBoxCtrl* ctrl_wind_light    = getChild<LLCheckBoxCtrl>("WindLightUseAtmosShaders");  	LLCheckBoxCtrl* ctrl_deferred = getChild<LLCheckBoxCtrl>("UseLightShaders");  	LLComboBox* ctrl_shadows = getChild<LLComboBox>("ShadowDetail"); @@ -1526,42 +1504,6 @@ void LLFloaterPreferenceGraphicsAdvanced::disableUnavailableSettings()  	LLSliderCtrl* sky = getChild<LLSliderCtrl>("SkyMeshDetail");  	LLTextBox* sky_text = getChild<LLTextBox>("SkyMeshDetailText"); -	// if vertex shaders off, disable all shader related products -	if (!LLFeatureManager::getInstance()->isFeatureAvailable("VertexShaderEnable")) -	{ -		ctrl_shader_enable->setEnabled(FALSE); -		ctrl_shader_enable->setValue(FALSE); -		 -		ctrl_wind_light->setEnabled(FALSE); -		ctrl_wind_light->setValue(FALSE); - -		sky->setEnabled(FALSE); -		sky_text->setEnabled(FALSE); - -		ctrl_reflections->setEnabled(FALSE); -		ctrl_reflections->setValue(0); -		reflections_text->setEnabled(FALSE); -		 -		ctrl_avatar_vp->setEnabled(FALSE); -		ctrl_avatar_vp->setValue(FALSE); -		 -		ctrl_avatar_cloth->setEnabled(FALSE); -		ctrl_avatar_cloth->setValue(FALSE); - -		ctrl_shadows->setEnabled(FALSE); -		ctrl_shadows->setValue(0); -		shadows_text->setEnabled(FALSE); -		 -		ctrl_ssao->setEnabled(FALSE); -		ctrl_ssao->setValue(FALSE); - -		ctrl_dof->setEnabled(FALSE); -		ctrl_dof->setValue(FALSE); - -		ctrl_deferred->setEnabled(FALSE); -		ctrl_deferred->setValue(FALSE); -	} -	  	// disabled windlight  	if (!LLFeatureManager::getInstance()->isFeatureAvailable("WindLightUseAtmosShaders"))  	{ @@ -2928,7 +2870,7 @@ void LLPanelPreferenceGraphics::setHardwareDefaults()  LLFloaterPreferenceGraphicsAdvanced::LLFloaterPreferenceGraphicsAdvanced(const LLSD& key)  	: LLFloater(key)  { -	mCommitCallbackRegistrar.add("Pref.VertexShaderEnable",		boost::bind(&LLFloaterPreferenceGraphicsAdvanced::onVertexShaderEnable, this)); +    mCommitCallbackRegistrar.add("Pref.RenderOptionUpdate",            boost::bind(&LLFloaterPreferenceGraphicsAdvanced::onRenderOptionEnable, this));  	mCommitCallbackRegistrar.add("Pref.UpdateIndirectMaxNonImpostors", boost::bind(&LLFloaterPreferenceGraphicsAdvanced::updateMaxNonImpostors,this));  	mCommitCallbackRegistrar.add("Pref.UpdateIndirectMaxComplexity",   boost::bind(&LLFloaterPreferenceGraphicsAdvanced::updateMaxComplexity,this));  } diff --git a/indra/newview/llfloaterpreference.h b/indra/newview/llfloaterpreference.h index 42f1de4a5d..a0f43bd884 100644 --- a/indra/newview/llfloaterpreference.h +++ b/indra/newview/llfloaterpreference.h @@ -122,8 +122,8 @@ protected:  	// callback for defaults  	void setHardwareDefaults();  	void setRecommended(); -	// callback for when client turns on shaders -	void onVertexShaderEnable(); +	// callback for when client modifies a render option +    void onRenderOptionEnable();  	// callback for when client turns on impostors  	void onAvatarImpostorsEnable(); @@ -313,8 +313,8 @@ class LLFloaterPreferenceGraphicsAdvanced : public LLFloater  	static void setIndirectMaxNonImpostors();  	static void setIndirectMaxArc();  	void refresh(); -	// callback for when client turns on shaders -	void onVertexShaderEnable(); +	// callback for when client modifies a render option +	void onRenderOptionEnable();      void onAdvancedAtmosphericsEnable();  	LOG_CLASS(LLFloaterPreferenceGraphicsAdvanced);  }; diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp index e2da4f63fb..c65431d6f6 100644 --- a/indra/newview/llviewercontrol.cpp +++ b/indra/newview/llviewercontrol.cpp @@ -622,7 +622,6 @@ void settings_setup_listeners()  	gSavedSettings.getControl("RenderMaxTextureIndex")->getSignal()->connect(boost::bind(&handleSetShaderChanged, _2));  	gSavedSettings.getControl("RenderUseTriStrips")->getSignal()->connect(boost::bind(&handleResetVertexBuffersChanged, _2));  	gSavedSettings.getControl("RenderAvatarVP")->getSignal()->connect(boost::bind(&handleSetShaderChanged, _2)); -	gSavedSettings.getControl("VertexShaderEnable")->getSignal()->connect(boost::bind(&handleSetShaderChanged, _2));  	gSavedSettings.getControl("RenderUIBuffer")->getSignal()->connect(boost::bind(&handleWindowResized, _2));  	gSavedSettings.getControl("RenderDepthOfField")->getSignal()->connect(boost::bind(&handleReleaseGLBufferChanged, _2));  	gSavedSettings.getControl("RenderFSAASamples")->getSignal()->connect(boost::bind(&handleReleaseGLBufferChanged, _2)); diff --git a/indra/newview/llviewershadermgr.cpp b/indra/newview/llviewershadermgr.cpp index 5628f257c5..f6f4ac54d4 100644 --- a/indra/newview/llviewershadermgr.cpp +++ b/indra/newview/llviewershadermgr.cpp @@ -414,14 +414,6 @@ void LLViewerShaderMgr::setShaders()      reentrance = true; -    if (LLRender::sGLCoreProfile) -    {   -        if (!gSavedSettings.getBOOL("VertexShaderEnable")) -        { //vertex shaders MUST be enabled to use core profile -            gSavedSettings.setBOOL("VertexShaderEnable", TRUE); -        } -    } -          //setup preprocessor definitions      LLShaderMgr::instance()->mDefinitions["NUM_TEX_UNITS"] = llformat("%d", gGLManager.mNumTextureImageUnits); @@ -432,17 +424,9 @@ void LLViewerShaderMgr::setShaders()      initAttribsAndUniforms();      gPipeline.releaseGLBuffers(); -    if (gSavedSettings.getBOOL("VertexShaderEnable")) -    { -        LLPipeline::sWaterReflections = gGLManager.mHasCubeMap; -        LLPipeline::sRenderGlow = gSavedSettings.getBOOL("RenderGlow");  -        LLPipeline::updateRenderDeferred(); -    } -    else -    { -        LLPipeline::sRenderGlow = FALSE; -        LLPipeline::sWaterReflections = FALSE; -    } +    LLPipeline::sWaterReflections = gGLManager.mHasCubeMap; +    LLPipeline::sRenderGlow = gSavedSettings.getBOOL("RenderGlow");  +    LLPipeline::updateRenderDeferred();      //hack to reset buffers that change behavior with shaders      gPipeline.resetVertexBuffers(); @@ -467,283 +451,267 @@ void LLViewerShaderMgr::setShaders()      LLGLSLShader::sNoFixedFunction = false;      LLVertexBuffer::unbind(); -    if (LLFeatureManager::getInstance()->isFeatureAvailable("VertexShaderEnable")  -        && (gGLManager.mGLSLVersionMajor > 1 || gGLManager.mGLSLVersionMinor >= 10) -        && gSavedSettings.getBOOL("VertexShaderEnable")) + +    llassert((gGLManager.mGLSLVersionMajor > 1 || gGLManager.mGLSLVersionMinor >= 10)); + +    bool canRenderDeferred       = LLFeatureManager::getInstance()->isFeatureAvailable("RenderDeferred"); +    bool hasWindLightShaders     = LLFeatureManager::getInstance()->isFeatureAvailable("WindLightUseAtmosShaders"); +    S32 shadow_detail            = gSavedSettings.getS32("RenderShadowDetail"); +    bool useRenderDeferred       = canRenderDeferred && gSavedSettings.getBOOL("RenderDeferred") && gSavedSettings.getBOOL("RenderAvatarVP"); +    bool doingWindLight          = hasWindLightShaders && gSavedSettings.getBOOL("WindLightUseAtmosShaders"); + +    //using shaders, disable fixed function +    LLGLSLShader::sNoFixedFunction = true; + +    S32 light_class = 3; +    S32 interface_class = 2; +    S32 env_class = 2; +    S32 obj_class = 2; +    S32 effect_class = 2; +    S32 wl_class = 1; +    S32 water_class = 2; +    S32 deferred_class = 0; +    S32 transform_class = gGLManager.mHasTransformFeedback ? 1 : 0; + +    static LLCachedControl<bool> use_transform_feedback(gSavedSettings, "RenderUseTransformFeedback", false); +    if (!use_transform_feedback)      { -        bool canRenderDeferred       = LLFeatureManager::getInstance()->isFeatureAvailable("RenderDeferred"); -        bool hasWindLightShaders     = LLFeatureManager::getInstance()->isFeatureAvailable("WindLightUseAtmosShaders"); -        S32 shadow_detail            = gSavedSettings.getS32("RenderShadowDetail"); -        bool useRenderDeferred       = canRenderDeferred && gSavedSettings.getBOOL("RenderDeferred") && gSavedSettings.getBOOL("RenderAvatarVP"); -        bool doingWindLight          = hasWindLightShaders && gSavedSettings.getBOOL("WindLightUseAtmosShaders"); - -        //using shaders, disable fixed function -        LLGLSLShader::sNoFixedFunction = true; - -        S32 light_class = 3; -        S32 interface_class = 2; -        S32 env_class = 2; -        S32 obj_class = 2; -        S32 effect_class = 2; -        S32 wl_class = 1; -        S32 water_class = 2; -        S32 deferred_class = 0; -        S32 transform_class = gGLManager.mHasTransformFeedback ? 1 : 0; - -        static LLCachedControl<bool> use_transform_feedback(gSavedSettings, "RenderUseTransformFeedback", false); -        if (!use_transform_feedback) -        { -            transform_class = 0; -        } +        transform_class = 0; +    } -        if (useRenderDeferred) -        { -            //shadows -            switch (shadow_detail) -            {                 -                case 1: -                    deferred_class = 2; // PCF shadows -                break;  - -                case 2: -                    deferred_class = 2; // PCF shadows -                break;  - -                case 0:  -                default: -                    deferred_class = 1; // no shadows -                break;  -            } +    if (useRenderDeferred) +    { +        //shadows +        switch (shadow_detail) +        {                 +            case 1: +                deferred_class = 2; // PCF shadows +            break;  + +            case 2: +                deferred_class = 2; // PCF shadows +            break;  + +            case 0:  +            default: +                deferred_class = 1; // no shadows +            break;           } +    } -        if (doingWindLight) -        { -            // user has disabled WindLight in their settings, downgrade -            // windlight shaders to stub versions. -            wl_class = 2; -        } -        else -        { -            light_class = 2; -        } +    if (doingWindLight) +    { +        // user has disabled WindLight in their settings, downgrade +        // windlight shaders to stub versions. +        wl_class = 2; +    } +    else +    { +        light_class = 2; +    } -        // Trigger a full rebuild of the fallback skybox / cubemap if we've toggled windlight shaders -        if (!wl_class || (mShaderLevel[SHADER_WINDLIGHT] != wl_class && gSky.mVOSkyp.notNull())) -        { -            gSky.mVOSkyp->forceSkyUpdate(); -        } +    // Trigger a full rebuild of the fallback skybox / cubemap if we've toggled windlight shaders +    if (!wl_class || (mShaderLevel[SHADER_WINDLIGHT] != wl_class && gSky.mVOSkyp.notNull())) +    { +        gSky.mVOSkyp->forceSkyUpdate(); +    } + +    // Load lighting shaders +    mShaderLevel[SHADER_LIGHTING] = light_class; +    mShaderLevel[SHADER_INTERFACE] = interface_class; +    mShaderLevel[SHADER_ENVIRONMENT] = env_class; +    mShaderLevel[SHADER_WATER] = water_class; +    mShaderLevel[SHADER_OBJECT] = obj_class; +    mShaderLevel[SHADER_EFFECT] = effect_class; +    mShaderLevel[SHADER_WINDLIGHT] = wl_class; +    mShaderLevel[SHADER_DEFERRED] = deferred_class; +    mShaderLevel[SHADER_TRANSFORM] = transform_class; + +    BOOL loaded = loadBasicShaders(); +    if (loaded) +    { +        LL_INFOS() << "Loaded basic shaders." << LL_ENDL; +    } +    else +    { +        LL_WARNS() << "Failed to load basic shaders." << LL_ENDL; +        llassert(loaded); +    } + +    if (loaded) +    { +        gPipeline.mVertexShadersEnabled = TRUE; +        gPipeline.mVertexShadersLoaded = 1; + +        // Load all shaders to set max levels +        loaded = loadShadersEnvironment(); -        // Load lighting shaders -        mShaderLevel[SHADER_LIGHTING] = light_class; -        mShaderLevel[SHADER_INTERFACE] = interface_class; -        mShaderLevel[SHADER_ENVIRONMENT] = env_class; -        mShaderLevel[SHADER_WATER] = water_class; -        mShaderLevel[SHADER_OBJECT] = obj_class; -        mShaderLevel[SHADER_EFFECT] = effect_class; -        mShaderLevel[SHADER_WINDLIGHT] = wl_class; -        mShaderLevel[SHADER_DEFERRED] = deferred_class; -        mShaderLevel[SHADER_TRANSFORM] = transform_class; - -        BOOL loaded = loadBasicShaders();          if (loaded)          { -            LL_INFOS() << "Loaded basic shaders." << LL_ENDL; +            LL_INFOS() << "Loaded environment shaders." << LL_ENDL;          }          else          { -            LL_WARNS() << "Failed to load basic shaders." << LL_ENDL; +            LL_WARNS() << "Failed to load environment shaders." << LL_ENDL;              llassert(loaded);          }          if (loaded)          { -            gPipeline.mVertexShadersEnabled = TRUE; -            gPipeline.mVertexShadersLoaded = 1; - -            // Load all shaders to set max levels -            loaded = loadShadersEnvironment(); - +            loaded = loadShadersWater();              if (loaded)              { -                LL_INFOS() << "Loaded environment shaders." << LL_ENDL; +                LL_INFOS() << "Loaded water shaders." << LL_ENDL;              }              else              { -                LL_WARNS() << "Failed to load environment shaders." << LL_ENDL; +                LL_WARNS() << "Failed to load water shaders." << LL_ENDL;                  llassert(loaded);              } +        } +        if (loaded) +        { +            loaded = loadShadersWindLight();              if (loaded)              { -                loaded = loadShadersWater(); -                if (loaded) -                { -                    LL_INFOS() << "Loaded water shaders." << LL_ENDL; -                } -                else -                { -                    LL_WARNS() << "Failed to load water shaders." << LL_ENDL; -                    llassert(loaded); -                } +                LL_INFOS() << "Loaded windlight shaders." << LL_ENDL;              } - -            if (loaded) +            else              { -                loaded = loadShadersWindLight(); -                if (loaded) -                { -                    LL_INFOS() << "Loaded windlight shaders." << LL_ENDL; -                } -                else -                { -                    LL_WARNS() << "Failed to load windlight shaders." << LL_ENDL; -                    llassert(loaded); -                } +                LL_WARNS() << "Failed to load windlight shaders." << LL_ENDL; +                llassert(loaded);              } +        } +        if (loaded) +        { +            loaded = loadShadersEffects();              if (loaded)              { -                loaded = loadShadersEffects(); -                if (loaded) -                { -                    LL_INFOS() << "Loaded effects shaders." << LL_ENDL; -                } -                else -                { -                    LL_WARNS() << "Failed to load effects shaders." << LL_ENDL; -                    llassert(loaded); -                } +                LL_INFOS() << "Loaded effects shaders." << LL_ENDL;              } - -            if (loaded) +            else              { -                loaded = loadShadersInterface(); -                if (loaded) -                { -                    LL_INFOS() << "Loaded interface shaders." << LL_ENDL; -                } -                else -                { -                    LL_WARNS() << "Failed to load interface shaders." << LL_ENDL; -                    llassert(loaded); -                } +                LL_WARNS() << "Failed to load effects shaders." << LL_ENDL; +                llassert(loaded);              } +        } +        if (loaded) +        { +            loaded = loadShadersInterface();              if (loaded) -              { -                loaded = loadTransformShaders(); -                if (loaded) -                { -                    LL_INFOS() << "Loaded transform shaders." << LL_ENDL; -                } -                else -                { -                    LL_WARNS() << "Failed to load transform shaders." << LL_ENDL; -                    llassert(loaded); -                } +                LL_INFOS() << "Loaded interface shaders." << LL_ENDL; +            } +            else +            { +                LL_WARNS() << "Failed to load interface shaders." << LL_ENDL; +                llassert(loaded);              } +        } + +        if (loaded) +        { +            loaded = loadTransformShaders();              if (loaded)              { -                // Load max avatar shaders to set the max level -                mShaderLevel[SHADER_AVATAR] = 3; -                mMaxAvatarShaderLevel = 3; +                LL_INFOS() << "Loaded transform shaders." << LL_ENDL; +            } +            else +            { +                LL_WARNS() << "Failed to load transform shaders." << LL_ENDL; +                llassert(loaded); +            } +        } + +        if (loaded) +        { +            // Load max avatar shaders to set the max level +            mShaderLevel[SHADER_AVATAR] = 3; +            mMaxAvatarShaderLevel = 3; -                if (gSavedSettings.getBOOL("RenderAvatarVP") && loadShadersObject()) -                { //hardware skinning is enabled and rigged attachment shaders loaded correctly -                    BOOL avatar_cloth = gSavedSettings.getBOOL("RenderAvatarCloth"); +            if (gSavedSettings.getBOOL("RenderAvatarVP") && loadShadersObject()) +            { //hardware skinning is enabled and rigged attachment shaders loaded correctly +                BOOL avatar_cloth = gSavedSettings.getBOOL("RenderAvatarCloth"); -                    // cloth is a class3 shader -                    S32 avatar_class = avatar_cloth ? 3 : 1; +                // cloth is a class3 shader +                S32 avatar_class = avatar_cloth ? 3 : 1; -                    // Set the actual level -                    mShaderLevel[SHADER_AVATAR] = avatar_class; +                // Set the actual level +                mShaderLevel[SHADER_AVATAR] = avatar_class; -                    loaded = loadShadersAvatar(); -                    llassert(loaded); +                loaded = loadShadersAvatar(); +                llassert(loaded); -                    if (mShaderLevel[SHADER_AVATAR] != avatar_class) +                if (mShaderLevel[SHADER_AVATAR] != avatar_class) +                { +                    if (mShaderLevel[SHADER_AVATAR] == 0)                      { -                        if (mShaderLevel[SHADER_AVATAR] == 0) -                        { -                            gSavedSettings.setBOOL("RenderAvatarVP", FALSE); -                        } -                        if(llmax(mShaderLevel[SHADER_AVATAR]-1,0) >= 3) -                        { -                            avatar_cloth = true; -                        } -                        else -                        { -                            avatar_cloth = false; -                        } -                        gSavedSettings.setBOOL("RenderAvatarCloth", avatar_cloth); +                        gSavedSettings.setBOOL("RenderAvatarVP", FALSE);                      } -                } -                else -                { //hardware skinning not possible, neither is deferred rendering -                    mShaderLevel[SHADER_AVATAR] = 0; -                    mShaderLevel[SHADER_DEFERRED] = 0; - -                    if (gSavedSettings.getBOOL("RenderAvatarVP")) +                    if(llmax(mShaderLevel[SHADER_AVATAR]-1,0) >= 3)                      { -                        gSavedSettings.setBOOL("RenderDeferred", FALSE); -                        gSavedSettings.setBOOL("RenderAvatarCloth", FALSE); -                        gSavedSettings.setBOOL("RenderAvatarVP", FALSE); +                        avatar_cloth = true;                      } - -                    loadShadersAvatar(); // unloads - -                    loaded = loadShadersObject(); -                    llassert(loaded); +                    else +                    { +                        avatar_cloth = false; +                    } +                    gSavedSettings.setBOOL("RenderAvatarCloth", avatar_cloth);                  }              } +            else +            { //hardware skinning not possible, neither is deferred rendering +                mShaderLevel[SHADER_AVATAR] = 0; +                mShaderLevel[SHADER_DEFERRED] = 0; -            if (!loaded) -            { //some shader absolutely could not load, try to fall back to a simpler setting -                if (gSavedSettings.getBOOL("WindLightUseAtmosShaders")) -                { //disable windlight and try again -                    gSavedSettings.setBOOL("WindLightUseAtmosShaders", FALSE); -                    LL_WARNS() << "Falling back to no windlight shaders." << LL_ENDL; -                    reentrance = false; -                    setShaders(); -                    return; +                if (gSavedSettings.getBOOL("RenderAvatarVP")) +                { +                    gSavedSettings.setBOOL("RenderDeferred", FALSE); +                    gSavedSettings.setBOOL("RenderAvatarCloth", FALSE); +                    gSavedSettings.setBOOL("RenderAvatarVP", FALSE);                  } -                if (gSavedSettings.getBOOL("VertexShaderEnable")) -                { //disable shaders outright and try again -                    gSavedSettings.setBOOL("VertexShaderEnable", FALSE); -                    LL_WARNS() << "Falling back to no vertex shaders." << LL_ENDL; -                    reentrance = false; -                    setShaders(); -                    return; -                } -            }        +                loadShadersAvatar(); // unloads -            llassert(loaded); +                loaded = loadShadersObject(); +                llassert(loaded); +            } +        } -            if (loaded && !loadShadersDeferred()) -            { //everything else succeeded but deferred failed, disable deferred and try again -                gSavedSettings.setBOOL("RenderDeferred", FALSE); -                LL_WARNS() << "Falling back to no deferred shaders." << LL_ENDL; +        if (!loaded) +        { //some shader absolutely could not load, try to fall back to a simpler setting +            if (gSavedSettings.getBOOL("WindLightUseAtmosShaders")) +            { //disable windlight and try again +                gSavedSettings.setBOOL("WindLightUseAtmosShaders", FALSE); +                LL_WARNS() << "Falling back to no windlight shaders." << LL_ENDL;                  reentrance = false;                  setShaders();                  return;              } -        } -        else -        { -            LLGLSLShader::sNoFixedFunction = false; -            gPipeline.mVertexShadersEnabled = FALSE; -            gPipeline.mVertexShadersLoaded = 0; -            mShaderLevel[SHADER_LIGHTING] = 0; -            mShaderLevel[SHADER_INTERFACE] = 0; -            mShaderLevel[SHADER_ENVIRONMENT] = 0; -            mShaderLevel[SHADER_WATER] = 0; -            mShaderLevel[SHADER_OBJECT] = 0; -            mShaderLevel[SHADER_EFFECT] = 0; -            mShaderLevel[SHADER_WINDLIGHT] = 0; -            mShaderLevel[SHADER_AVATAR] = 0; + +            if (gSavedSettings.getBOOL("VertexShaderEnable")) +            { //disable shaders outright and try again +                gSavedSettings.setBOOL("VertexShaderEnable", FALSE); +                LL_WARNS() << "Falling back to no vertex shaders." << LL_ENDL; +                reentrance = false; +                setShaders(); +                return; +            } +        }        + +        llassert(loaded); + +        if (loaded && !loadShadersDeferred()) +        { //everything else succeeded but deferred failed, disable deferred and try again +            gSavedSettings.setBOOL("RenderDeferred", FALSE); +            LL_WARNS() << "Falling back to no deferred shaders." << LL_ENDL; +            reentrance = false; +            setShaders(); +            return;          }      }      else diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index 0395bf1a71..d6ff9bd548 100644 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -133,7 +133,6 @@ bool gShiftFrame = false;  //cached settings  bool LLPipeline::RenderAvatarVP; -bool LLPipeline::VertexShaderEnable;  bool LLPipeline::WindLightUseAtmosShaders;  bool LLPipeline::RenderDeferred;  F32 LLPipeline::RenderDeferredSunWash; @@ -531,7 +530,6 @@ void LLPipeline::init()  	connectRefreshCachedSettingsSafe("RenderAvatarMaxNonImpostors");  	connectRefreshCachedSettingsSafe("RenderDelayVBUpdate");  	connectRefreshCachedSettingsSafe("UseOcclusion"); -	connectRefreshCachedSettingsSafe("VertexShaderEnable");  	connectRefreshCachedSettingsSafe("RenderAvatarVP");  	connectRefreshCachedSettingsSafe("WindLightUseAtmosShaders");  	connectRefreshCachedSettingsSafe("RenderDeferred"); @@ -1057,7 +1055,6 @@ void LLPipeline::updateRenderDeferred()  					 LLRenderTarget::sUseFBO &&  					 LLFeatureManager::getInstance()->isFeatureAvailable("RenderDeferred") &&	   					 LLPipeline::sRenderBump && -					 VertexShaderEnable &&   					 RenderAvatarVP &&  					 WindLightUseAtmosShaders)) &&  					!gUseWireframe; @@ -1086,7 +1083,6 @@ void LLPipeline::refreshCachedSettings()  			&& gSavedSettings.getBOOL("UseOcclusion")   			&& gGLManager.mHasOcclusionQuery) ? 2 : 0; -	VertexShaderEnable = gSavedSettings.getBOOL("VertexShaderEnable");  	RenderAvatarVP = gSavedSettings.getBOOL("RenderAvatarVP");  	WindLightUseAtmosShaders = gSavedSettings.getBOOL("WindLightUseAtmosShaders");  	RenderDeferred = gSavedSettings.getBOOL("RenderDeferred"); @@ -1407,12 +1403,9 @@ void LLPipeline::restoreGL()  bool LLPipeline::canUseVertexShaders()  { -	static const std::string vertex_shader_enable_feature_string = "VertexShaderEnable"; -  	if (sDisableShaders ||  		!gGLManager.mHasVertexShader ||  		!gGLManager.mHasFragmentShader || -		!LLFeatureManager::getInstance()->isFeatureAvailable(vertex_shader_enable_feature_string) ||  		(assertInitialized() && mVertexShadersLoaded != 1) )  	{  		return false; diff --git a/indra/newview/pipeline.h b/indra/newview/pipeline.h index e75a09d753..68ce3fe88d 100644 --- a/indra/newview/pipeline.h +++ b/indra/newview/pipeline.h @@ -880,7 +880,6 @@ public:  	//cached settings  	static bool WindLightUseAtmosShaders; -	static bool VertexShaderEnable;  	static bool RenderAvatarVP;  	static bool RenderDeferred;  	static F32 RenderDeferredSunWash; diff --git a/indra/newview/skins/default/xui/da/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/da/panel_preferences_graphics1.xml index e494b2b755..c7770eb81b 100644 --- a/indra/newview/skins/default/xui/da/panel_preferences_graphics1.xml +++ b/indra/newview/skins/default/xui/da/panel_preferences_graphics1.xml @@ -29,7 +29,6 @@  		<check_box initial_value="true" label="Gennemsigtig vand" name="TransparentWater"/>  		<check_box initial_value="true" label="Glatte flader og skin" name="BumpShiny"/>  		<check_box initial_value="true" label="Lokale lys" name="LocalLights"/> -		<check_box initial_value="true" label="Basale flader" name="BasicShaders" tool_tip="Ved at slå dette valg fra, kan det forhindres at visse grafikkort drivere crasher."/>  		<check_box initial_value="true" label="Atmosfæriske flader" name="WindLightUseAtmosShaders"/>  		<check_box initial_value="true" label="Lys og skygger" name="UseLightShaders"/>  		<check_box initial_value="true" label=""Ambient Occlusion"" name="UseSSAO"/> diff --git a/indra/newview/skins/default/xui/de/floater_preferences_graphics_advanced.xml b/indra/newview/skins/default/xui/de/floater_preferences_graphics_advanced.xml index 41e8dc5ef4..cd514f5afd 100644 --- a/indra/newview/skins/default/xui/de/floater_preferences_graphics_advanced.xml +++ b/indra/newview/skins/default/xui/de/floater_preferences_graphics_advanced.xml @@ -82,7 +82,6 @@  	<check_box initial_value="true" label="Transparentes Wasser" name="TransparentWater"/>  	<check_box initial_value="true" label="Bumpmapping und Glanz" name="BumpShiny"/>  	<check_box initial_value="true" label="Lokale Lichtquellen" name="LocalLights"/> -	<check_box initial_value="true" label="Einfache Shader" name="BasicShaders" tool_tip="Deaktivieren Sie diese Option, wenn der Grafikkartentreiber Abstürze verursacht"/>  	<slider label="Terraindetails:" name="TerrainDetail"/>  	<text name="TerrainDetailText">  		Niedrig diff --git a/indra/newview/skins/default/xui/en/floater_preferences_graphics_advanced.xml b/indra/newview/skins/default/xui/en/floater_preferences_graphics_advanced.xml index 70bf3f7c14..e93568a87e 100644 --- a/indra/newview/skins/default/xui/en/floater_preferences_graphics_advanced.xml +++ b/indra/newview/skins/default/xui/en/floater_preferences_graphics_advanced.xml @@ -609,7 +609,7 @@      top_delta="16"      width="300">      <check_box.commit_callback -      function="Pref.VertexShaderEnable" /> +      function="Pref.RenderOptionUpdate" />    </check_box>    <check_box @@ -623,6 +623,7 @@      top_delta="16"      width="300" /> +  <!-- SL-12594, basic shaders always enabled, no fixed-function GL     <check_box      control_name="VertexShaderEnable"      height="16" @@ -637,7 +638,8 @@      <check_box.commit_callback        function="Pref.VertexShaderEnable" />    </check_box> - +  --> +        <slider      control_name="RenderTerrainDetail"      follows="left|top" @@ -683,7 +685,7 @@      top_delta="16"      width="280">      <check_box.commit_callback -      function="Pref.VertexShaderEnable" /> +      function="Pref.RenderOptionUpdate" />    </check_box>    <check_box @@ -751,7 +753,7 @@      top_delta="16"      width="280">      <check_box.commit_callback -      function="Pref.VertexShaderEnable" /> +      function="Pref.RenderOptionUpdate" />    </check_box>    <slider @@ -800,7 +802,7 @@      top_delta="16"      width="260">      <check_box.commit_callback -      function="Pref.VertexShaderEnable" /> +      function="Pref.RenderOptionUpdate" />    </check_box>    <check_box @@ -814,7 +816,7 @@      top_delta="16"      width="240">      <check_box.commit_callback -      function="Pref.VertexShaderEnable" /> +      function="Pref.RenderOptionUpdate" />    </check_box>    <check_box @@ -828,7 +830,7 @@      top_delta="16"      width="240">      <check_box.commit_callback -      function="Pref.VertexShaderEnable" /> +      function="Pref.RenderOptionUpdate" />    </check_box>    <!-- diff --git a/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml index 4692a226d9..4d9152e9a5 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml @@ -242,7 +242,7 @@      top_delta="24"      width="280">      <check_box.commit_callback -      function="Pref.VertexShaderEnable" /> +      function="Pref.RenderOptionUpdate" />    </check_box>    <check_box @@ -256,7 +256,7 @@      top_delta="24"      width="256">      <check_box.commit_callback -      function="Pref.VertexShaderEnable" /> +      function="Pref.RenderOptionUpdate" />    </check_box>    <slider diff --git a/indra/newview/skins/default/xui/es/floater_preferences_graphics_advanced.xml b/indra/newview/skins/default/xui/es/floater_preferences_graphics_advanced.xml index b8d5824fb7..2bcec020b2 100644 --- a/indra/newview/skins/default/xui/es/floater_preferences_graphics_advanced.xml +++ b/indra/newview/skins/default/xui/es/floater_preferences_graphics_advanced.xml @@ -82,7 +82,6 @@  	<check_box initial_value="true" label="Agua transparente" name="TransparentWater"/>  	<check_box initial_value="true" label="Efecto de relieve y brillo" name="BumpShiny"/>  	<check_box initial_value="true" label="Puntos de luz locales" name="LocalLights"/> -	<check_box initial_value="true" label="Shaders básicos" name="BasicShaders" tool_tip="Desactivar esta opción puede evitar que se bloqueen los controladores de algunas tarjetas gráficas"/>  	<slider label="Nivel de detalle del terreno:" name="TerrainDetail"/>  	<text name="TerrainDetailText">  		Bajo diff --git a/indra/newview/skins/default/xui/fr/floater_preferences_graphics_advanced.xml b/indra/newview/skins/default/xui/fr/floater_preferences_graphics_advanced.xml index fd47254934..42af9c526d 100644 --- a/indra/newview/skins/default/xui/fr/floater_preferences_graphics_advanced.xml +++ b/indra/newview/skins/default/xui/fr/floater_preferences_graphics_advanced.xml @@ -82,7 +82,6 @@  	<check_box initial_value="true" label="Eau transparente" name="TransparentWater"/>  	<check_box initial_value="true" label="Placage de relief et brillance" name="BumpShiny"/>  	<check_box initial_value="true" label="Lumières locales" name="LocalLights"/> -	<check_box initial_value="true" label="Effets de base" name="BasicShaders" tool_tip="La désactivation de cette option peut éviter le plantage de certains pilotes de cartes graphiques"/>  	<slider label="Rendu du terrain :" name="TerrainDetail"/>  	<text name="TerrainDetailText">  		Faible diff --git a/indra/newview/skins/default/xui/it/floater_preferences_graphics_advanced.xml b/indra/newview/skins/default/xui/it/floater_preferences_graphics_advanced.xml index 3773ef3711..53f9ebc6fd 100644 --- a/indra/newview/skins/default/xui/it/floater_preferences_graphics_advanced.xml +++ b/indra/newview/skins/default/xui/it/floater_preferences_graphics_advanced.xml @@ -82,7 +82,6 @@  	<check_box initial_value="true" label="Acqua trasparente" name="TransparentWater"/>  	<check_box initial_value="true" label="Mappatura urti e brillantezza" name="BumpShiny"/>  	<check_box initial_value="true" label="Luci locali" name="LocalLights"/> -	<check_box initial_value="true" label="Shader di base" name="BasicShaders" tool_tip="Se si disattiva questa opzione, si possono evitare interruzioni nei driver di alcune schede grafiche"/>  	<slider label="Dettagli terreno:" name="TerrainDetail"/>  	<text name="TerrainDetailText">  		Basso diff --git a/indra/newview/skins/default/xui/ja/floater_preferences_graphics_advanced.xml b/indra/newview/skins/default/xui/ja/floater_preferences_graphics_advanced.xml index c28afa4c98..8ba537faa2 100644 --- a/indra/newview/skins/default/xui/ja/floater_preferences_graphics_advanced.xml +++ b/indra/newview/skins/default/xui/ja/floater_preferences_graphics_advanced.xml @@ -82,7 +82,6 @@  	<check_box initial_value="true" label="透明な水" name="TransparentWater"/>  	<check_box initial_value="true" label="バンプマッピングと光沢" name="BumpShiny"/>  	<check_box initial_value="true" label="近くの光" name="LocalLights"/> -	<check_box initial_value="true" label="基本シェーダー" name="BasicShaders" tool_tip="このオプションを無効にすると、グラフィックカードのドライバの種類によっては、クラッシュするのを防ぎます。"/>  	<slider label="地形詳細:" name="TerrainDetail"/>  	<text name="TerrainDetailText">  		低 diff --git a/indra/newview/skins/default/xui/pl/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/pl/panel_preferences_graphics1.xml index 738805d800..e8c400dbd1 100644 --- a/indra/newview/skins/default/xui/pl/panel_preferences_graphics1.xml +++ b/indra/newview/skins/default/xui/pl/panel_preferences_graphics1.xml @@ -28,7 +28,6 @@  		<check_box label="Przezroczysta woda" name="TransparentWater" />  		<check_box label="Mapping wypukłości i połysk" name="BumpShiny" />  		<check_box label="Lokalne światła" name="LocalLights" /> -		<check_box label="Podstawowe shadery" name="BasicShaders" tool_tip="Wyłączenie tej opcji może naprawić błędy niektórych sterowników graficznych" />  		<check_box label="Shadery atmosfery" name="WindLightUseAtmosShaders" />  		<check_box label="Zaawansowane oświetlenie" name="UseLightShaders" />  		<check_box label="Okluzja otoczenia" name="UseSSAO" /> diff --git a/indra/newview/skins/default/xui/pt/floater_preferences_graphics_advanced.xml b/indra/newview/skins/default/xui/pt/floater_preferences_graphics_advanced.xml index c5039267ca..bbe36e3e03 100644 --- a/indra/newview/skins/default/xui/pt/floater_preferences_graphics_advanced.xml +++ b/indra/newview/skins/default/xui/pt/floater_preferences_graphics_advanced.xml @@ -82,7 +82,6 @@  	<check_box initial_value="true" label="Água transparente" name="TransparentWater"/>  	<check_box initial_value="true" label="Mapeamento de relevo e brilho" name="BumpShiny"/>  	<check_box initial_value="true" label="Luzes locais" name="LocalLights"/> -	<check_box initial_value="true" label="Sombreamento simples" name="BasicShaders" tool_tip="Desativar essa opção pode evitar o travamento de alguns drivers de placas gráficas"/>  	<slider label="Detalhes do terreno:" name="TerrainDetail"/>  	<text name="TerrainDetailText">  		Baixo diff --git a/indra/newview/skins/default/xui/ru/floater_preferences_graphics_advanced.xml b/indra/newview/skins/default/xui/ru/floater_preferences_graphics_advanced.xml index fc6b6a173e..84e1ff15a0 100644 --- a/indra/newview/skins/default/xui/ru/floater_preferences_graphics_advanced.xml +++ b/indra/newview/skins/default/xui/ru/floater_preferences_graphics_advanced.xml @@ -82,7 +82,6 @@  	<check_box initial_value="true" label="Прозрачность воды" name="TransparentWater"/>  	<check_box initial_value="true" label="Рельефность и сияние" name="BumpShiny"/>  	<check_box initial_value="true" label="Локальный свет" name="LocalLights"/> -	<check_box initial_value="true" label="Базовые шейдеры" name="BasicShaders" tool_tip="Отключение этого параметра может предотвратить зависание некоторых видеокарт"/>  	<slider label="Ландшафт:" name="TerrainDetail"/>  	<text name="TerrainDetailText">  		Низкая diff --git a/indra/newview/skins/default/xui/tr/floater_preferences_graphics_advanced.xml b/indra/newview/skins/default/xui/tr/floater_preferences_graphics_advanced.xml index 01ada1354c..c5ca997336 100644 --- a/indra/newview/skins/default/xui/tr/floater_preferences_graphics_advanced.xml +++ b/indra/newview/skins/default/xui/tr/floater_preferences_graphics_advanced.xml @@ -82,7 +82,6 @@  	<check_box initial_value="true" label="Saydam Su" name="TransparentWater"/>  	<check_box initial_value="true" label="Tümsek eşleme ve parlaklık" name="BumpShiny"/>  	<check_box initial_value="true" label="Yerel Işıklar" name="LocalLights"/> -	<check_box initial_value="true" label="Temel gölgeleyiciler" name="BasicShaders" tool_tip="Bu seçeneğin devre dışı bırakılması bazı grafik kartlarının sürücülerinin kilitlenmesini önleyebilir"/>  	<slider label="Yüzey Ayrıntısı:" name="TerrainDetail"/>  	<text name="TerrainDetailText">  		Düşük diff --git a/indra/newview/skins/default/xui/zh/floater_preferences_graphics_advanced.xml b/indra/newview/skins/default/xui/zh/floater_preferences_graphics_advanced.xml index 7b127acd71..58314efeed 100644 --- a/indra/newview/skins/default/xui/zh/floater_preferences_graphics_advanced.xml +++ b/indra/newview/skins/default/xui/zh/floater_preferences_graphics_advanced.xml @@ -82,7 +82,6 @@  	<check_box initial_value="true" label="清澈透明的水" name="TransparentWater"/>  	<check_box initial_value="true" label="凹凸映射與光澤效果" name="BumpShiny"/>  	<check_box initial_value="true" label="本地光線" name="LocalLights"/> -	<check_box initial_value="true" label="基本著色" name="BasicShaders" tool_tip="關閉此一選項可能避免部分顯示卡驅動程式損毀當機"/>  	<slider label="地形細節:" name="TerrainDetail"/>  	<text name="TerrainDetailText">  		低  | 
