summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorDave Houlton <euclid@lindenlab.com>2020-05-06 11:55:02 -0600
committerDave Houlton <euclid@lindenlab.com>2020-05-06 12:00:23 -0600
commit0a071f94c9863f88f960f3b09b8b177e17a0be20 (patch)
treea09c3e84022fbbc713000612dbfa6e1c38fae75c /indra
parent39c0505412fe6cf2f9aa9681991d4a21da03319c (diff)
DRTVWR-510 cache vulkan-detect result
Diffstat (limited to 'indra')
-rw-r--r--indra/newview/llviewerstats.cpp22
1 files changed, 14 insertions, 8 deletions
diff --git a/indra/newview/llviewerstats.cpp b/indra/newview/llviewerstats.cpp
index eccbefcd3e..04172adde9 100644
--- a/indra/newview/llviewerstats.cpp
+++ b/indra/newview/llviewerstats.cpp
@@ -588,16 +588,22 @@ void send_stats()
// False-positives and false-negatives are possible, but unlikely. We'll get a good
// approximation of Vulkan capability within current user systems from this. More
// detailed information on versions and extensions can come later.
- HMODULE vulkanDll = LoadLibraryExA("vulkan-1.dll", NULL, LOAD_LIBRARY_AS_DATAFILE);
- if (NULL == vulkanDll)
- {
- misc["string_1"] = llformat("No Vulkan driver detected");
- }
- else
+ static bool vulkan_oneshot = false;
+ static bool vulkan_detected = false;
+
+ if (!vulkan_oneshot)
{
- misc["string_1"] = llformat("Vulkan driver is detected");
- FreeLibrary(vulkanDll);
+ HMODULE vulkan_loader = LoadLibraryExA("vulkan-1.dll", NULL, LOAD_LIBRARY_AS_DATAFILE);
+ if (NULL != vulkan_loader)
+ {
+ vulkan_detected = true;
+ FreeLibrary(vulkan_loader);
+ }
+ vulkan_oneshot = true;
}
+
+ misc["string_1"] = vulkan_detected ? llformat("Vulkan driver is detected") : llformat("No Vulkan driver detected");
+
#else
misc["string_1"] = llformat("Unused");
#endif // LL_WINDOWS