In Windows guest, if we trigger a bluescreen, Windows will reset GPU to VGA
mode, otherwise the bluescreen will not shown.
Signed-off-by: Qi Zhou <atmgnd@outlook.com>
It is valid if position of cursor is negative(not hotspot coordinates). for
example: precision section, resize, move, north east arrow...
Signed-off-by: Qi Zhou <atmgnd@outlook.com>
Acked-by: Frediano Ziglio <freddy77@gmail.com>
https://bugzilla.redhat.com/show_bug.cgi?id=1791804
The remapping will work only when the driver controls
the placement of drawn pointer, i.e. when the input
device in VM is usb-mouse and the Spice Agent is not
active.
Signed-off-by: Yuri Benditovich <yuri.benditovich@daynix.com>
Acked-by: Marek Kedzierski <mkedzier@redhat.com>
https://bugzilla.redhat.com/show_bug.cgi?id=1791804
Currently the screen can be shown as Landscape and
Portrait (90 deg. rotation). Allowing also Flipped
Portrait (270 deg. rotation) and Flipped Landscape
(180 deg).
Signed-off-by: Yuri Benditovich <yuri.benditovich@daynix.com>
Acked-by: Marek Kedzierski <mkedzier@redhat.com>
https://bugzilla.redhat.com/show_bug.cgi?id=1758524
Examples are displays 320*200 and 800*480
Signed-off-by: Yuri Benditovich <yuri.benditovich@daynix.com>
Acked-by: Marek Kedzierski <mkedzier@redhat.com>
On return from S3 the driver may receive failure when
calls DxgkCbAcquirePostDisplayOwnership. In general the
driver is not expected to use this method when returns
from S3 but it is not simple to distinguish between S3
and S4 power transition (possible, due to hybrid sleep).
Current commit avoids returning error on power transition
and obtains best known default video mode info instead.
Signed-off-by: Yuri Benditovich <yuri.benditovich@daynix.com>
Acked-by: Marek Kedzierski <mkedzier@redhat.com>
Even if initial display resolution is not available at driver start, try
to find it in the registry. Then the driver can prevent black screen
on uninstall/disable also when it was installed on UEFI machine after
the production driver 0.18 which did not report valid video mode.
Signed-off-by: Yuri Benditovich <yuri.benditovich@daynix.com>
Acked-by: Marek Kedzierski <mkedzier@redhat.com>
Setting this flag on this command cause some performance issue.
When the server see this flag it updates the frame buffer and copy
part of it in a new allocated image. However for this command the
image is not used wasting only CPU and memory.
Also the frame buffer update causes the elimination optimisation
to be less effective causing more network usage.
Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Yuri Benditovich <yuri.benditovich@daynix.com>
Limited the installation of the driver to Windows 8 and up
in order to prevent false driver installation on unsupported OSes
which lead to BSODs.
Signed-off-by: Basil Salman <basil@daynix.com>
Signed-off-by: Sameeh Jubran <sameeh@daynix.com>
Acked-by: Frediano Ziglio <fziglio@redhat.com>
QxlDodCollectTrace.bat intended for recording of binary traces
in end-user environment (end-user runs it when instructed).
It uses built-in Windows ability of collecting ETW data.
QxlDodParseTrace.bat is to be used by developer to convert
received binary traces to formatted text.
Signed-off-by: Yuri Benditovich <yuri.benditovich@daynix.com>
Acked-by: Frediano Ziglio <fziglio@redhat.com>
Add ability to produce ETW (Event Tracing for Windows) to release
version of the driver to be able to record binary traces in case
of problem in customer environment for further analysis.
Logging of debug build is not changed.
Signed-off-by: Yuri Benditovich <yuri.benditovich@daynix.com>
Acked-by: Frediano Ziglio <fziglio@redhat.com>
Fixed wrong formats of printouts producing errors with WPP.
All fixed format strings were wrong mainly due to incorrect
format for pointers.
Signed-off-by: Yuri Benditovich <yuri.benditovich@daynix.com>
Acked-by: Christophe Fergeau <cfergeau@redhat.com>
This patch introduces Appveyor CI configuration file.
Having this patch pushed and qxl-wddm-dod repository
registered at Appveyor, every push or merge request will
be automatically built on their servers.
Signed-off-by: Dmitry Fleytman <dmitry@daynix.com>
Acked-by: Frediano Ziglio <fziglio@redhat.com>
In case the device initializes 4 memory bars, the driver maps
physical memory of bar 4 and never unmaps it. Fixing it by
immediate unmap of unused memory bars.
Signed-off-by: Yuri Benditovich <yuri.benditovich@daynix.com>
Acked-by: Frediano Ziglio <fziglio@redhat.com>
https://bugzilla.redhat.com/show_bug.cgi?id=1454866
Due to wrong addresses passed to class driver, it never does
unmapping of physical memory, causing a leak of virtual address range.
On x86 systems the device fails to start due to failure to
map physical memory range after 10-50 cycles of disable-enable.
Signed-off-by: Yuri Benditovich <yuri.benditovich@daynix.com>
Acked-by: Frediano Ziglio <fziglio@redhat.com>
Upon change of display mode the driver waits until all the
queued drawables pushed to the host or discarded. This eliminates
server warnings "rendering incorrect" in "get_drawable" when the
drawable command was created by guest driver just before change
of display mode and posted to the server during or after the change.
This patch and comments are heavily based on a patch sent by
Yuri Benditovich (with serialization code completely changed and
added generation to discard pending commands on old surface).
Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Yuri Benditovich <yuri.benditovich@daynix.com>
As GetModeInfo is also inline there is no reason the derived class
could redefine the array anyway.
Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Yuri Benditovich <yuri.benditovich@daynix.com>
The check is done already by C++.
The assignment was removed as was just assigning a local variable.
Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Pavel Grunt <pgrunt@redhat.com>
If the memory was requested from VRAM area but finally allocated
from DEVRAM, set memory space variable for correct verification
of allocated pointer
Signed-off-by: Yuri Benditovich <yuri.benditovich@daynix.com>
Acked-by: Frediano Ziglio <fziglio@redhat.com>
Previous Windows drivers use mainly DEVRAM so in some environments
(like RHEV-M 4.0) VRAM is really limited.
This patch use DEVRAM as a fallback to avoid getting out of memory
conditions too earlier in such environments.
Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Yuri Benditovich <yuri.benditovich@daynix.com>
Don't use the old style _inline specifier.
Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Yuri Benditovich <yuri.benditovich@daynix.com>
This make easier to change allocation of memory using different
memory Bars.
Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Yuri Benditovich <yuri.benditovich@daynix.com>
As VA addresses are used as pointers there's no need to handle
them as 64-bit integer (which make the code more complicated)
Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Yuri Benditovich <yuri.benditovich@daynix.com>