DRTVWR-510 add code to report Vulkan capability in stats (Windows-only)

meow-7.2.2
Dave Houlton 2020-05-05 12:23:59 -06:00 committed by Andrey Lihatskiy
parent 7c0f3db180
commit 85a03549f1
1 changed files with 24 additions and 14 deletions

View File

@ -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.
#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
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());
misc["string_2"] = llformat("Unused");
misc["int_1"] = LLSD::Integer(0);
misc["int_2"] = LLSD::Integer(0);
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;
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");