diff options
| author | Dave Houlton <euclid@lindenlab.com> | 2020-05-05 12:23:59 -0600 | 
|---|---|---|
| committer | Andrey Lihatskiy <alihatskiy@productengine.com> | 2020-05-06 02:32:47 +0300 | 
| commit | 85a03549f13622dac8ae7475256f02b96fd8db29 (patch) | |
| tree | d38418015d7d00312b5bbbf99610422eba1da487 | |
| parent | 7c0f3db180e50aad3866a8ac1b1c88cccf74c68d (diff) | |
DRTVWR-510 add code to report Vulkan capability in stats (Windows-only)
| -rw-r--r-- | indra/newview/llviewerstats.cpp | 42 | 
1 files changed, 26 insertions, 16 deletions
diff --git a/indra/newview/llviewerstats.cpp b/indra/newview/llviewerstats.cpp index 85d87a43af..eccbefcd3e 100644 --- a/indra/newview/llviewerstats.cpp +++ b/indra/newview/llviewerstats.cpp @@ -55,7 +55,6 @@  #include "llviewerregion.h"  #include "llvoavatar.h"  #include "llvoavatarself.h" -#include "llviewerwindow.h"		// *TODO: remove, only used for width/height  #include "llworld.h"  #include "llfeaturemanager.h"  #include "llviewernetwork.h" @@ -582,21 +581,32 @@ void send_stats()  	// If the current revision is recent, ping the previous author before overriding  	LLSD &misc = body["stats"]["misc"]; -	// Screen size so the UI team can figure out how big the widgets -	// appear and use a "typical" size for end user tests. - -	S32 window_width = gViewerWindow->getWindowWidthRaw(); -	S32 window_height = gViewerWindow->getWindowHeightRaw(); -	S32 window_size = (window_width * window_height) / 1024; -	misc["string_1"] = llformat("%d", window_size); -	misc["string_2"] = llformat("Texture Time: %.2f, Total Time: %.2f", gTextureTimer.getElapsedTimeF32(), gFrameTimeSeconds.value()); - -	F32 unbaked_time = LLVOAvatar::sUnbakedTime * 1000.f / gFrameTimeSeconds; -	misc["int_1"] = LLSD::Integer(unbaked_time); // Steve: 1.22 -	F32 grey_time = LLVOAvatar::sGreyTime * 1000.f / gFrameTimeSeconds; -	misc["int_2"] = LLSD::Integer(grey_time); // Steve: 1.22 - -	LL_INFOS() << "Misc Stats: int_1: " << misc["int_1"] << " int_2: " << misc["int_2"] << LL_ENDL; +#ifdef LL_WINDOWS +    // Probe for Vulkan capability (Dave Houlton 05/2020) +    // +    // Check for presense of a Vulkan loader dll, as a proxy for a Vulkan-capable gpu. +    // 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 +    { +        misc["string_1"] = llformat("Vulkan driver is detected"); +        FreeLibrary(vulkanDll); +    } +#else +    misc["string_1"] = llformat("Unused"); +#endif // LL_WINDOWS + +    misc["string_2"] = llformat("Unused"); +    misc["int_1"] = LLSD::Integer(0); +    misc["int_2"] = LLSD::Integer(0); + +    LL_INFOS() << "Misc Stats: int_1: " << misc["int_1"] << " int_2: " << misc["int_2"] << LL_ENDL;  	LL_INFOS() << "Misc Stats: string_1: " << misc["string_1"] << " string_2: " << misc["string_2"] << LL_ENDL;  	body["DisplayNamesEnabled"] = gSavedSettings.getBOOL("UseDisplayNames");  | 
