From b02a97ab0f2570679acead770a76ddd08f3b99da Mon Sep 17 00:00:00 2001 From: Ryan Foster Date: Mon, 9 Oct 2017 02:30:21 -0400 Subject: [PATCH] libobs: Log Windows 10 Gaming Features This commit adds logging for Windows 10 Gaming features that may negatively impact the performance of game capture, recording, or streaming. This doesn't check Group Policy settings. --- libobs/obs-windows.c | 45 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/libobs/obs-windows.c b/libobs/obs-windows.c index 410169a5a..62d08c249 100644 --- a/libobs/obs-windows.c +++ b/libobs/obs-windows.c @@ -15,6 +15,7 @@ along with this program. If not, see . ******************************************************************************/ +#include "util/windows/win-registry.h" #include "util/windows/win-version.h" #include "util/platform.h" #include "util/dstr.h" @@ -189,6 +190,49 @@ static void log_aero(void) aeroMessage); } +#define WIN10_GAME_BAR_REG_KEY \ + L"Software\\Microsoft\\Windows\\CurrentVersion\\GameDVR" +#define WIN10_GAME_DVR_POLICY_REG_KEY \ + L"SOFTWARE\\Policies\\Microsoft\\Windows\\GameDVR" +#define WIN10_GAME_DVR_REG_KEY L"System\\GameConfigStore" +#define WIN10_GAME_MODE_REG_KEY L"Software\\Microsoft\\GameBar" + +static void log_gaming_features(void) +{ + if (win_ver < 0xA00) + return; + + struct reg_dword game_bar_enabled; + struct reg_dword game_dvr_allowed; + struct reg_dword game_dvr_enabled; + struct reg_dword game_dvr_bg_recording; + struct reg_dword game_mode_enabled; + + get_reg_dword(HKEY_CURRENT_USER, WIN10_GAME_BAR_REG_KEY, + L"AppCaptureEnabled", &game_bar_enabled); + get_reg_dword(HKEY_CURRENT_USER, WIN10_GAME_DVR_POLICY_REG_KEY, + L"AllowGameDVR", &game_dvr_allowed); + get_reg_dword(HKEY_CURRENT_USER, WIN10_GAME_DVR_REG_KEY, + L"GameDVR_Enabled", &game_dvr_enabled); + 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); + + blog(LOG_INFO, "Windows 10 Gaming Features:"); + blog(LOG_INFO, "\tGame Bar: %s", + (bool)game_bar_enabled.return_value ? "On" : "Off"); + blog(LOG_INFO, "\tGame DVR Allowed: %s", + (bool)game_dvr_allowed.return_value ? "Yes" : "No"); + blog(LOG_INFO, "\tGame DVR: %s", + (bool)game_dvr_enabled.return_value ? "On" : "Off"); + blog(LOG_INFO, "\tGame DVR Background Recording: %s", + (bool)game_dvr_bg_recording.return_value ? "On" : + "Off"); + blog(LOG_INFO, "\tGame Mode: %s", + (bool)game_mode_enabled.return_value ? "On" : "Off"); +} + void log_system_info(void) { struct win_version_info ver; @@ -202,6 +246,7 @@ void log_system_info(void) log_windows_version(); log_admin_status(); log_aero(); + log_gaming_features(); }