diff options
author | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2023-02-14 22:49:50 +0200 |
---|---|---|
committer | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2023-03-03 00:27:04 +0200 |
commit | a546aa20b7a5256cb0cfcddff2f09c225c15c794 (patch) | |
tree | 04e3475d5f8854821cdf620492a4b945146f83a2 /indra/newview | |
parent | 204072d51cb6c0f742873ccd98da2c761573b587 (diff) |
SL-4126 Second Life messing up NVIDIA drivers
Disable NvAPI by default
Diffstat (limited to 'indra/newview')
-rw-r--r-- | indra/newview/app_settings/settings.xml | 11 | ||||
-rw-r--r-- | indra/newview/llappviewerwin32.cpp | 48 |
2 files changed, 39 insertions, 20 deletions
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 3f6adfe13d..8e70dea36e 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -8341,6 +8341,17 @@ <key>Value</key> <integer>1</integer> </map> + <key>NvAPISessionOverride</key> + <map> + <key>Comment</key> + <string>Override NvAPI driver setting for maxim performance (HACK!!!)</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>Boolean</string> + <key>Value</key> + <integer>0</integer> + </map> <key>PurgeCacheOnNextStartup</key> <map> <key>Comment</key> diff --git a/indra/newview/llappviewerwin32.cpp b/indra/newview/llappviewerwin32.cpp index 0c764fe48a..b36c5a61a3 100644 --- a/indra/newview/llappviewerwin32.cpp +++ b/indra/newview/llappviewerwin32.cpp @@ -386,27 +386,35 @@ int APIENTRY WINMAIN(HINSTANCE hInstance, LL_WARNS() << "Application init failed." << LL_ENDL; return -1; } - - NvAPI_Status status; - - // Initialize NVAPI - status = NvAPI_Initialize(); - NvDRSSessionHandle hSession = 0; - if (status == NVAPI_OK) - { - // Create the session handle to access driver settings - status = NvAPI_DRS_CreateSession(&hSession); - if (status != NVAPI_OK) - { - nvapi_error(status); - } - else - { - //override driver setting as needed - ll_nvapi_init(hSession); - } - } + NvDRSSessionHandle hSession = 0; + // Viewer shouldn't need NvAPI and this implementation alters global + // settings instead of viewer-only ones (SL-4126) + // TODO: ideally this should be removed, but temporary disabling + // it with a way to turn it back on in case of issues + static LLCachedControl<bool> use_nv_api(gSavedSettings, "NvAPISessionOverride", false); + if (use_nv_api) + { + NvAPI_Status status; + + // Initialize NVAPI + status = NvAPI_Initialize(); + + if (status == NVAPI_OK) + { + // Create the session handle to access driver settings + status = NvAPI_DRS_CreateSession(&hSession); + if (status != NVAPI_OK) + { + nvapi_error(status); + } + else + { + //override driver setting as needed + ll_nvapi_init(hSession); + } + } + } // Have to wait until after logging is initialized to display LFH info if (num_heaps > 0) |