Re: [PATCH 06/12] qxl-wddm-dod: Registry-based control over VSync

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> 
> 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@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));

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
_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/spice-devel




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]