summaryrefslogtreecommitdiff
path: root/indra/newview/llviewershadermgr.cpp
diff options
context:
space:
mode:
authorCosmic Linden <cosmic@lindenlab.com>2023-10-13 10:33:16 -0700
committerCosmic Linden <cosmic@lindenlab.com>2023-10-13 10:33:16 -0700
commitdfa19c5e436edb102d8bd121c853153303631b4d (patch)
tree23946b9354893ff4a920c644fe3c3d652de406f4 /indra/newview/llviewershadermgr.cpp
parent2318d657660320b921e1566b54d3833c0401a34c (diff)
DRTVWR-592: PBR terrain fallback for Mac/Intel: Drop emissive texture. Bump featuretable.
Diffstat (limited to 'indra/newview/llviewershadermgr.cpp')
-rw-r--r--indra/newview/llviewershadermgr.cpp35
1 files changed, 19 insertions, 16 deletions
diff --git a/indra/newview/llviewershadermgr.cpp b/indra/newview/llviewershadermgr.cpp
index 19b3c59cae..2235b6d9a4 100644
--- a/indra/newview/llviewershadermgr.cpp
+++ b/indra/newview/llviewershadermgr.cpp
@@ -1494,23 +1494,26 @@ BOOL LLViewerShaderMgr::loadShadersDeferred()
if (success)
{
- gDeferredPBRTerrainProgram.mName = "Deferred PBR Terrain Shader";
- gDeferredPBRTerrainProgram.mFeatures.encodesNormal = true;
- gDeferredPBRTerrainProgram.mFeatures.hasSrgb = true;
- gDeferredPBRTerrainProgram.mFeatures.isAlphaLighting = true;
- gDeferredPBRTerrainProgram.mFeatures.disableTextureIndex = true; //hack to disable auto-setup of texture channels
- gDeferredPBRTerrainProgram.mFeatures.hasWaterFog = true;
- gDeferredPBRTerrainProgram.mFeatures.calculatesAtmospherics = true;
- gDeferredPBRTerrainProgram.mFeatures.hasAtmospherics = true;
- gDeferredPBRTerrainProgram.mFeatures.hasGamma = true;
- gDeferredPBRTerrainProgram.mFeatures.hasTransport = true;
-
- gDeferredPBRTerrainProgram.mShaderFiles.clear();
- gDeferredPBRTerrainProgram.mShaderFiles.push_back(make_pair("deferred/pbrterrainV.glsl", GL_VERTEX_SHADER));
- gDeferredPBRTerrainProgram.mShaderFiles.push_back(make_pair("deferred/pbrterrainF.glsl", GL_FRAGMENT_SHADER));
- gDeferredPBRTerrainProgram.mShaderLevel = mShaderLevel[SHADER_DEFERRED];
+ S32 detail = gSavedSettings.getS32("RenderTerrainPBRDetail");
+ detail = llclamp(detail, TERRAIN_PBR_DETAIL_MIN, TERRAIN_PBR_DETAIL_MAX);
+ gDeferredPBRTerrainProgram.mName = llformat("Deferred PBR Terrain Shader %d", detail);
+ gDeferredPBRTerrainProgram.mFeatures.encodesNormal = true;
+ gDeferredPBRTerrainProgram.mFeatures.hasSrgb = true;
+ gDeferredPBRTerrainProgram.mFeatures.isAlphaLighting = true;
+ gDeferredPBRTerrainProgram.mFeatures.disableTextureIndex = true; //hack to disable auto-setup of texture channels
+ gDeferredPBRTerrainProgram.mFeatures.hasWaterFog = true;
+ gDeferredPBRTerrainProgram.mFeatures.calculatesAtmospherics = true;
+ gDeferredPBRTerrainProgram.mFeatures.hasAtmospherics = true;
+ gDeferredPBRTerrainProgram.mFeatures.hasGamma = true;
+ gDeferredPBRTerrainProgram.mFeatures.hasTransport = true;
+
+ gDeferredPBRTerrainProgram.mShaderFiles.clear();
+ gDeferredPBRTerrainProgram.mShaderFiles.push_back(make_pair("deferred/pbrterrainV.glsl", GL_VERTEX_SHADER));
+ gDeferredPBRTerrainProgram.mShaderFiles.push_back(make_pair("deferred/pbrterrainF.glsl", GL_FRAGMENT_SHADER));
+ gDeferredPBRTerrainProgram.mShaderLevel = mShaderLevel[SHADER_DEFERRED];
+ gDeferredPBRTerrainProgram.addPermutation("TERRAIN_PBR_DETAIL", llformat("%d", detail));
success = gDeferredPBRTerrainProgram.createShader(NULL, NULL);
- llassert(success);
+ llassert(success);
}
if (success)