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

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

 





On Tue, Mar 21, 2017 at 2:21 PM, Frediano Ziglio <fziglio@xxxxxxxxxx> 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@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).

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

_______________________________________________
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]