diff options
| author | Dave Houlton <euclid@lindenlab.com> | 2020-05-06 11:55:02 -0600 | 
|---|---|---|
| committer | Dave Houlton <euclid@lindenlab.com> | 2020-05-06 12:00:23 -0600 | 
| commit | 0a071f94c9863f88f960f3b09b8b177e17a0be20 (patch) | |
| tree | a09c3e84022fbbc713000612dbfa6e1c38fae75c /indra/newview | |
| parent | 39c0505412fe6cf2f9aa9681991d4a21da03319c (diff) | |
DRTVWR-510 cache vulkan-detect result
Diffstat (limited to 'indra/newview')
| -rw-r--r-- | indra/newview/llviewerstats.cpp | 22 | 
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  | 
