From d17fd56dc42fcd35ef8cf2fe9e4cd7a26ce8ba2a Mon Sep 17 00:00:00 2001 From: Rye Date: Tue, 10 Dec 2024 20:21:24 -0500 Subject: Fix crashes from shader load failures under RenderMaxOpenGLVersion 3.1/3.2/3.3 (#3184) --- .../llfloaterpreferencesgraphicsadvanced.cpp | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) (limited to 'indra/newview/llfloaterpreferencesgraphicsadvanced.cpp') diff --git a/indra/newview/llfloaterpreferencesgraphicsadvanced.cpp b/indra/newview/llfloaterpreferencesgraphicsadvanced.cpp index cf5b2d033b..8e8967ee3d 100644 --- a/indra/newview/llfloaterpreferencesgraphicsadvanced.cpp +++ b/indra/newview/llfloaterpreferencesgraphicsadvanced.cpp @@ -63,17 +63,24 @@ LLFloaterPreferenceGraphicsAdvanced::~LLFloaterPreferenceGraphicsAdvanced() bool LLFloaterPreferenceGraphicsAdvanced::postBuild() { - // Don't do this on Mac as their braindead GL versioning - // sets this when 8x and 16x are indeed available + // Disable FSAA combo when shaders are not loaded // -#if !LL_DARWIN - if (gGLManager.mIsIntel || gGLManager.mGLVersion < 3.f) - { //remove FSAA settings above "4x" + { LLComboBox* combo = getChild("fsaa"); - combo->remove("8x"); - combo->remove("16x"); + if (!gFXAAProgram[0].isComplete()) + combo->remove("FXAA"); + + if (!gSMAAEdgeDetectProgram[0].isComplete()) + combo->remove("SMAA"); + + if (!gFXAAProgram[0].isComplete() && !gSMAAEdgeDetectProgram[0].isComplete()) + { + combo->setEnabled(false); + getChild("fsaa quality")->setEnabled(false); + } } +#if !LL_DARWIN LLCheckBoxCtrl *use_HiDPI = getChild("use HiDPI"); use_HiDPI->setVisible(false); #endif -- cgit v1.2.3