summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2023-02-14Reset QXL to VGA modeHEADmasterqi zhou1-1/+1
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>
2022-09-06Unhide cursor if pos_x is negativeqi zhou1-1/+1
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>
2020-11-19Update changelog for v0.21v0.21Yuri Benditovich1-0/+3
Signed-off-by: Yuri Benditovich <yuri.benditovich@daynix.com>
2020-07-15qxl-wddm-dod: reduce verbosity of stampinf in buildYuri Benditovich1-2/+2
Suppress unneeded stampinf logs during driver build. Signed-off-by: Yuri Benditovich <yuri.benditovich@daynix.com> Acked-by: Frediano Ziglio <fziglio@redhat.com>
2020-07-15qxl-wddm-dod: fix behavior on v5 deviceYuri Benditovich2-1/+5
https://bugzilla.redhat.com/show_bug.cgi?id=1851845 v5 device requires explicit reset to switch to VGA mode. Signed-off-by: Yuri Benditovich <yuri.benditovich@daynix.com> Acked-by: Frediano Ziglio <fziglio@redhat.com>
2020-03-04Updated Changelog for 0.20v0.20Yuri Benditovich1-1/+6
Signed-off-by: Yuri Benditovich <yuri.benditovich@daynix.com>
2020-03-02Remap the pointer in case of rotated screenYuri Benditovich1-1/+25
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>
2020-03-02Enable screen rotation of 180 and 270 degreesYuri Benditovich1-2/+6
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>
2020-03-02qxl-wddm-dod: Allow additional low resolutionYuri Benditovich1-2/+2
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>
2019-12-09add Wix script for driver installationYuri Benditovich1-0/+94
Signed-off-by: Yuri Benditovich <yuri.benditovich@daynix.com>
2019-04-11Updated Changelog for v0.19v0.19Yuri Benditovich1-0/+8
Signed-off-by: Yuri Benditovich <yuri.benditovich@daynix.com>
2019-03-11qxl-wddm-dod: prevent failure of power on transitionYuri Benditovich1-2/+3
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>
2019-02-12qxl-wddm-dod: Load best know defaults for video mode at driver's startYuri Benditovich1-5/+32
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>
2019-01-18Fix for black screen on driver uninstall on ovmf platformYuri Benditovich2-2/+51
https://bugzilla.redhat.com/show_bug.cgi?id=1661147 If display miniport driver does not pass valid display info to the basic display driver on disable/uninstall, the basic display driver raises run-time error and stays with yellow bang. This behavior is specific to UEFI machines. Reference: https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/content/dispmprt/nc-dispmprt-dxgkddi_stop_device_and_release_post_display_ownership Signed-off-by: Yuri Benditovich <yuri.benditovich@daynix.com> Reviewed-by: Christophe Fergeau <cfergeau@redhat.com> Acked-by: Frediano Ziglio <fziglio@redhat.com>
2018-06-26Do not set self_bitmap flag for QXL_DRAW_COPY commandFrediano Ziglio1-3/+0
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>
2018-05-21Add support for resolution 800x600Yuri Benditovich2-10/+12
https://bugzilla.redhat.com/show_bug.cgi?id=1477492 https://docs.microsoft.com/en-us/windows-hardware/design/minimum/minimum-hardware-requirements-overview requires 800x600 to be supported. Signed-off-by: Yuri Benditovich <yuri.benditovich@daynix.com> Acked-by: Frediano Ziglio <fziglio@redhat.com>
2018-04-23Prevent installation on OSes earlier than Windows 8Basil Salman1-2/+2
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>
2017-07-09qxl-wddm-dod: Add scripts for ETW recording and parsingyuri.benditovich@daynix.com2-0/+41
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>
2017-07-09qxl-wddm-dod: Support ETW for release versionyuri.benditovich@daynix.com4-1/+15
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>
2017-07-09qxl-wddm-dod: add trace definition file for WPPyuri.benditovich@daynix.com2-0/+59
Added file with Windows trace preprocessor definitions, required for generating trace messages. Signed-off-by: Yuri Benditovich <yuri.benditovich@daynix.com> Acked-by: Frediano Ziglio <fziglio@redhat.com>
2017-07-09qxl-wddm-dod: Correct format of printoutsyuri.benditovich@daynix.com2-52/+52
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>
2017-06-13ci: Integrate with AppveyorDmitry Fleytman1-0/+18
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>
2017-05-28qxl-wddm-dod: Updated Changelog for v0.18v0.18Yuri Benditovich1-0/+3
2017-05-26qxl-wddm-dod: Debug printouts of memory mappingyuri.benditovich@daynix.com1-2/+2
Print error case on proper level and fix typos. Signed-off-by: Yuri Benditovich <yuri.benditovich@daynix.com> Acked-by: Frediano Ziglio <fziglio@redhat.com>
2017-05-26qxl-wddm-dod: Prevent potential memory leak in class driveryuri.benditovich@daynix.com1-0/+2
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>
2017-05-26qxl-wddm-dod: Fix unmapping of physical memoryyuri.benditovich@daynix.com1-4/+4
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>
2017-05-15qxl-wddm-dod: Updated Changelog for v0.17v0.17Yuri Benditovich1-0/+8
2017-05-05Synchronize display mode change and pushing drawablesFrediano Ziglio2-27/+92
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>
2017-05-05Move code for discarding drawable to separate procedureYuri Benditovich2-7/+15
Signed-off-by: Yuri Benditovich <yuri.benditovich@daynix.com> Acked-by: Frediano Ziglio <fziglio@redhat.com>
2017-04-12Move m_CustomMode field in QxlDeviceFrediano Ziglio1-1/+2
Only used by this class. Signed-off-by: Frediano Ziglio <fziglio@redhat.com> Acked-by: Yuri Benditovich <yuri.benditovich@daynix.com>
2017-04-12Inline GetModeCountFrediano Ziglio1-3/+1
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>
2017-04-12Use C++ style for allocations for m_ModeInfo fieldFrediano Ziglio1-6/+6
Signed-off-by: Frediano Ziglio <fziglio@redhat.com> Acked-by: Yuri Benditovich <yuri.benditovich@daynix.com>
2017-04-12Use C++ style for allocations for m_ModeNumbers fieldFrediano Ziglio1-6/+6
Signed-off-by: Frediano Ziglio <fziglio@redhat.com> Acked-by: Yuri Benditovich <yuri.benditovich@daynix.com>
2017-04-12Make clear a QXLReleaseInfo structure is usedFrediano Ziglio1-1/+1
Signed-off-by: Frediano Ziglio <fziglio@redhat.com> Acked-by: Yuri Benditovich <yuri.benditovich@daynix.com>
2017-04-12Fix indentationFrediano Ziglio1-3/+3
Signed-off-by: Frediano Ziglio <fziglio@redhat.com> Acked-by: Yuri Benditovich <yuri.benditovich@daynix.com>
2017-04-12Remove unused UpdateArea methodFrediano Ziglio2-12/+0
Signed-off-by: Frediano Ziglio <fziglio@redhat.com> Acked-by: Yuri Benditovich <yuri.benditovich@daynix.com>
2017-04-12Remove generation field from MemSlotFrediano Ziglio2-3/+1
Not used beside during initialization of MemSlot itself Signed-off-by: Frediano Ziglio <fziglio@redhat.com> Acked-by: Pavel Grunt <pgrunt@redhat.com>
2017-04-12Remove unused EmptyReleaseRing methodFrediano Ziglio2-12/+0
Signed-off-by: Frediano Ziglio <fziglio@redhat.com> Acked-by: Yuri Benditovich <yuri.benditovich@daynix.com>
2017-04-12Make DebugPrintFuncSerial staticFrediano Ziglio2-14/+11
Signed-off-by: Frediano Ziglio <fziglio@redhat.com> Acked-by: Yuri Benditovich <yuri.benditovich@daynix.com>
2017-04-12Remove unused DebugPrintFunc functionFrediano Ziglio2-8/+0
Signed-off-by: Frediano Ziglio <fziglio@redhat.com> Acked-by: Yuri Benditovich <yuri.benditovich@daynix.com>
2017-04-12Do not check for NULL before calling deleteFrediano Ziglio1-5/+1
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>
2017-04-12Avoid assert printout upon fallback of memory allocationYuri Benditovich1-2/+5
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>
2017-04-12Use DEVRAM if no more space is available in VRAMFrediano Ziglio1-0/+2
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>
2017-04-12Allocate commands on Bar0Frediano Ziglio1-2/+4
This is required by Qemu for migration Signed-off-by: Frediano Ziglio <fziglio@redhat.com> Acked-by: Yuri Benditovich <yuri.benditovich@daynix.com>
2017-04-12Use inline attribute for VA and PAFrediano Ziglio2-4/+4
Don't use the old style _inline specifier. Signed-off-by: Frediano Ziglio <fziglio@redhat.com> Acked-by: Yuri Benditovich <yuri.benditovich@daynix.com>
2017-04-12Compute dynamically slot_id in PA and VA functionsFrediano Ziglio2-25/+27
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>
2017-04-12Use normal pointer for VA addressesFrediano Ziglio2-16/+14
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>
2017-04-12Allocate m_MemSlots statically inside QxlDeviceFrediano Ziglio2-29/+17
There were always 2 slots used so make no sense to allocate always dynamically. Also in this way m_MainMemSlot and m_SurfaceMemSlot become constant making the code slightly smaller. Signed-off-by: Frediano Ziglio <fziglio@redhat.com> Acked-by: Yuri Benditovich <yuri.benditovich@daynix.com>
2017-04-12Remove m_NumMemSlots memberFrediano Ziglio2-3/+1
Only used once Signed-off-by: Frediano Ziglio <fziglio@redhat.com> Acked-by: Yuri Benditovich <yuri.benditovich@daynix.com>
2017-04-12Compute automatically memory space in FreeMemFrediano Ziglio2-21/+24
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>