On Sun, Mar 12, 2017 at 10:45:03AM +0200, Yuri Benditovich wrote: > Registry override of default behavior (disabling when enabled > by default) provided for support and troubleshooting only in case > this feature affects specific user. I'm afraid it's still unclear to me why vsync support is required for qxl-wddm-dod. Looking at https://msdn.microsoft.com/en-us/library/windows/hardware/jj673962(v=vs.85).aspx it seems in this case vsync is optional? "Note that if a KMDOD does not support the VSync control feature, it should not implement certain functions" I'd assume Microsoft would not document this if they are not willing to let such drivers pass HCK? Do you have any reference explaining why vsync is mandatory for HCK? Christophe > > Signed-off-by: Yuri Benditovich <yuri.benditovich@xxxxxxxxxx> > --- > 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.7.0.windows.1 > > _______________________________________________ > Spice-devel mailing list > Spice-devel@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/spice-devel
Attachment:
signature.asc
Description: PGP signature
_______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel