summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2011-07-31display/surface: FreeSurfaceInfo: ignore double freesAlon Levy1-1/+7
Cc: Yonit Halperin <yhalperi@redhat.com>
2011-07-31display/surface: GetSurfaceId: return -1 if \!surf->dhsurfAlon Levy1-0/+3
Cc: Yonit Halperin <yhalperi@redhat.com>
2011-07-31display/surface: add QXL_SURFACE_HOOKS defineAlon Levy2-8/+16
Cc: Yonit Halperin <yhalperi@redhat.com>
2011-07-31display/res: add a debug print level 9Alon Levy1-0/+2
2011-07-31display/res: __AllocMem: verbose debugging (log_level 12)Alon Levy1-2/+9
Cc: Yonit Halperin <yhalperi@redhat.com>
2011-07-31display/res: add helpers for clearing device memoryAlon Levy2-22/+86
Refactors InitResources code called upon DrvEnableSurface so it can later be called from AssertModeEnable. Introduces three helpers: EmptyReleaseRing - no vmexit, goes over release ring and empties it all (as opposed to OOM behavior that empties 50 resources). InitDeviceMemoryResources - resets anything on the device memory (devram and vram pci bars). ReleaseCacheDeviceMemoryResources - helper for clearing the cache (which points to devram QXLImage's) Cc: Yonit Halperin <yhalperi@redhat.com>
2011-07-31display/res: make (Cursor|Palette)CacheRemove always release the objectYonit Halperin1-15/+30
even if it is not found in the cache (which is an error)
2011-07-31display/res: substitute CursorCacheRemove false "break" with "return"Yonit Halperin1-1/+1
2011-07-31display/*: s/FreeSurface/FreeSurfaceInfo/Alon Levy3-3/+3
2011-07-31display: add a few debug prints (level=3)Alon Levy2-0/+4
2011-07-31display/res: fix typo in debug printAlon Levy1-1/+1
2011-07-31(mp+dd) whitespace cleanupAlon Levy3-5/+5
2011-07-31driver/res: add debugging prints of released resources typesAlon Levy1-0/+89
2011-07-31display/driver: DisableQXLPrimarySurface: add hide_mouse parameter (reused ↵Alon Levy1-7/+8
in DrvAssertModeDisable later) Cc: Yonit Halperin <yhalperi@redhat.com>
2011-07-31display/*: add debug helpers DUMP_VRAM_MSPACE and DUMP_DEVRAM_MSPACEAlon Levy3-6/+34
changes the passed user pointer to mspace from NULL to a proper pdev, so it will be able to print using QXL_IO_LOG.
2011-07-31display/driver: add DebugCountAliveSurfacesAlon Levy1-0/+31
Disabled if no DBG, and uses loglevel == 1
2011-07-31display/{driver,surface}: use pdev in some DEBUG_PRINTsAlon Levy2-19/+20
2011-07-31display/mspace: fix mspace_max_footprint and mspace_footprintAlon Levy1-2/+4
2011-07-31miniport/qxl: raise loglevel for mode printsAlon Levy1-2/+2
2011-07-31miniport/qxl: SetVideoModeInfo: pass QXLExtension for debug printsAlon Levy1-3/+3
2011-07-31miniport/qxl: disable DBG zap of video ram on mapAlon Levy1-0/+2
2011-07-31miniport: pass dev as first parameter of DEBUG_PRINT instead of 0Alon Levy1-91/+93
2011-07-31miniport/qxl: add DebugZeroDeviceMemory and use in DBG for hibernate andAlon Levy1-4/+32
We zero the memory explicitly for debugging purposes when going to sleep to ensure the return path doesn't rely on any initialization done before. SetPowerState slightly refactored in the process.
2011-07-31miniport/qxl: implement SetPowerState:VideoPowerOnAlon Levy1-2/+11
2011-07-31miniport/qxl: store vram_start on video memory map for later debug usageAlon Levy1-0/+3
2011-07-31miniport/*: use QXL_IO_LOG with internal snprintfAlon Levy5-7/+762
snprintf is Copyright Patrick Powell 1995 (with more changes, see miniport/minimal_snprintf.c starting comment). Implements a DebugPrint similar to the one in display, using QXL_IO_LOG with the buffer on the pci devram bar at ram->log_buf, and log_level taken from there as well (set by qemu via guestdebug parameter to the qxl device). Allows for easier debugging of the miniport. Compiled out for release (free) builds where DBG is not defined.
2011-07-31don't create a surface if vram mspace is unmappedAlon Levy1-1/+1
2011-07-31qxl_driver.h: bump QXL_DRIVER_INFO_VERSION (added pci_revision, flush_* ports)Alon Levy1-1/+1
2011-07-31miniport+display: export FLUSH_{SURFACES,RELEASE} ports for use by ↵Alon Levy4-0/+10
AssertModeEnable Revision 3 (V10) of the qxl device supports these added io ports which make sleep, resolution change and logout simpler to implement with less vmexits from pov of the driver.
2011-07-31asynchronous io port support (introduced in revision 3 of qxl device)Alon Levy7-35/+140
Fixes same issue in RHBZ#700134, but for a windows guest. Requires a revision 3 pci device, that will be introduced with qemu patches. If the revision is 2 the old behavior is maintained, namely using the non asynchronous io ports. qxl revision 3 (QXL_REVISION_V10) gains support for async io operations for UPDATE_AREA CREATE_PRIMARY DESTROY_PRIMARY DESTROY_SURFACE_WAIT (not used currently, just exported) DESTROY_SURFACES use that if the revision is 3 or higher. Async io ports let qemu complete the io without blocking on spice, and issue an interrupt when the operation started by the io write is complete. This also means less time when the qemu global mutex is held.
2011-07-31export pci revision from miniport to displayAlon Levy4-0/+9
2011-07-31miniport/qxl.inf: support revision >= 2Alon Levy1-4/+4
remove requirement of revision in qxl.inf, the Prob function will still error out if revision is 1.
2011-06-20display/driver: DebugPrintV: check for pdev->Res before dereferencing itAlon Levy1-1/+1
2011-06-20display/surface: CreateDeviceBitmap: remove redundant FreeSurfaceAlon Levy1-1/+0
on error2 path, if we failed QXLGetSurface, we free the surface info but then the caller (DrvCreateDeviceBitmap) frees it again. In addition, we cannot free the SurfaceInfo since it is the handle given to GDI and is accessed on callback from EngDestroySurface (which is called immediatelly after in the same error path).
2011-06-20treewide: staticfy some functions, small indentation fixesAlon Levy5-16/+12
2011-06-20display/res: better error message for FreeMem assertAlon Levy1-2/+9
2011-06-20display/driver: DebugPrint: check for log_level being set (allow using ↵Alon Levy1-1/+1
DebugPrint with pdev early)
2011-06-20display/res: turn two asserts in CursorCacheRemove to debug printsAlon Levy1-2/+5
In Free build this is defined out anyway, but in checked build this assert triggers, so change it to a debug print (pending investigation on why someone thought at some point it should never happen). The asserts were on: cursor->unique != 0 function end not reached
2011-06-20display: fix broken debug in checkedAlon Levy3-9/+7
The dropped ASSERTS in GetCosmeticAttr contain undefined allcaps defines, so dropping them. The rest are mostly moved structs that didn't update the ASSERT contents.
2011-06-20display: use WAIT_FOR_EVENT everywhereAlon Levy2-33/+6
2011-04-07display/res: fix ie9 renderingAlon Levy1-6/+2
Internet Explorer 9 renders cursors and other things by reusing the same SURFOBJ (i.e. surfobj->iUniq is constant) but changing the pallete. We were wrongly ignoring the pallette's iUniq because the XO_TABLE flag was not set. That flag should not be checked when calculating the key for our cache. When that flag is ignored we correctly calculate a key that uses both the surf->iUniq and the colortrans->iUniq together (64 bit from two 32 bit values).
2011-03-24sync miniport and driver versionsAlon Levy2-4/+4
The version of the miniport was 1.3.0.0 while the driver had 1.4.1.1 Different versions between them lead to confusion, better to sync them.
2011-03-24driver: allowed modes: remove limit of 480 <= {X,Y} <= 2000Alon Levy2-5/+3
Later todo is to check that there is available video memory for this, but that requires either access to PDev or probably dynamically checking anyway to make sure we actually fit. Another option is to leave that check in the host (when we do a IO_SETMODE) Bumping version to 1.4.1.1 Tested with winxp 32 bit only.
2011-02-02spice: windows qxl drivers: support x64 buildArnon Gilboa13-73/+101
-fix types & casts for correctness in x64 -add #ifndef _WIN64 for all the SSE2/FPU/fast_memcpy stuff -miniport/makefile: remove IFNDEF AMD64 to enable x64 build -miniport/qxl.inf: add x64 support
2010-09-29Bump version to 1.4.1.0 for 0.6.1 release0.6.1Alexander Larsson2-3/+3
2010-09-20Protect palette cache agains concurrent accessAlexander Larsson2-0/+15
2010-09-20Protect cursor cache against concurrent accessAlexander Larsson2-1/+18
2010-09-20Protect image cache from concurrent accessAlexander Larsson2-10/+45
2010-09-20Fix typos Chach -> CacheAlexander Larsson1-6/+6
2010-09-20Prepend QXL to public function CheckIfCacheImageAlexander Larsson3-3/+3