[Spice-devel] [PATCH 06/12] qxl-wddm-dod: Registry-based control over VSync
Frediano Ziglio
fziglio at redhat.com
Tue Mar 21 12:21:50 UTC 2017
>
> 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));
I would say INFORMATION level, nothing to worry about
> + b = !!val;
> + }
> + else
> + {
> + DbgPrint(TRACE_LEVEL_WARNING, ("%s: status = %X\n", __FUNCTION__,
> status));
Even this, mostly of the time should be that the value is not set which is
normal. Unless is supposed to always to present (from the inf file for instance).
> + }
> +}
>
> extern "C"
> NTSTATUS
> @@ -52,6 +84,9 @@ DriverEntry(
> // related to enabled VSync control in Win10RS1
>
> //g_bSupportVSync = TRUE;
Maybe this line now can be removed?
> +
> + // 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",
Frediano
More information about the Spice-devel
mailing list