[Spice-devel] Spice-devel Digest, Vol 79, Issue 131

Marc Cyr marccyr at gmail.com
Wed Aug 24 15:17:55 UTC 2016


Thank you so much! I have been waiting for Win8.1 QXL update for a while now. I'll proceed and do my testing right away!

Best regards,

Marc

Sent from my iPhone

> On Aug 24, 2016, at 10:15 AM, spice-devel-request at lists.freedesktop.org wrote:
> 
> Send Spice-devel mailing list submissions to
>    spice-devel at lists.freedesktop.org
> 
> To subscribe or unsubscribe via the World Wide Web, visit
>    https://lists.freedesktop.org/mailman/listinfo/spice-devel
> or, via email, send a message with subject or body 'help' to
>    spice-devel-request at lists.freedesktop.org
> 
> You can reach the person managing the list at
>    spice-devel-owner at lists.freedesktop.org
> 
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of Spice-devel digest..."
> 
> 
> Today's Topics:
> 
>   1. Re: [PATCH qxl-wddm-dod 03/26] Add printer class to dump
>      debug print statements to kernel debugger output (Sameeh Jubran)
>   2. Re: [PATCH qxl-wddm-dod 00/26] Win10 support patches
>      (Sameeh Jubran)
>   3. Re: [PATCH v10] Implementing WDDM interface to support
>      multiple monitors and arbitrary resolution (Frediano Ziglio)
> 
> 
> ----------------------------------------------------------------------
> 
> Message: 1
> Date: Wed, 24 Aug 2016 16:05:07 +0300
> From: Sameeh Jubran <sameeh at daynix.com>
> To: Frediano Ziglio <fziglio at redhat.com>
> Cc: Dmitry Fleytman <dmitry at daynix.com>, Spice List
>    <spice-devel at lists.freedesktop.org>
> Subject: Re: [Spice-devel] [PATCH qxl-wddm-dod 03/26] Add printer
>    class to dump debug print statements to kernel debugger output
> Message-ID:
>    <CAKPgXcHLj5dZViC=pUyiLDCd0Kd2r1Ckdozpn3xh4t-a9nxazw at mail.gmail.com>
> Content-Type: text/plain; charset="utf-8"
> 
> On Tue, Aug 16, 2016 at 6:59 PM, Frediano Ziglio <fziglio at redhat.com> wrote:
> 
>>> 
>>> From: Sandy Stutsman <sstutsma at redhat.com>
>>> 
>>> Allows the usage of Kd_IHVVIDEO_Mask to control print level while
>> debugging
>>> 
>>> Signed-off-by: Sameeh Jubran <sameeh at daynix.com>
>>> ---
>>> qxldod/driver.cpp | 24 +++++++++++++++++++++++-
>>> qxldod/driver.h   | 20 ++++++++++++++++----
>>> 2 files changed, 39 insertions(+), 5 deletions(-)
>>> 
>>> diff --git a/qxldod/driver.cpp b/qxldod/driver.cpp
>>> index 4d1913c..d9946aa 100755
>>> --- a/qxldod/driver.cpp
>>> +++ b/qxldod/driver.cpp
>>> @@ -667,7 +667,29 @@ void DebugPrintFunc(const char *format, ...)
>>>     va_start(list, format);
>>>     vDbgPrintEx(DPFLTR_DEFAULT_ID, 9 | DPFLTR_MASK, format, list);
>>> }
>>> +
>>> +kd_debug_printer::kd_debug_printer(ULONG level)
>>> +{
>>> +    static const ULONG xlate[] = { 0, 0, 1, 2, 3 };
>>> +    if (!level || level > 5) {
>>> +        _level = 0xffffffff;
>>> +
>>> +    }
>>> +    else {
>>> +        _level = xlate[level - 1];
>>> +    }
>>> +}
>>> +
>>> +void kd_debug_printer::print(const char * fmt, ...)
>>> +{
>>> +    if (_level == 0xffffffff) {
>>> +        return;
>>> +    }
>>> +    va_list list;
>>> +    va_start(list, fmt);
>>> +    vDbgPrintEx(DPFLTR_IHVVIDEO_ID, _level, fmt, list);
>>> +    va_end(list);
>>> +}
>>> #endif
>>> 
>>> #pragma code_seg(pop) // End Non-Paged Code
>>> -
>>> diff --git a/qxldod/driver.h b/qxldod/driver.h
>>> index e64c098..752f8e4 100755
>>> --- a/qxldod/driver.h
>>> +++ b/qxldod/driver.h
>>> @@ -208,15 +208,27 @@ DodSystemDisplayWrite(
>>>     _In_  UINT  PositionY);
>>> 
>>> #if DBG
>>> +class kd_debug_printer
>>> +{
>>> +public:
>>> +    kd_debug_printer(ULONG level);
>>> +    void print(const char * fmt, ...);
>>> +private:
>>> +    ULONG _level;
>>> + };
>>> 
>>> extern int nDebugLevel;
>>> void DebugPrintFuncSerial(const char *format, ...);
>>> 
>>> -void DebugPrintFunc(const char *format, ...);
>>> +void DebugPrintFunc(const char *format, ...);
>>> +
>>> +#define DbgPrint(level, line)           \
>>> +    if (level > nDebugLevel) {}         \
>>> +    else {                              \
>>> +       DebugPrintFuncSerial line;       \
>>> +     }                                  \
>>> +     kd_debug_printer(level).print line
>>> 
>>> -#define DbgPrint(level, line) \
>>> -    if (level > nDebugLevel) {} \
>>> -    else DebugPrintFuncSerial line
>>> #else
>>> #define DbgPrint(level, line)
>>> #endif
>> 
>> This can be done much easier with variadic macros and a simple function.
>> 
>> void DebugPrint(int level, const char *fmt, ...);
>> 
>> #define DbgExpandArguments(...) __VA_ARGS__
>> #define DbgPrint(level, line) do { \
>>    if (level <= nDebugLevel) DebugPrintFuncSerial line; \
>>    DebugPrint(level, DbgExpandArguments line); \
>> } while(0)
>> 
>> 
>> and the definition
>> 
>> 
>> void DebugPrint(int level, const char *fmt, ...)
>> {
>>   static const ULONG xlate[] = { 0, 0, 1, 2, 3 };
>>   if (level <= 0 || level > 5)
>>       return;
>> 
>>   va_list list;
>>   va_start(list, fmt);
>>   vDbgPrintEx(DPFLTR_IHVVIDEO_ID, xlate[level - 1], fmt, list);
>>   va_end(list);
>> }
> I'll rework this and resend it.
> 
>> 
>> 
>> Cannot test but I can see the print is duplicated to DebugPrintFuncSerial
>> and vDbgPrintEx. Is this wanted?
> Yes, we print to both serial and Windbg simultaneously.
> 
>> 
>> Frediano
> 
> 
> 
> -- 
> Respectfully,
> *Sameeh Jubran*
> *Linkedin <https://il.linkedin.com/pub/sameeh-jubran/87/747/a8a>*
> *Junior Software Engineer @ Daynix <http://www.daynix.com>.*
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <https://lists.freedesktop.org/archives/spice-devel/attachments/20160824/777e7ccc/attachment-0001.html>
> 
> ------------------------------
> 
> Message: 2
> Date: Wed, 24 Aug 2016 16:22:57 +0300
> From: Sameeh Jubran <sameeh at daynix.com>
> To: Spice List <spice-devel at lists.freedesktop.org>
> Cc: Dmitry Fleytman <dmitry at daynix.com>
> Subject: Re: [Spice-devel] [PATCH qxl-wddm-dod 00/26] Win10 support
>    patches
> Message-ID:
>    <CAKPgXcHyQkUCwUxhUi+1weUGBcjASu3r5GR8BSqiueCQzhoc1Q at mail.gmail.com>
> Content-Type: text/plain; charset="utf-8"
> 
> Can you please review the rest of the patches so I can send v2?
> 
>> On Tue, Aug 9, 2016 at 6:28 PM, Sameeh Jubran <sameeh at daynix.com> wrote:
>> 
>> This series contains the latest patches to support Windows 10.
>> 
>> Visual Studio 2015 with Win10 WDK is required to compile this code,
>> Current patches may be compiled and will work for Windows 10.
>> 
>> Smoke testing had been done in windows 8.1 seems to be working good.
>> 
>> Dmitry Fleytman (4):
>>  Replacing <#ifdef USE_FRAMEBUFFER> with runtime logic
>>  Fixing framebuffer usage logic
>>  Support future Qxl revisions
>>  Set SupportNonVGA in QueryAdapterInfo callback
>> 
>> Sameeh Jubran (9):
>>  Upgrade to Windows 10 WDK
>>  Add delete operator
>>  Code Analysis clean up
>>  Replacing tabs with spaces
>>  Fix source buffer mapping in PresentDisplayOnly
>>  Fixing Move rectangles implementation
>>  Reserved must be set to 0
>>  Fixing monitor flicker on resolution change
>>  Removing unnecessary call to BlackOutScreen
>> 
>> Sandy Stutsman (13):
>>  Add printer class to dump debug print statements to kernel debugger
>>    output
>>  Set DriverStarted flag at the begining of the StartDriver function
>>  Fix Code Integrity error generated by the Drive Verifier
>>  Add functions called from non-pageable functions to non-paged segments
>>  Do not use virtual functions for code that must not be paged
>>  On power wake call the init functions before setting the vidpn to
>>    black.  Otherwise, BSOD.
>>  Use SrcPitch when calculating size of memory to map PresentDisplayOnly
>>  Remove unused notify present display only interrupt and fix interrupt
>>    mask
>>  Add arbitrary resolution and monitors_config Escape
>>  Use the second bar (VRAM) for qxl command buffer.
>>  Comment out frame buffer mapping.
>>  Enable HW cursor support and fix handling of monochrome cursors.
>>  Remove minimum size restrict for custom resolution.
>> 
>> Tools/vs_cmdline.vbs                       |   23 +
>> Tools/vs_run.bat                           |   26 +
>> buildAll.bat                               |   15 +
>> buildAll_NoSign.bat                        |   19 +
>> qxldod Package/qxldod Package.vcxproj      |  173 +-
>> qxldod Package/qxldod Package.vcxproj.user |   15 +
>> qxldod.sln                                 |  106 +-
>> qxldod/BaseObject.cpp                      |   11 +
>> qxldod/BaseObject.h                        |    1 +
>> qxldod/QxlDod.cpp                          | 1280 +++++++++------
>> qxldod/QxlDod.h                            |   67 +-
>> qxldod/buildAll.bat                        |   31 -
>> qxldod/callVisualStudio.bat                |   28 -
>> qxldod/checkWin8Tools.bat                  |    8 -
>> qxldod/clean.bat                           |   12 -
>> qxldod/driver.cpp                          |   26 +-
>> qxldod/driver.h                            |   20 +-
>> qxldod/include/qxl_windows.h               |    1 +
>> qxldod/mspace.c                            | 2437
>> ---------------------------
>> qxldod/mspace.cpp                          | 2439
>> ++++++++++++++++++++++++++++
>> qxldod/qxldod.vcxproj                      |  247 ++-
>> qxldod/qxldod.vcxproj.filters              |    2 +-
>> qxldod/qxldod.vcxproj.user                 |   15 +
>> 23 files changed, 3619 insertions(+), 3383 deletions(-)
>> create mode 100644 Tools/vs_cmdline.vbs
>> create mode 100644 Tools/vs_run.bat
>> create mode 100644 buildAll.bat
>> create mode 100644 buildAll_NoSign.bat
>> create mode 100644 qxldod Package/qxldod Package.vcxproj.user
>> delete mode 100755 qxldod/buildAll.bat
>> delete mode 100755 qxldod/callVisualStudio.bat
>> delete mode 100755 qxldod/checkWin8Tools.bat
>> delete mode 100755 qxldod/clean.bat
>> delete mode 100755 qxldod/mspace.c
>> create mode 100644 qxldod/mspace.cpp
>> create mode 100644 qxldod/qxldod.vcxproj.user
>> 
>> --
>> 2.7.0.windows.1
> 
> 
> -- 
> Respectfully,
> *Sameeh Jubran*
> *Linkedin <https://il.linkedin.com/pub/sameeh-jubran/87/747/a8a>*
> *Junior Software Engineer @ Daynix <http://www.daynix.com>.*
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <https://lists.freedesktop.org/archives/spice-devel/attachments/20160824/a8bf4bb8/attachment-0001.html>
> 
> ------------------------------
> 
> Message: 3
> Date: Wed, 24 Aug 2016 10:15:05 -0400 (EDT)
> From: Frediano Ziglio <fziglio at redhat.com>
> To: Sameeh Jubran <sameeh at daynix.com>
> Cc: Dmitry Fleytman <dmitry at daynix.com>, Spice List
>    <spice-devel at lists.freedesktop.org>
> Subject: Re: [Spice-devel] [PATCH v10] Implementing WDDM interface to
>    support multiple monitors and arbitrary resolution
> Message-ID:
>    <1699709163.4184074.1472048105889.JavaMail.zimbra at redhat.com>
> Content-Type: text/plain; charset="utf-8"
> 
> I'm probably using an old driver. 
> I cannot find the current repository, the one at https://cgit.freedesktop.org/spice/ is empty. 
> Can you provide a newer one? 
> 
> Frediano 
> 
> ----- Original Message -----
> 
>> From: "Sameeh Jubran" <sameeh at daynix.com>
>> To: "Frediano Ziglio" <fziglio at redhat.com>
>> Cc: "Spice List" <spice-devel at lists.freedesktop.org>, "Dmitry Fleytman"
>> <dmitry at daynix.com>
>> Sent: Wednesday, August 24, 2016 7:16:12 AM
>> Subject: Re: [PATCH v10] Implementing WDDM interface to support multiple
>> monitors and arbitrary resolution
> 
>> Have you tried it with the up-to-date qxl-wddm-dod patches that I have
>> recently sent?
> 
>> On Mon, Aug 22, 2016 at 11:21 PM, Frediano Ziglio < fziglio at redhat.com >
>> wrote:
> 
>>>> The Direct3D 9 API operates on either the Windows XP display driver
>> 
>>>> model (XPDM) or the Windows Vista display driver model (WDDM), depending
>> 
>>>> on the operating system installed.
>> 
>> 
>>>> This patch implements the WDDM interface while using the CCD API to do
>> 
>>>> so. Moreover it introduces multiple monitors support and arbitrary
>> 
>>>> resolution for Windows 10 while preserving backward compatiblity with
>> 
>>>> previous versions of Windows.
>> 
>> 
>>>> Based on a patch by Sandy Stutsman <sstutsma at redhat.com >
>> 
>> 
>>>> Signed-off-by: Dmitry Fleytman <dfleytma at redhat.com >
>> 
>>>> Signed-off-by: Sameeh Jubran < sameeh at daynix.com >
>> 
>>> ...
> 
>>> Hi Sameeh,
>> 
>>> I managed to compile Windows 10 driver and try this patches.
> 
>>> When I resize the client screen (using either 1 or 2 QXL card) the screen
>>> keep
>> 
>>> flickering. Did you notice the same issue?
> 
>>> The log is something like:
> 
>>> 4312::INFO::2016-08-20 10:32:03,702::handle_mon_config::0. 1440*682*32
>>> (0,0)
>>> 1
>> 
>>> 4312::INFO::2016-08-20 10:32:03,702::handle_mon_config::1. 0*0*0 (1440,0) 1
>> 
>>> 4312::INFO::2016-08-20 10:32:03,702::handle_mon_config::1. detaching
>> 
>>> 4312::INFO::2016-08-20 10:32:03,702::consistent_displays::#qxls 2 #others 0
>> 
>>> 4312::INFO::2016-08-20
>>> 10:32:03,702::custom_display_escape::custom_display_escape: updating
>>> \\.\DISPLAY1 resolution
>> 
>>> 4312::INFO::2016-08-20 10:32:03,702::update_mode_size::update_mode_size:
>>> \\.\DISPLAY1 updated path mode to (0, 0 - (1440 x 682)
>> 
>>> 4312::INFO::2016-08-20 10:32:03,702::set_displays::Set display mode
>>> 1440x682
>> 
>>> 4312::INFO::2016-08-20
>>> 10:32:03,702::update_mode_position::update_mode_position: \\.\DISPLAY1
>>> updated path mode to (0, 0) - (1440 x682)
>> 
>>> 4312::INFO::2016-08-20
>>> 10:32:03,702::update_mode_position::update_mode_position: \\.\DISPLAY1
>>> updated path mode to (0, 0) - (1440 x682)
>> 
>>> 4312::INFO::2016-08-20 10:32:03,702::set_displays::Set display mode 0x0
>> 
>>> 4312::INFO::2016-08-20
>>> 10:32:03,702::get_active_mode::get_active_mode:\\.\DISPLAY2 failed
>> 
>>> 4312::INFO::2016-08-20
>>> 10:32:03,702::debug_print_config::debug_print_config:
>>> \\.\DISPLAY1 [Before SetDisplayConfig] (0,0) (1440x682).
>> 
>>> 4312::INFO::2016-08-20 10:32:03,749::wnd_proc::Display change
>> 
>>> 4312::INFO::2016-08-20 10:32:03,749::consistent_displays::#qxls 2 #others 0
>> 
>>> 4312::INFO::2016-08-20
>>> 10:32:03,749::update_mode_position::update_mode_position: \\.\DISPLAY1
>>> updated path mode to (0, 0) - (1440 x682)
> 
>>> 4312::INFO::2016-08-20 10:32:04,702::handle_mon_config::0. 1440*682*32
>>> (0,0)
>>> 1
>> 
>>> 4312::INFO::2016-08-20 10:32:04,702::handle_mon_config::1. 0*0*0 (1440,0) 1
>> 
>>> 4312::INFO::2016-08-20 10:32:04,702::handle_mon_config::1. detaching
>> 
>>> 4312::INFO::2016-08-20 10:32:04,702::consistent_displays::#qxls 2 #others 0
>> 
>>> 4312::INFO::2016-08-20 10:32:04,702::set_displays::Set display mode
>>> 1440x682
>> 
>>> 4312::INFO::2016-08-20
>>> 10:32:04,702::update_mode_position::update_mode_position: \\.\DISPLAY1
>>> updated path mode to (0, 0) - (1440 x682)
>> 
>>> 4312::INFO::2016-08-20
>>> 10:32:04,702::update_mode_position::update_mode_position: \\.\DISPLAY1
>>> updated path mode to (0, 0) - (1440 x682)
>> 
>>> 4312::INFO::2016-08-20 10:32:04,702::set_displays::Set display mode 0x0
>> 
>>> 4312::INFO::2016-08-20
>>> 10:32:04,702::get_active_mode::get_active_mode:\\.\DISPLAY2 failed
>> 
>>> 4312::INFO::2016-08-20
>>> 10:32:04,702::debug_print_config::debug_print_config:
>>> \\.\DISPLAY1 [Before SetDisplayConfig] (0,0) (1440x682).
>> 
>>> 4312::INFO::2016-08-20 10:32:04,734::wnd_proc::Display change
>> 
>>> 4312::INFO::2016-08-20 10:32:04,734::consistent_displays::#qxls 2 #others 0
>> 
>>> 4312::INFO::2016-08-20
>>> 10:32:04,734::update_mode_position::update_mode_position: \\.\DISPLAY1
>>> updated path mode to (0, 0) - (1440 x682)
> 
>>> while on Windows 7 (working XPDM) is:
> 
>>> 1132::INFO::2016-08-20 13:55:42,927::VDAgent::handle_mon_config::0.
>>> 1440*682*32 (0,0) 1
>> 
>>> 1132::INFO::2016-08-20 13:55:42,927::VDAgent::handle_mon_config::1. 0*0*0
>>> (1440,0) 1
>> 
>>> 1132::INFO::2016-08-20 13:55:42,927::VDAgent::handle_mon_config::1.
>>> detaching
>> 
>>> 1132::INFO::2016-08-20 13:55:42,927::VDAgent::handle_mon_config::2. 0*0*0
>>> (1440,0) 1
>> 
>>> 1132::INFO::2016-08-20 13:55:42,927::VDAgent::handle_mon_config::2.
>>> detaching
>> 
>>> 1132::INFO::2016-08-20 13:55:42,927::VDAgent::handle_mon_config::3. 0*0*0
>>> (1440,0) 1
>> 
>>> 1132::INFO::2016-08-20 13:55:42,927::VDAgent::handle_mon_config::3.
>>> detaching
>> 
>>> 1132::INFO::2016-08-20
>>> 13:55:42,927::DesktopLayout::consistent_displays::#qxls 4 #others 0
>> 
>>> 1132::INFO::2016-08-20 13:55:42,927::DesktopLayout::set_displays::Set
>>> display
>>> mode 1440x682
>> 
>>> 1132::INFO::2016-08-20 13:55:42,943::DesktopLayout::set_displays::Set
>>> display
>>> mode 0x0
>> 
>>> 1132::INFO::2016-08-20 13:55:42,943::DesktopLayout::set_displays::Set
>>> display
>>> mode 0x0
>> 
>>> 1132::INFO::2016-08-20 13:55:42,943::DesktopLayout::set_displays::Set
>>> display
>>> mode 0x0
>> 
>>> 1132::INFO::2016-08-20 13:55:42,958::VDAgent::wnd_proc::Display change
>> 
>>> 1132::INFO::2016-08-20
>>> 13:55:42,958::DesktopLayout::consistent_displays::#qxls 4 #others 0
>> 
>>> 1132::INFO::2016-08-20 13:55:43,927::VDAgent::handle_mon_config::0.
>>> 1440*682*32 (0,0) 1
>> 
>>> 1132::INFO::2016-08-20 13:55:43,927::VDAgent::handle_mon_config::1. 0*0*0
>>> (1440,0) 1
>> 
>>> 1132::INFO::2016-08-20 13:55:43,927::VDAgent::handle_mon_config::1.
>>> detaching
>> 
>>> 1132::INFO::2016-08-20 13:55:43,927::VDAgent::handle_mon_config::2. 0*0*0
>>> (1440,0) 1
>> 
>>> 1132::INFO::2016-08-20 13:55:43,927::VDAgent::handle_mon_config::2.
>>> detaching
>> 
>>> 1132::INFO::2016-08-20 13:55:43,927::VDAgent::handle_mon_config::3. 0*0*0
>>> (1440,0) 1
>> 
>>> 1132::INFO::2016-08-20 13:55:43,927::VDAgent::handle_mon_config::3.
>>> detaching
>> 
>>> 1132::INFO::2016-08-20
>>> 13:55:43,927::DesktopLayout::consistent_displays::#qxls 4 #others 0
>> 
>>> 1132::INFO::2016-08-20 13:55:43,927::DesktopLayout::set_displays::Set
>>> display
>>> mode 1440x682
>> 
>>> 1132::INFO::2016-08-20 13:55:43,927::DesktopLayout::set_displays::Set
>>> display
>>> mode 0x0
>> 
>>> 1132::INFO::2016-08-20 13:55:43,927::DesktopLayout::set_displays::Set
>>> display
>>> mode 0x0
>> 
>>> 1132::INFO::2016-08-20 13:55:43,927::DesktopLayout::set_displays::Set
>>> display
>>> mode 0x0
>> 
>>> 1132::INFO::2016-08-20
>>> 13:55:43,927::DesktopLayout::consistent_displays::#qxls 4 #others 0
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <https://lists.freedesktop.org/archives/spice-devel/attachments/20160824/6ab53ede/attachment.html>
> 
> ------------------------------
> 
> Subject: Digest Footer
> 
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/spice-devel
> 
> 
> ------------------------------
> 
> End of Spice-devel Digest, Vol 79, Issue 131
> ********************************************


More information about the Spice-devel mailing list