[Spice-devel] [PATCH qxl-wddm-dod 12/20] qxl-wddm-dod: Registry-based control over VSync
Frediano Ziglio
fziglio at redhat.com
Tue Mar 28 13:27:07 UTC 2017
From: "yuri.benditovich at daynix.com" <yuri.benditovich at daynix.com>
Registry override of default behavior (disabling when enabled
by default) provided for support and troubleshooting only in case
this feature affects specific user.
Signed-off-by: Yuri Benditovich <yuri.benditovich at daynix.com>
---
qxldod/driver.cpp | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)
diff --git a/qxldod/driver.cpp b/qxldod/driver.cpp
index 1946147..01b88d7 100755
--- a/qxldod/driver.cpp
+++ b/qxldod/driver.cpp
@@ -21,6 +21,38 @@
int nDebugLevel = TRACE_LEVEL_ERROR;
+// registry-based configuration is intended to be manual only
+// for VSync suppression during support and troubleshooting
+// and not expected to be made default
+static void QueryVSyncSetting(BOOLEAN& b, UNICODE_STRING *path)
+{
+ PAGED_CODE();
+ WCHAR buffer[MAX_PATH];
+ ULONG val = b;
+ RTL_QUERY_REGISTRY_TABLE QueryTable[3] = {};
+ if (path->Length >= sizeof(buffer))
+ return;
+
+ QueryTable[0].Flags = RTL_QUERY_REGISTRY_SUBKEY;
+ QueryTable[0].Name = L"Parameters";
+ QueryTable[1].Flags = RTL_QUERY_REGISTRY_DIRECT | RTL_QUERY_REGISTRY_TYPECHECK | RTL_QUERY_REGISTRY_REQUIRED;
+ QueryTable[1].Name = L"EnableVSync";
+ QueryTable[1].DefaultType = REG_DWORD << 24;
+ QueryTable[1].EntryContext = &val;
+
+ RtlCopyMemory(buffer, path->Buffer, path->Length);
+ buffer[path->Length/2] = 0;
+ NTSTATUS status = RtlQueryRegistryValues(RTL_REGISTRY_ABSOLUTE, buffer, QueryTable, NULL, NULL);
+ if (NT_SUCCESS(status))
+ {
+ DbgPrint(TRACE_LEVEL_WARNING, ("%s: val = %d\n", __FUNCTION__, val));
+ b = !!val;
+ }
+ else
+ {
+ DbgPrint(TRACE_LEVEL_WARNING, ("%s: status = %X\n", __FUNCTION__, status));
+ }
+}
extern "C"
NTSTATUS
@@ -52,6 +84,9 @@ DriverEntry(
// related to enabled VSync control in Win10RS1
//g_bSupportVSync = TRUE;
+
+ // for support/troubleshooting be able to disable VSync on specific machine
+ QueryVSyncSetting(g_bSupportVSync, pRegistryPath);
}
DbgPrint(TRACE_LEVEL_WARNING, ("VSync support %sabled for %d.%d.%d\n",
g_bSupportVSync ? "en" : "dis",
--
2.9.3
More information about the Spice-devel
mailing list