[Spice-devel] [PATCH 06/12] qxl-wddm-dod: Registry-based control over VSync
Yuri Benditovich
yuri.benditovich at daynix.com
Tue Mar 21 13:09:54 UTC 2017
On Tue, Mar 21, 2017 at 2:21 PM, Frediano Ziglio <fziglio at redhat.com> wrote:
> >
> > 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).
>
This value is planned as override of default behavior, and so normally not
present.
>
> > + }
> > +}
> >
> > 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?
>
>
This line is planned to be uncommented in future.
Registry value is normally not set (as it is explained in the comment)
> > +
> > + // 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/spice-devel/attachments/20170321/d352fcb6/attachment.html>
More information about the Spice-devel
mailing list