[Spice-devel] [PATCH] qxl-wddm-dod: Fix for screen not shown after driver disabled
Frediano Ziglio
fziglio at redhat.com
Thu Jan 26 11:29:41 UTC 2017
Acked-by: Frediano Ziglio <fziglio at redhat.com>
Frediano
----- Original Message -----
> From: "Yuri Benditovich" <yuri.benditovich at daynix.com>
> To: "Frediano Ziglio" <fziglio at redhat.com>
> Cc: spice-devel at lists.freedesktop.org, "Yan Vugenfirer" <yan at daynix.com>
> Sent: Wednesday, January 25, 2017 5:45:23 PM
> Subject: Re: [Spice-devel] [PATCH] qxl-wddm-dod: Fix for screen not shown
> after driver disabled
> We use this name as video mode that the driver uses and passes to the
> BasicVideo is expected to be supported by BIOS or UEFI. "VGA Compatible"
> sounds like conformance to some specification, which is not a case. Name of
> the field " SupportNonVGA" related to this feature is also inclear and seems
> at least inverted. The difference between VGA mode and QXL mode is that
> first uses video modes declared by the BIOS and changes them via BIOS calls,
> when the seconds does not.
> On Wed, Jan 25, 2017 at 6:26 PM, Frediano Ziglio < fziglio at redhat.com >
> wrote:
> > >
>
> > > https://bugzilla.redhat.com/show_bug.cgi?id=1411340
>
> > > Do not set SupportNonVGA field for device rev.4 and higher.
>
> > > Then the class driver will not call miniport's procedure
>
> > > StopDeviceAndReleasePostDisplayOwnership upon PnP stop.
>
> > > QXL device modes are not compatible with VGA ones; the
>
> > > driver in this procedure returns display information related
>
> > > to QXL mode which later used by BasicDisplay driver and causes
>
> > > it to show the screen incorrectly or fail to show it at all.
>
> > >
>
> > > Signed-off-by: Yuri Benditovich < yuri.benditovich at daynix.com >
>
> > > ---
>
> > > qxldod/QxlDod.cpp | 2 +-
>
> > > qxldod/QxlDod.h | 2 ++
>
> > > 2 files changed, 3 insertions(+), 1 deletion(-)
>
> > >
>
> > > diff --git a/qxldod/QxlDod.cpp b/qxldod/QxlDod.cpp
>
> > > index 7adbec4..001cd67 100755
>
> > > --- a/qxldod/QxlDod.cpp
>
> > > +++ b/qxldod/QxlDod.cpp
>
> > > @@ -411,7 +411,7 @@ NTSTATUS QxlDod::QueryAdapterInfo(_In_ CONST
>
> > > DXGKARG_QUERYADAPTERINFO* pQueryAda
>
> > > pDriverCaps->PointerCaps.Monochrome = 1;
>
> > > pDriverCaps->PointerCaps.Color = 1;
>
> > >
>
> > > - pDriverCaps->SupportNonVGA = TRUE;
>
> > > + pDriverCaps->SupportNonVGA = m_pHWDevice->IsBIOSCompatible();
>
> > >
>
> > > DbgPrint(TRACE_LEVEL_VERBOSE, ("<--- %s 1\n", __FUNCTION__));
>
> > > return STATUS_SUCCESS;
>
> > > diff --git a/qxldod/QxlDod.h b/qxldod/QxlDod.h
>
> > > index 4df4c61..8df1fcf 100755
>
> > > --- a/qxldod/QxlDod.h
>
> > > +++ b/qxldod/QxlDod.h
>
> > > @@ -263,6 +263,7 @@ public:
>
> > > virtual NTSTATUS Escape(_In_ CONST DXGKARG_ESCAPE* pEscap) = 0;
>
> > > NTSTATUS AcquireDisplayInfo(DXGK_DISPLAY_INFORMATION& DispInfo);
>
> > > ULONG GetId(void) { return m_Id; }
>
> > > + virtual BOOLEAN IsBIOSCompatible() { return TRUE; }
>
> > > protected:
>
> > > virtual NTSTATUS GetModeList(DXGK_DISPLAY_INFORMATION* pDispInfo) = 0;
>
> > > protected:
>
> > > @@ -480,6 +481,7 @@ public:
>
> > > NTSTATUS SetPointerShape(_In_ CONST DXGKARG_SETPOINTERSHAPE*
>
> > > pSetPointerShape);
>
> > > NTSTATUS SetPointerPosition(_In_ CONST DXGKARG_SETPOINTERPOSITION*
>
> > > pSetPointerPosition);
>
> > > NTSTATUS Escape(_In_ CONST DXGKARG_ESCAPE* pEscap);
>
> > > + BOOLEAN IsBIOSCompatible() { return FALSE; }
>
> > > protected:
>
> > > NTSTATUS GetModeList(DXGK_DISPLAY_INFORMATION* pDispInfo);
>
> > > VOID BltBits (BLT_INFO* pDst,
>
> > Why you used IsBIOSCompatible name instead of IsVGACompatible ?
>
> > Frediano
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/spice-devel/attachments/20170126/faec4a8d/attachment.html>
More information about the Spice-devel
mailing list