diff options
Diffstat (limited to 'indra/newview')
-rw-r--r-- | indra/newview/featuretable_mac.txt | 24 | ||||
-rw-r--r-- | indra/newview/llappviewer.cpp | 7 | ||||
-rw-r--r-- | indra/newview/llreflectionmapmanager.cpp | 8 | ||||
-rw-r--r-- | indra/newview/llviewercontrol.cpp | 18 | ||||
-rw-r--r-- | indra/newview/llviewerwindow.cpp | 13 |
5 files changed, 52 insertions, 18 deletions
diff --git a/indra/newview/featuretable_mac.txt b/indra/newview/featuretable_mac.txt index aa3d241ecb..a0af98a451 100644 --- a/indra/newview/featuretable_mac.txt +++ b/indra/newview/featuretable_mac.txt @@ -1,4 +1,4 @@ -version 68 +version 71 // 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 @@ -67,9 +67,9 @@ RenderFSAAType 1 2 RenderFSAASamples 1 3 RenderMaxTextureIndex 1 16 RenderGLContextCoreProfile 1 1 -RenderGLMultiThreadedTextures 1 0 -RenderGLMultiThreadedMedia 1 0 -RenderAppleUseMultGL 1 0 +RenderGLMultiThreadedTextures 1 1 +RenderGLMultiThreadedMedia 1 1 +RenderAppleUseMultGL 1 1 RenderReflectionsEnabled 1 1 RenderReflectionProbeDetail 1 2 RenderScreenSpaceReflections 1 1 @@ -405,20 +405,30 @@ list TexUnit16orLess RenderTerrainPBRDetail 1 -1 list AMD -RenderDeferredSSAO 1 0 +UseOcclusion 1 0 +RenderGLMultiThreadedTextures 1 0 + +list NVIDIA +RenderGLMultiThreadedTextures 1 0 +RenderGLMultiThreadedMedia 1 0 +RenderAppleUseMultGL 1 0 list Intel RenderAnisotropic 1 0 RenderFSAASamples 1 0 +RenderGLMultiThreadedTextures 1 0 +RenderGLMultiThreadedMedia 1 0 +RenderAppleUseMultGL 1 0 // AppleGPU and NonAppleGPU can be thought of as Apple silicon vs Intel Mac list AppleGPU RenderGLMultiThreadedMedia 1 0 RenderAppleUseMultGL 1 0 +RenderGLMultiThreadedTextures 1 0 +RenderGLMultiThreadedMedia 1 0 list NonAppleGPU -RenderGLMultiThreadedMedia 1 0 -RenderAppleUseMultGL 1 0 +RenderDeferredSSAO 1 0 list GL3 RenderFSAASamples 0 0 diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index f79eb5ddce..c770b7c917 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -2171,7 +2171,12 @@ bool LLAppViewer::initThreads() // get the number of concurrent threads that can run S32 cores = std::thread::hardware_concurrency(); - +#if LL_DARWIN + if (!gGLManager.mIsApple) + { + cores /= 2; + } +#endif U32 max_cores = gSavedSettings.getU32("EmulateCoreCount"); if (max_cores != 0) { diff --git a/indra/newview/llreflectionmapmanager.cpp b/indra/newview/llreflectionmapmanager.cpp index 232b0b1cdf..8f75b108cc 100644 --- a/indra/newview/llreflectionmapmanager.cpp +++ b/indra/newview/llreflectionmapmanager.cpp @@ -404,6 +404,13 @@ void LLReflectionMapManager::update() { closestDynamic = probe; } + + if (sLevel == 0) + { + // only update default probe when coverage is set to none + llassert(probe == mDefaultProbe); + break; + } } if (realtime && closestDynamic != nullptr) @@ -713,6 +720,7 @@ void LLReflectionMapManager::updateProbeFace(LLReflectionMap* probe, U32 face) } else { + llassert(gSavedSettings.getS32("RenderReflectionProbeLevel") > 0); // should never update a probe that's not the default probe if reflection coverage is none probe->update(mRenderTarget.getWidth(), face); } diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp index 172ffcb0d4..18746e76fc 100644 --- a/indra/newview/llviewercontrol.cpp +++ b/indra/newview/llviewercontrol.cpp @@ -77,6 +77,10 @@ #include "llstartup.h" #include "llperfstats.h" +#if LL_DARWIN +#include "llwindowmacosx.h" +#endif + // Third party library includes #include <boost/algorithm/string.hpp> @@ -453,6 +457,17 @@ static bool handleReflectionProbeDetailChanged(const LLSD& newvalue) return true; } +#if LL_DARWIN +static bool handleAppleUseMultGLChanged(const LLSD& newvalue) +{ + if (gGLManager.mInited) + { + LLWindowMacOSX::setUseMultGL(newvalue.asBoolean()); + } + return true; +} +#endif + static bool handleHeroProbeResolutionChanged(const LLSD &newvalue) { if (gPipeline.isInit()) @@ -820,6 +835,9 @@ void settings_setup_listeners() setting_setup_signal_listener(gSavedSettings, "RenderReflectionProbeLevel", handleReflectionProbeDetailChanged); setting_setup_signal_listener(gSavedSettings, "RenderReflectionProbeDetail", handleReflectionProbeDetailChanged); setting_setup_signal_listener(gSavedSettings, "RenderReflectionsEnabled", handleReflectionProbeDetailChanged); +#if LL_DARWIN + setting_setup_signal_listener(gSavedSettings, "RenderAppleUseMultGL", handleAppleUseMultGLChanged); +#endif setting_setup_signal_listener(gSavedSettings, "RenderScreenSpaceReflections", handleReflectionProbeDetailChanged); setting_setup_signal_listener(gSavedSettings, "RenderMirrors", handleReflectionProbeDetailChanged); setting_setup_signal_listener(gSavedSettings, "RenderHeroProbeResolution", handleHeroProbeResolutionChanged); diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index 4bd1cdd6a1..8a5aac9b8b 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -5391,6 +5391,8 @@ bool LLViewerWindow::cubeSnapshot(const LLVector3& origin, LLCubeMapArray* cubea camera->setUserClipPlane(clipPlane); } + gPipeline.pushRenderTypeMask(); + glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT); // stencil buffer is deprecated | GL_STENCIL_BUFFER_BIT); U32 dynamic_render_types[] = { @@ -5479,16 +5481,7 @@ bool LLViewerWindow::cubeSnapshot(const LLVector3& origin, LLCubeMapArray* cubea } } - if (!dynamic_render) - { - for (int i = 0; i < dynamic_render_type_count; ++i) - { - if (prev_dynamic_render_type[i]) - { - gPipeline.toggleRenderType(dynamic_render_types[i]); - } - } - } + gPipeline.popRenderTypeMask(); if (hide_hud) { |