diff options
| author | Dave Parks <davep@lindenlab.com> | 2024-12-03 14:32:20 -0800 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-12-03 16:32:20 -0600 | 
| commit | 73420f4f34976eedb4d01855a71513a4c1bd95bb (patch) | |
| tree | 9838d3f6b6c2136d9e4a6a5c4ea28114b4038b64 | |
| parent | 9cc343b5ebaab50b273205f36b6604e64191caee (diff) | |
#3184 Fix for crash on some GPUs when setting quality to High or higher (#3201)
| -rw-r--r-- | indra/llrender/llgl.cpp | 1 | ||||
| -rw-r--r-- | indra/llrender/llgl.h | 1 | ||||
| -rw-r--r-- | indra/newview/featuretable.txt | 6 | ||||
| -rw-r--r-- | indra/newview/featuretable_mac.txt | 6 | ||||
| -rw-r--r-- | indra/newview/llfeaturemanager.cpp | 4 | 
5 files changed, 16 insertions, 2 deletions
| diff --git a/indra/llrender/llgl.cpp b/indra/llrender/llgl.cpp index c5c9d50dee..1bc5e79835 100644 --- a/indra/llrender/llgl.cpp +++ b/indra/llrender/llgl.cpp @@ -1259,6 +1259,7 @@ bool LLGLManager::initGL()      glGetIntegerv(GL_MAX_INTEGER_SAMPLES, &mMaxIntegerSamples);      glGetIntegerv(GL_MAX_SAMPLE_MASK_WORDS, &mMaxSampleMaskWords);      glGetIntegerv(GL_MAX_SAMPLES, &mMaxSamples); +    glGetIntegerv(GL_MAX_VARYING_VECTORS, &mMaxVaryingVectors);      glGetIntegerv(GL_MAX_UNIFORM_BLOCK_SIZE, &mMaxUniformBlockSize);      // sanity clamp max uniform block size to 64k just in case diff --git a/indra/llrender/llgl.h b/indra/llrender/llgl.h index f5b1e8d786..24ba4d6deb 100644 --- a/indra/llrender/llgl.h +++ b/indra/llrender/llgl.h @@ -88,6 +88,7 @@ public:      S32 mGLMaxTextureSize;      F32 mMaxAnisotropy = 0.f;      S32 mMaxUniformBlockSize = 0; +    S32 mMaxVaryingVectors = 0;      // GL 4.x capabilities      bool mHasCubeMapArray = false; diff --git a/indra/newview/featuretable.txt b/indra/newview/featuretable.txt index fceb81f061..01356c3949 100644 --- a/indra/newview/featuretable.txt +++ b/indra/newview/featuretable.txt @@ -1,4 +1,4 @@ -version 72 +version 73  // The version number above should be incremented IF AND ONLY IF some  // change has been made that is sufficiently important to justify  // resetting the graphics preferences of all users to the recommended @@ -428,3 +428,7 @@ RenderVintageMode           1   1  list TexUnit16orLess  RenderTerrainPBRDetail      1   -1 + +list VaryingVectors16orLess +RenderTerrainPBRPlanarSampleCount 1   1 + diff --git a/indra/newview/featuretable_mac.txt b/indra/newview/featuretable_mac.txt index 079e01076f..9688693850 100644 --- a/indra/newview/featuretable_mac.txt +++ b/indra/newview/featuretable_mac.txt @@ -1,4 +1,4 @@ -version 66 +version 67  // The version number above should be incremented IF AND ONLY IF some  // change has been made that is sufficiently important to justify  // resetting the graphics preferences of all users to the recommended @@ -426,3 +426,7 @@ RenderReflectionProbeDetail	0	0  RenderReflectionsEnabled    0   0  RenderMirrors				0	0  RenderVintageMode           1   1 + +list VaryingVectors16orLess +RenderTerrainPBRPlanarSampleCount 1   1 + diff --git a/indra/newview/llfeaturemanager.cpp b/indra/newview/llfeaturemanager.cpp index 22ba20100e..2adc6e4a29 100644 --- a/indra/newview/llfeaturemanager.cpp +++ b/indra/newview/llfeaturemanager.cpp @@ -721,6 +721,10 @@ void LLFeatureManager::applyBaseMasks()          // Make extra sure that vintage mode also gets enabled.          gSavedSettings.setBOOL("RenderVintageMode", true);      } +    if (gGLManager.mMaxVaryingVectors <= 16) +    { +        maskFeatures("VaryingVectors16orLess"); +    }      // now mask by gpu string      // Replaces ' ' with '_' in mGPUString to deal with inability for parser to handle spaces | 
