libobs: Fix Windows 10/11 Gamemode/HAGS detection

It seems that the older key still exists on Win 11 and 10 but is always
set to 0, so use the newer to start with and fall back to the old one if
necessary.

Additionally, if the key for HAGS and GameMode do not exist assume
they're on as this is the default on Win 11. On Windows 10 game mode is
also on by default in recent versions.

Also changes "10" to "10/11" just for correctness.
master
derrod 2022-08-23 18:16:14 +02:00 committed by Jim
parent f88300a613
commit 44eb8ffbb6
1 changed files with 12 additions and 3 deletions

View File

@ -27,6 +27,7 @@
#include <iwscapi.h>
static uint32_t win_ver = 0;
static uint32_t win_build = 0;
const char *get_module_extension(void)
{
@ -223,16 +224,16 @@ static void log_gaming_features(void)
get_reg_dword(HKEY_CURRENT_USER, WIN10_GAME_BAR_REG_KEY,
L"HistoricalCaptureEnabled", &game_dvr_bg_recording);
get_reg_dword(HKEY_CURRENT_USER, WIN10_GAME_MODE_REG_KEY,
L"AllowAutoGameMode", &game_mode_enabled);
L"AutoGameModeEnabled", &game_mode_enabled);
get_reg_dword(HKEY_LOCAL_MACHINE, WIN10_HAGS_REG_KEY, L"HwSchMode",
&hags_enabled);
if (game_mode_enabled.status != ERROR_SUCCESS) {
get_reg_dword(HKEY_CURRENT_USER, WIN10_GAME_MODE_REG_KEY,
L"AutoGameModeEnabled", &game_mode_enabled);
L"AllowAutoGameMode", &game_mode_enabled);
}
blog(LOG_INFO, "Windows 10 Gaming Features:");
blog(LOG_INFO, "Windows 10/11 Gaming Features:");
if (game_bar_enabled.status == ERROR_SUCCESS) {
blog(LOG_INFO, "\tGame Bar: %s",
(bool)game_bar_enabled.return_value ? "On" : "Off");
@ -256,11 +257,18 @@ static void log_gaming_features(void)
if (game_mode_enabled.status == ERROR_SUCCESS) {
blog(LOG_INFO, "\tGame Mode: %s",
(bool)game_mode_enabled.return_value ? "On" : "Off");
} else if (win_build >= 19042) {
// On by default in newer Windows 10 builds (no registry key set)
blog(LOG_INFO, "\tGame Mode: Probably On (no reg key set)");
}
if (hags_enabled.status == ERROR_SUCCESS) {
blog(LOG_INFO, "\tHardware GPU Scheduler: %s",
(hags_enabled.return_value == 2) ? "On" : "Off");
} else if (win_build >= 22000) {
// On by default in Windows 11 (no registry key set)
blog(LOG_INFO,
"\tHardware GPU Scheduler: Probably On (no reg key set)");
}
}
@ -393,6 +401,7 @@ void log_system_info(void)
get_win_ver(&ver);
win_ver = (ver.major << 8) | ver.minor;
win_build = ver.build;
log_processor_info();
log_processor_cores();