ChangeLog | 721 ++++++++++++++++++++++++++++++++++++++++++++ README.xspice | 4 configure.ac | 15 debian/changelog | 6 src/Makefile.am | 3 src/compat-api.h | 99 ++++++ src/mspace.c | 44 ++ src/mspace.h | 10 src/qxl.h | 26 + src/qxl_cursor.c | 3 src/qxl_driver.c | 237 +++++++++----- src/qxl_image.c | 4 src/qxl_mem.c | 59 +++ src/qxl_option_helpers.c | 4 src/qxl_ring.c | 4 src/qxl_surface.c | 123 ++++++- src/spiceqxl_display.c | 7 src/spiceqxl_driver.c | 3 src/spiceqxl_inputs.c | 3 src/spiceqxl_io_port.c | 11 src/spiceqxl_main_loop.c | 20 + src/spiceqxl_spice_server.c | 3 src/uxa/uxa-accel.c | 2 src/uxa/uxa-damage.c | 1 src/uxa/uxa-glyphs.c | 12 src/uxa/uxa-priv.h | 3 src/uxa/uxa.c | 18 - 27 files changed, 1288 insertions(+), 157 deletions(-)
New commits: commit 6067a058c4a56391240f80ff8a38433e39e37201 Author: Maarten Lankhorst <maarten.lankho...@canonical.com> Date: Thu Jul 19 11:27:19 2012 +0200 New upstream release. diff --git a/debian/changelog b/debian/changelog index 6bb3bce..047084a 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +xserver-xorg-video-qxl (0.0.18~gitde66207-1) UNRELEASED; urgency=low + + * New upstream release. + + -- Maarten Lankhorst <maarten.lankho...@canonical.com> Thu, 19 Jul 2012 11:25:04 +0200 + xserver-xorg-video-qxl (0.0.17-2) unstable; urgency=low * Enable Xspice (Closes: 668537) commit 208d03ae96ab7a7b4087015d739145643bbf1fba Author: Maarten Lankhorst <maarten.lankho...@canonical.com> Date: Thu Jul 19 11:27:12 2012 +0200 bump changelog diff --git a/ChangeLog b/ChangeLog index 669c70e..6899b64 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,724 @@ +commit de66207883efc1f32e96907c3e64f17b2bdf6c3e +Author: Alon Levy <al...@redhat.com> +Date: Sun Jul 8 14:05:08 2012 +0300 + + qxl_driver/qxl_switch_mode: destroy is not idempotent + +commit 6267b1a56f6104409fcb970eddc4ea9606421331 +Author: Alon Levy <al...@redhat.com> +Date: Wed Mar 7 14:30:58 2012 +0200 + + spiceqxl_display: reformat & rephrase Xspice comment + +commit e0f301fc0512502542573b3f8dd9452f5a7ea6e1 +Author: Jeremy White <jwh...@codeweavers.com> +Date: Wed Jun 13 17:04:12 2012 -0500 + + Compute totalPixmapSize using the same logic as in dix/pixmap.c, rather than hard coding 100. + + This was found while building with a modified X server; one with a PixmapRec size of 224, not 64 :-/. + +commit 6832c0fd917556c52f56f8e82706a83942ed3dc1 +Author: Jeremy White <jwh...@codeweavers.com> +Date: Sun Jun 3 10:28:05 2012 -0500 + + Actually process write watches in the wakeup handler + + My apologies for the churn; this is, I think, a slightly better patch than + my previous patch, 'Process watches even when there is no X activity', in that + it avoids doing an extra polling select when we're idle. + +commit 72a0def8114073c0051f3df880f731d3968cb344 +Author: Alon Levy <al...@redhat.com> +Date: Wed May 30 13:44:40 2012 +0300 + + qxl_switch_mode: don't evacuate, just recreate primary surface + + In summary, on vt enter we still: + reset + recreate memory slots + clear our mspace allocators + and then do what switch mode below says + + On vt leave we still: + reset (this is redundant since the first VGA access will trigger a + reset on the device side) + + On switch mode however we only: + destroy primary surface + create primary surface (different size) + +commit 8df3eba368e80f60ce815300b85a567a9b02141c +Author: Alon Levy <al...@redhat.com> +Date: Thu May 31 13:04:01 2012 +0300 + + qxl_surface: don't unlink surface 0 + + The primary surface, i.e. qxl->primary, the only surface with id==0, is + allocated in qxl_surface_cache_create_primary with prev==next==NULL. + Unlinking it was producing a wrong cache->free_surfaces == NULL. This + was not a problem because unlinking the primary only happened in + switch_host, which then called surface_cache_init. In a following commit + switch_host is simplified to destroy-primary+create-primary, so this bug + needs to be fixed first to avoid leaking surfaces and reaching a no + surface available situation. + +commit 22157d4750f9090927d2e3473aa3d3a4f5232792 +Author: Alon Levy <al...@redhat.com> +Date: Thu May 31 13:03:54 2012 +0300 + + qxl_surface: add DEBUG_SURFACE_LIFECYCLE helpers + +commit 0f817bb4e1b4e33ef50c0399c92f1cc091840ef5 +Author: Alon Levy <al...@redhat.com> +Date: Tue May 29 12:25:12 2012 +0300 + + io: add qxl_io_destroy_primary + +commit 326b80974b4080ed7519801f7d1c96077f5ae0b9 +Author: Alon Levy <al...@redhat.com> +Date: Wed May 23 20:50:46 2012 +0300 + + prefix io with qxl_io, add several + +commit 73981e02c90cc81dd462f9fc2a00b5b11a9eab00 +Author: Alon Levy <al...@redhat.com> +Date: Wed May 23 20:52:48 2012 +0300 + + qxl.h: add device_primary tri state UNDEFINED/NONE/CREATED + +commit b600edc48270a4a368add11ec02e6d365d5da60d +Author: Alon Levy <al...@redhat.com> +Date: Thu May 24 00:08:38 2012 +0300 + + qxl_surface: logging: add function name to ErrorF + +commit 3a87e765d91a26ead2cfc5ddad1ba4f3e7d21922 +Author: Alon Levy <al...@redhat.com> +Date: Thu May 24 11:00:49 2012 +0300 + + qxl_surface: cosmetics + +commit 60478640a6c4d74c44fdf67350be6e180960cf5f +Author: Alon Levy <al...@redhat.com> +Date: Wed May 23 21:23:26 2012 +0300 + + qxl_pre_init: memset qxl struct + +commit 9d929ae1d1bb2e7f03221fcc4d70e761b6ff9242 +Author: Alon Levy <al...@redhat.com> +Date: Wed May 23 20:46:34 2012 +0300 + + qxl_driver: abort on mspace error, don't spin (default abort function) + +commit 6aa3ceb2d3f25726424b03a68ef949deadf7125a +Author: Alon Levy <al...@redhat.com> +Date: Wed May 23 20:44:06 2012 +0300 + + mspace: add mspace_malloc_stats_return + +commit 5e505dc6572ee29d0ebe912a8160a8e09bfb5d3e +Author: Alon Levy <al...@redhat.com> +Date: Tue May 29 13:46:34 2012 +0300 + + qxl_leave_vt: change outb to ioport_write (easier to grep / breakpoint on a single point) + +commit 67f86dc1e824d00a06bdc51ba4c3e88cfbd82292 +Author: Alon Levy <al...@redhat.com> +Date: Tue May 29 13:45:29 2012 +0300 + + rename qxl_reset to qxl_reset_and_create_mem_slots + +commit 21c1d576925e561551b91b44b0d286f0bdc689c4 +Author: Alon Levy <al...@redhat.com> +Date: Wed May 23 20:54:44 2012 +0300 + + qxl_mem: add debug flags, simple accounting and valgrind enabled + + adds preprocessor definitions DEBUG_QXL_MEM & DEBUG_QXL_MEM_VERBOSE + +commit a313b5ef1b5b6dda1e6c0ab47f458d692a5462f7 +Author: Alon Levy <al...@redhat.com> +Date: Wed May 30 10:46:54 2012 +0300 + + qxl_surface: handle destroyed pixmaps while evacuated + + Prevent access to freed memory when: + 1. qxl_leave_vt/qxl_surface_cache_evacuate_all freed cache->all_surfaces + 2. ProcRenderDispatch/damageDestroyPixmap/qxl_destroy_pixmap/qxl_surface_kill + access a surface that pointed inside the all_surfaces array + + Solution in this patch: + 1. never free all_surfaces + 2. add an 'evacuated' field per surface, initialized to NULL, set during + evacuation. + 3. on qxl_surface_kill, if surface->evacuated is set, don't destroy the + surface (it is already destroyed by this point via a reset in + qxl_surface_cache_evacuate_all's caller, qxl_leave_vt), just unref the + host pixmap, free the evacuated_surface_t and unlink it from the + evacuated linked list, so it isn't recreated later on + qxl_surface_cache_replace_all. + +commit c47ebff71878458ff6157aec7252999a6578fb97 +Author: Alon Levy <al...@redhat.com> +Date: Wed May 30 10:09:47 2012 +0300 + + qxl_driver: hide cursors on vt switch + + This is not enough to prevent any qxl_destroy_pixmap call during vt + switch, but it prevents those triggered by CursorDisplayCursor. + + Note: a matching xf86_show_cursors call doesn't hurt, but is not + required, so not adding it. + + It is still possible to access freed memory by the following trigger: + + ==4416== Invalid read of size 8 + ==4416== at 0x5D15EC1: unlink_surface (qxl_surface.c:685) + ==4416== by 0x5D162F9: qxl_surface_kill (qxl_surface.c:799) + ==4416== by 0x5D12688: qxl_destroy_pixmap (qxl_driver.c:928) + ==4416== by 0x55730B: damageDestroyPixmap (damage.c:1556) + ==4416== by 0x51C77B: ShmDestroyPixmap (shm.c:273) + ==4416== by 0x54591B: FreePicture (picture.c:1465) + ==4416== by 0x467A32: doFreeResource (resource.c:873) + ==4416== by 0x467B7E: FreeResource (resource.c:903) + ==4416== by 0x547742: ProcRenderFreePicture (render.c:661) + ==4416== by 0x54B13A: ProcRenderDispatch (render.c:1988) + ==4416== by 0x430670: Dispatch (dispatch.c:428) + ==4416== by 0x492604: main (main.c:288) + ==4416== Address 0x121031e0 is 116,960 bytes inside a block of size 122,880 free'd + ==4416== at 0x4A079AE: free (vg_replace_malloc.c:427) + ==4416== by 0x5D16BDA: qxl_surface_cache_evacuate_all (qxl_surface.c:1060) + ==4416== by 0x5D13078: qxl_leave_vt (qxl_driver.c:1209) + ==4416== by 0x4A4D4F: xf86VTSwitch (xf86Events.c:462) + ==4416== by 0x4A4926: xf86Wakeup (xf86Events.c:285) + ==4416== by 0x43E2E1: WakeupHandler (dixutils.c:421) + ==4416== by 0x488A75: WaitForSomething (WaitFor.c:224) + ==4416== by 0x4303CF: Dispatch (dispatch.c:357) + ==4416== by 0x492604: main (main.c:288) + + This is fixed by a following patch to not free all_surfaces, instead + keeping pointers from it to the evacuated list. + +commit fdf2274c9ff15fc5108b400b71120184d2651a21 +Author: Alon Levy <al...@redhat.com> +Date: Mon May 21 11:31:23 2012 +0300 + + qxl_surface: remove redundant qxl_garbage_collect, qxl_allocnf calls it + +commit b26640c2d24e6094487ea323a08b539d66050d89 +Author: Alon Levy <al...@redhat.com> +Date: Tue May 29 13:47:44 2012 +0300 + + uxa-damage: remove unnecessary include (doesn't fix any warnings) + +commit 8faf24226a20901e7a29019c922359365501ba69 +Author: Alon Levy <al...@redhat.com> +Date: Tue May 29 13:09:46 2012 +0300 + + uxa: remove unnecessary includes, reduces warnings due to duplicate definitions + +commit bb1b5865bc02341cfa1cc0d943fac59077643ea5 +Author: Dave Airlie <airl...@redhat.com> +Date: Wed Jun 6 17:17:09 2012 +0100 + + qxl: fix spice build + + reported by jenkins. + + Signed-off-by: Dave Airlie <airl...@redhat.com> + +commit f1a9c1b33bff038807755824190c69889ef6d794 +Author: Dave Airlie <airl...@redhat.com> +Date: Wed Jun 6 14:19:04 2012 +0100 + + qxl: add API compat for latest X server. + + Signed-off-by: Dave Airlie <airl...@redhat.com> + +commit 40dc75db615c1161c38874c145770b8d77a995ad +Author: Yonit Halperin <yhalp...@redhat.com> +Date: Mon Apr 23 09:04:36 2012 +0300 + + Do not call update_area when lacking device memory + + The QXL_IO_NOTIFY_OOM is intended exactly for handling occurrences of + lacking memory. The spice server tries to first release resources that + are no longer in the current tree (and thus, do not need rendering). + It renders drawables only as a last resort. And even then, + it does not update the whole primary surface, but rather renders + the oldest X drawables. + The call to update_area is redundant, and its effect on performance + is noticeable when playing full screen video. + + Signed-off-by: Yonit Halperin <yhalp...@redhat.com> + +commit 1ad5c8633cc52aef5aa8a58bf529859caa8d1bd9 +Author: Christophe Fergeau <cferg...@redhat.com> +Date: Wed Apr 25 16:18:19 2012 +0200 + + Distribution-agnostic XORG_MACROS_VERSION check message + +commit b3caf8621d798ea3c5140b8adc193121c4c13c4a +Author: Yaniv Kaul <yk...@redhat.com> +Date: Tue Apr 24 13:22:41 2012 +0300 + + Change xorg-macros -> xorg-x11-util-macros in configure error message + + At least in Fedora 17, the correct RPM name is xorg-x11-util-macros + +commit 315c7de54699a883ba91f906ab59985e4e5426c2 +Author: Alon Levy <al...@redhat.com> +Date: Mon Apr 9 12:27:21 2012 +0300 + + qxl_driver: ifdef out qxl_wait_for_io_command if not XSPICE + +commit 5eae282231a7cd727ad3f3576ed0574a29d949b1 +Author: Alon Levy <al...@redhat.com> +Date: Mon Apr 9 12:18:36 2012 +0300 + + qxl_surface.c: fix -Wshadow warning + + qxl_surface.c:735:6: warning: declaration of 'i' shadows a previous + local [-Wshadow] + +commit a4773c508735ec3e9779c46e966a07d388e265dc +Author: Alon Levy <al...@redhat.com> +Date: Wed Apr 4 15:45:12 2012 +0300 + + mspace: no more warnings + +commit 01f77c0c42e2b9058e48a9ac4ae171609119ce12 +Author: Alon Levy <al...@redhat.com> +Date: Wed Apr 4 16:07:47 2012 +0300 + + spiceqxl_io_port: use pointer_to_u64 (fix warning) + +commit aa6cf3db29886ce964b9a5793e7ed0af6f213b57 +Author: Alon Levy <al...@redhat.com> +Date: Wed Apr 4 16:07:29 2012 +0300 + + spiceqxl_io_port: use attribute printf (fix warning) + +commit f7949ea1488223b8fcbfd1cba2d344d811ee62ca +Author: Alon Levy <al...@redhat.com> +Date: Tue Apr 24 12:11:42 2012 +0300 + + qxl_surface: qxl_surface_prepare_access: remove assigned but unused variables + +commit ae50a549d6169d806105a2d6b8220002fda5d9de +Author: Alon Levy <al...@redhat.com> +Date: Fri Apr 6 10:30:12 2012 +0300 + + spiceqxl: Xspice is spelled with a lower s + +commit ea37df4b4bccd4e2b9dbd590607737b18ec11ee9 +Author: Alon Levy <al...@redhat.com> +Date: Sun Apr 15 11:53:51 2012 +0300 + + README.xspice: updpate repository + + Reported by: Michael Tokarev <m...@isrv.corpit.ru> + +commit fe74d8a89534d92a2151ee3ac28de3d5864a874e +Author: Alon Levy <al...@redhat.com> +Date: Thu Mar 8 16:16:20 2012 +0200 + + protect AC_CHECK_FILE for cross compiling + + Signed-off-by: Alon Levy <al...@redhat.com> + +commit 810d92db84d0e11260ec3abc936dacac113fcbba +Author: Dave Airlie <airl...@redhat.com> +Date: Sun Mar 18 20:47:41 2012 +0000 + + qxl: missed one file that needs config.h + +commit 34ccb90f6b635b45080e6e4868314fa80a662fc2 +Author: Dave Airlie <airl...@redhat.com> +Date: Sun Mar 18 20:42:38 2012 +0000 + + qxl: fix config.h usage + + You have to include config.h at top of each C file, not inside a header file. + + Signed-off-by: Dave Airlie <airl...@redhat.com> + +commit b75eed01fa7514c15f4379092a93ecf8478f0b48 +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Thu Mar 15 13:49:52 2012 -0400 + + Version bump to 0.0.17 + +commit c358c7f199bfeb519e08b0903438e43b1afd02c1 +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Thu Mar 15 13:49:42 2012 -0400 + + Add qxl_option_helper.h to Makefile.am + +commit 81bee3d3491ab6b31b0d69207729280e86138d50 +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Thu Mar 15 13:42:04 2012 -0400 + + In qxl_prepare_access(), don't modify the width/height of the pixmap + + The width and height were not properly restored, which caused + GetDrawableInfo() to return bogus results, which caused GNOME shell + crashes. + + Signed-off-by: Soren Sandmann <s...@redhat.com> + +commit 773fbda754de2dd91f8b6bfe754d1aa59368072b +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Wed Mar 14 12:38:03 2012 -0400 + + qxl_surface.c: Remove #if 0'd debug spew + +commit 4724bb7922e1bb193117f13ffbd69fa4f97a29fb +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Fri Mar 9 12:09:17 2012 -0500 + + options: Turn surfaces and caching on by default + +commit babe13196137f339b6f55c6382f7bd1c11100ec2 +Author: Alon Levy <al...@redhat.com> +Date: Thu Feb 16 15:55:21 2012 +0200 + + missed when added qxl_option_helpers.c + +commit 70d0d49b7c7d115f297dae710b9bb62b97fa22d5 +Author: Alon Levy <al...@redhat.com> +Date: Sun Jan 22 19:26:11 2012 +0200 + + replace lookup3 with MurmurHash3 + + See http://code.google.com/p/smhasher/wiki/MurmurHash3 + + Performance quotes from there are 2.5 times what lookup3 can do, for + 32 bit variant, which is what we use: + + Lookup3_x86_32 - 1234 mb/sec + Lookup3_x64_32 - 1265 mb/sec + + MurmurHash3_x86_32 - 3105 mb/sec + + New files are released to the public domain, keeping them that way. + + My own comparison shows the added hash to be ~45% faster then the + existing one, see the tests at + https://gitorious.org/hash_tests/hash_tests + +commit 994ac381a57e7a9ec502371c6aa3f491c1f1165f +Author: Alon Levy <al...@redhat.com> +Date: Fri Feb 3 15:26:44 2012 +0100 + + xspice_keyboard_proc: fix arrow keys + + Not sure yet why the regression with the arrow keys not producing the + right keysym, but it appears that the keycode is correct for up (as an + example), 111, but the keysym being produced was 0xff6c and not the + correct 0xff52. This boiled down to the rules of the default rmlvo being + "base" instead of "evdev". Providing an rmlvo parameter to + InitKeyboardDeviceStruct allows to override that. The chosen + rules = "evdev" + model = "pc105" + layout = "us" + Is the default used by Xephyr from + xorg-x11-server-Xephyr-1.11.99.901-3.20120124.fc17.x86_64 + +commit 8b3c5a5fac297226a467ea15c16cea8e5da51b8f +Author: Alon Levy <al...@redhat.com> +Date: Wed Feb 1 08:45:10 2012 +0200 + + introduce qxl_option_helpers.[ch] + +commit 96349ebb43e7de49b6b561b79d6fff5ada7aa4c7 +Author: Søren Sandmann <s...@redhat.com> +Date: Thu Feb 9 16:54:29 2012 -0500 + + Don't leak the surface when we run out of video memory. + + Running out of video memory would cause send_create_surface() to + return NULL without putting the allocated surface back on the free + list. Fix this by not allocating the surface until after the video + memory is allocated, and, if surface allocation fails, freeing the + video memory. + +commit c5ab0b538bd437e5e4aa86678d12a676c6edd1e8 +Author: Søren Sandmann <s...@redhat.com> +Date: Thu Feb 9 16:51:56 2012 -0500 + + Move check for zero width/height surfaces to qxl_surface_create() + +commit 1a371d76e32b2b3612e37ae15684632c987699b7 +Author: Søren Sandmann <s...@redhat.com> +Date: Tue Feb 7 14:36:05 2012 -0500 + + In qxl_check_copy() accept pixmaps that don't have surfaces + + UXA will correctly fall back to using PutImage if the pixmaps are not + in offscreen memory (ie., they don't have surfaces attached), so there + is no need to return FALSE in qxl_check_copy() just because the + pixmaps don't have surfaces associated with them. + +commit 5a6715a074abb5ab2eb0513038a1ba8bd577239e +Author: Alon Levy <al...@redhat.com> +Date: Tue Jan 31 00:23:27 2012 +0200 + + xf86PciInfo.h is deprecated and unused, drop it + +commit d07c8acc3057cc577a67d04dc8499e2996ed30b4 +Author: Alon Levy <al...@redhat.com> +Date: Tue Jan 31 00:23:09 2012 +0200 + + qxl_image: cleanup qxl_image_create + +commit da1d595ad303b997343df91ebfb70c82c4bbb748 +Author: Alon Levy <al...@redhat.com> +Date: Mon Jan 30 23:17:43 2012 +0200 + + Enable surface and caching option defaults for Xspice + +commit df89dc60feda16de907e93bf7da381873c01644f +Author: Alon Levy <al...@redhat.com> +Date: Mon Jan 30 23:14:32 2012 +0200 + + xspice: remove duplicate declaration (fixes warning) + +commit d6eedbdfbbb2eee8e6ff119dc0c12ff173a1cef6 +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Mon Jan 30 16:15:05 2012 -0500 + + Enable surface and caching options for XSpice too + +commit 4e68645a4d9a84d009b603d908e5b20a47db0724 +Author: Alon Levy <al...@redhat.com> +Date: Sat Jan 28 13:47:20 2012 +0200 + + examples/spiceqxl.xorg.conf.example: fix in vm usage. + + RHBZ #785373 + + workaround vmmouse segfault by disabling udev in + spiceqxl.xorg.conf.example. + We don't really need it anyway since we explicitly specify drivers for + video keyboard and mouse. + +commit 8ab5b7e0faa12bf5aa1575c5fd11230284f68d71 +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Tue Jan 17 11:35:04 2012 -0500 + + Enable caching of images based on the configuration options + +commit 57b5d7a1a20fb4f138131e644251d1a49ede94c8 +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Mon Jan 16 11:11:52 2012 -0500 + + Return NULL from qxl_surface_create() when surfaces are disabled + +commit 6acad24a8df389e72c923e02fedd615e56dfe15b +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Mon Jan 16 10:54:57 2012 -0500 + + Add support for parsing various options + + - EnableImageCache + - EnableFallbackCache + - EnableSurfaces + + EnableImageCache will enable the use of caching for PutImage + requests. EnableFallbackCache will enable the use of caching for image + commands that are the result of fallback rendering. + +commit 1b5a3f606a16fd704cdbd296b29f7dc89faf8471 +Author: Søren Sandmann Pedersen <ssp@l3000.localdomain> +Date: Thu Jan 19 14:56:30 2012 -0500 + + Use u64_to_pointer() instead of a cast to void * + +commit 8aad7d4d95cd095e8e11cabbfde10b5d3b755a72 +Author: Søren Sandmann Pedersen <ssp@localhost.localdomain> +Date: Thu Jan 19 08:18:58 2012 -0500 + + Track damage for PolyLine fallbacks. + + This is a substantial speedup for the Gimp. + +commit c2ae430e572a1c7c8cebb8174482ded743a0b7f2 +Author: Alon Levy <al...@redhat.com> +Date: Tue Jan 17 17:50:18 2012 +0200 + + qxl-driver: call vgaHWSetStdFuncs explicitly + + Previously it was called via vgaHWGetHWRec, since 1.11.99.901 + it is no longer so. The relevant xserver commit: + + 4bd6579188e718654c35f95623fd4772f9e0ef06 + vgahw: Don't default to standard (port space) access routines + + From: Adam Jackson <a...@redhat.com> + +commit 37230939c6ebebac1ee9ce0f3de66a9a22355ab0 +Author: Alon Levy <al...@redhat.com> +Date: Fri Jan 13 17:15:42 2012 +0200 + + build fixes: sched_yield and missing declaration + + From: Adam Jackson <a...@redhat.com> + +commit c02da3f529513fc42afce9185e41852b8ae1407a +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Wed Jan 18 08:40:18 2012 -0500 + + Guard access to "pci" with #ifndef XPSICE + +commit 89f71d1be4a28e7bf0d60e3089b1f28202fb821f +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Tue Jan 17 11:24:29 2012 -0500 + + Fix mis-merge + + qxl_reset() has to be defined before qxl_close_screen(). + +commit 9600e4a0b57693da451f3f5ca61637d0275c3836 +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Wed Oct 5 12:27:27 2011 -0400 + + Reset non-primary device out of CloseScreen(). + + Otherwise, client windows will linger even after the server shuts + down. Don't reset the primary device so that we can preserve the fonts + etc. + +commit e2fad1c9afe55ee9909a3ec8f142d2611f88b3f7 +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Sat Mar 19 12:47:52 2011 -0400 + + If qxl_pre_init() is called without a confScreen, just return FALSE. + + Otherwise, the driver crashes when called from Xorg -configure. + +commit 420876da9eafeece83e4719a469d2e1ce0b13478 +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Tue Aug 9 05:16:56 2011 -0400 + + Transmit images in smaller chunks + + This makes use of the 'chunks' feature of the SPICE protocol to send + images in chunks smaller than 512 * 512 bytes. This reduces the + likelihood of running out of memory when big image are transmitted. + +commit 5da2a6e4999265b717a7fd18039a90edcd9ba941 +Author: Alon Levy <al...@redhat.com> +Date: Sun Dec 18 19:48:57 2011 +0200 + + configure.ac: support autoconf 2.63 + + AC_CHECK_FILE(cond,[not-empty],[]) in autoconf 2.63 produces an empty + else that is illegal for bash, but forgoes the else when given a + AC_CHECK_FILE(cond,[not-empty]). 2.68 produces correct output on both, + so it's unaffected. + +commit 10d122e7bc9a78be17b130c27495564562bf0f93 +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Mon Dec 19 02:09:37 2011 -0500 + + Revert "Use new 8BIT_A format for 8 bit pixmaps." + + This reverts commit 8ea466a2f408524a9fcc08ed0a17f3c935857afa. + + (This change was pushed accidentally) + +commit 635a5887c52382b481de1ecca463a3fbb7fd6aa3 +Author: Søren Sandmann <s...@redhat.com> +Date: Sat Dec 17 05:39:32 2011 -0500 + + Don't translate newly generated paccess region + + The region passed to uxa_prepare_access() is in screen coordinates, + but the driver wants drawable coordinates. Hence we do a translation. + + However, when the passed region is NULL, we generate the region + ourselves based on the full drawable extents. This region is already + in drawable space so shouldn't be translated. + +commit 8ea466a2f408524a9fcc08ed0a17f3c935857afa +Author: Søren Sandmann <s...@redhat.com> +Date: Tue Dec 13 03:51:35 2011 -0500 + + Use new 8BIT_A format for 8 bit pixmaps. + +commit 30b4b72cdbdf9f0e92a8d1c4e01779f60f15a741 +Author: Gerd Hoffmann <kra...@redhat.com> +Date: Thu Oct 6 17:06:10 2011 +0200 + + support _ASYNC io calls and interrupt handling (busy wait) + + rebased with Xspice changes. + + Signed-off-by: Alon Levy <al...@redhat.com> + +commit c77ba9f217093f946a4c6bf6edf9f34b24844d8d +Author: Søren Sandmann <s...@redhat.com> +Date: Fri Oct 28 12:56:30 2011 -0400 + + Translate the access region according to the drawable offset. + + The driver code expects to be given coordinates relative to the + offscreen pixmap. + +commit 0d3a9a626402ef0cc52430fe4cb35d7b5da68536 +Author: Alon Levy <al...@redhat.com> +Date: Tue Aug 2 21:31:11 2011 +0300 + + rename xspice Xspice + +commit 38cedb7ad42f11fe451507d82922d4e94cdcf15d +Author: Alon Levy <al...@redhat.com> +Date: Mon Aug 1 19:17:48 2011 +0300 + + xspice: make --cgdb non magical, use XSPICE_ENABLE_GDB + +commit b89a0b11b1133bf2991580203867830747ad4de1 +Author: Søren Sandmann Pedersen <ssp@localhost.localdomain> +Date: Sun Aug 21 10:11:48 2011 -0400 + + Only save the VGA fonts for the primary device. + + Otherwise, if we try to save the VGA fonts when initializing a + non-primary device, the saving will be routed to the primary one + putting it into VGA mode, which then locks up. + +commit 4a040532492b212e05f5375994adcfdd171e0410 +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Tue Jul 26 13:44:30 2011 -0400 + + Ignore devices classes when matching PCI devices + + A device_class of 0x00030000 means we will only match VGA compatible + controllers, but when multiple devices are added to the VM, the + additional ones will have subclass 0x8000 ("Display controller"). + + We need to be able to drive those too. + +commit 3b851a37a7030688fc8ee361167b3567e6623edf +Author: Alon Levy <al...@redhat.com> +Date: Sat Jul 23 20:31:11 2011 +0300 + + spiceqxl.xorg.conf.example: typo and order fixes + +commit c65af64529a7abd99bd175e1e49fb98f289fb55a +Author: Alon Levy <al...@redhat.com> +Date: Sat Jul 23 20:08:35 2011 +0300 + + README.xspice: use consistent and vnc default port + +commit f637c79f121348b02b0fdae7613675acda380815 +Author: Alon Levy <al...@redhat.com> +Date: Sat Jul 23 20:07:04 2011 +0300 + + xspice: add missing --tls-port default + commit dd90fa9277283b4806aba307ca952bea0402b534 Author: Alon Levy <al...@redhat.com> Date: Sat Jul 23 12:55:42 2011 +0300 commit de66207883efc1f32e96907c3e64f17b2bdf6c3e Author: Alon Levy <al...@redhat.com> Date: Sun Jul 8 14:05:08 2012 +0300 qxl_driver/qxl_switch_mode: destroy is not idempotent diff --git a/src/qxl_driver.c b/src/qxl_driver.c index a6d7636..e4c477a 100644 --- a/src/qxl_driver.c +++ b/src/qxl_driver.c @@ -701,10 +701,9 @@ qxl_switch_mode(SWITCH_MODE_ARGS_DECL) { qxl_surface_kill (qxl->primary); qxl_surface_cache_sanity_check (qxl->surface_cache); + qxl_io_destroy_primary(qxl); } - qxl_io_destroy_primary(qxl); - qxl->primary = qxl_surface_cache_create_primary (qxl->surface_cache, m); qxl->current_mode = m; qxl->bytes_per_pixel = (qxl->pScrn->bitsPerPixel + 7) / 8; commit 6267b1a56f6104409fcb970eddc4ea9606421331 Author: Alon Levy <al...@redhat.com> Date: Wed Mar 7 14:30:58 2012 +0200 spiceqxl_display: reformat & rephrase Xspice comment diff --git a/src/spiceqxl_display.c b/src/spiceqxl_display.c index ea61430..b1ce557 100644 --- a/src/spiceqxl_display.c +++ b/src/spiceqxl_display.c @@ -67,8 +67,8 @@ /* XSpice: - * We only need a single identify slot, no need to change it for the lifetime - * We actually need no slots, but less changes if we leave one. + * We only need a single static identity slot. + * We actually need no slots, but less changes if we use one. * We currently add it during attache_worker - should not be called more * then once during lifetime (but we don't check) */ commit e0f301fc0512502542573b3f8dd9452f5a7ea6e1 Author: Jeremy White <jwh...@codeweavers.com> Date: Wed Jun 13 17:04:12 2012 -0500 Compute totalPixmapSize using the same logic as in dix/pixmap.c, rather than hard coding 100. This was found while building with a modified X server; one with a PixmapRec size of 224, not 64 :-/. diff --git a/src/qxl_driver.c b/src/qxl_driver.c index 54bbd4a..a6d7636 100644 --- a/src/qxl_driver.c +++ b/src/qxl_driver.c @@ -1138,8 +1138,6 @@ qxl_screen_init(SCREEN_INIT_ARGS_DECL) ErrorF ("allocated %d x %d %p\n", pScrn->virtualX, pScrn->virtualY, qxl->fb); #endif - pScreen->totalPixmapSize = 100; - pScrn->virtualX = pScrn->currentMode->HDisplay; pScrn->virtualY = pScrn->currentMode->VDisplay; @@ -1198,6 +1196,10 @@ qxl_screen_init(SCREEN_INIT_ARGS_DECL) DamageSetup(pScreen); + /* We need to set totalPixmapSize after setup_uxa and Damage, + as the privatessize is not computed correctly until then */ + pScreen->totalPixmapSize = BitmapBytePad((sizeof(PixmapRec) + dixPrivatesSize(PRIVATE_PIXMAP) ) * 8); + miDCInitialize(pScreen, xf86GetPointerScreenFuncs()); if (!miCreateDefColormap(pScreen)) goto out; commit 6832c0fd917556c52f56f8e82706a83942ed3dc1 Author: Jeremy White <jwh...@codeweavers.com> Date: Sun Jun 3 10:28:05 2012 -0500 Actually process write watches in the wakeup handler My apologies for the churn; this is, I think, a slightly better patch than my previous patch, 'Process watches even when there is no X activity', in that it avoids doing an extra polling select when we're idle. diff --git a/src/spiceqxl_main_loop.c b/src/spiceqxl_main_loop.c index 1718861..e57fb91 100644 --- a/src/spiceqxl_main_loop.c +++ b/src/spiceqxl_main_loop.c @@ -315,9 +315,24 @@ static void select_and_check_watches(void) } } +static int no_write_watches(Ring *w) +{ + SpiceWatch *watch; + RingItem *link; + RingItem *next; + + RING_FOREACH_SAFE(link, next, w) { + watch = (SpiceWatch*)link; + if (!watch->remove && (watch->event_mask & SPICE_WATCH_EVENT_WRITE)) + return 0; + } + + return 1; +} + static void xspice_wakeup_handler(pointer data, int nfds, pointer readmask) { - if (!nfds) { + if (!nfds && no_write_watches(&watches)) { return; } select_and_check_watches(); commit 72a0def8114073c0051f3df880f731d3968cb344 Author: Alon Levy <al...@redhat.com> Date: Wed May 30 13:44:40 2012 +0300 qxl_switch_mode: don't evacuate, just recreate primary surface In summary, on vt enter we still: reset recreate memory slots clear our mspace allocators and then do what switch mode below says On vt leave we still: reset (this is redundant since the first VGA access will trigger a reset on the device side) On switch mode however we only: destroy primary surface create primary surface (different size) diff --git a/src/qxl_driver.c b/src/qxl_driver.c index 0e34a86..54bbd4a 100644 --- a/src/qxl_driver.c +++ b/src/qxl_driver.c @@ -696,19 +696,14 @@ qxl_switch_mode(SWITCH_MODE_ARGS_DECL) int mode_index = (int)(unsigned long)mode->Private; struct QXLMode *m = qxl->modes + mode_index; ScreenPtr pScreen; - void *evacuated; - - evacuated = qxl_surface_cache_evacuate_all (qxl->surface_cache); if (qxl->primary) { qxl_surface_kill (qxl->primary); qxl_surface_cache_sanity_check (qxl->surface_cache); } - - qxl_reset_and_create_mem_slots (qxl); - - ErrorF ("done reset\n"); + + qxl_io_destroy_primary(qxl); qxl->primary = qxl_surface_cache_create_primary (qxl->surface_cache, m); qxl->current_mode = m; @@ -725,19 +720,7 @@ qxl_switch_mode(SWITCH_MODE_ARGS_DECL) set_surface (root, qxl->primary); } - - ErrorF ("primary is %p\n", qxl->primary); - if (qxl->mem) - { - qxl_mem_free_all (qxl->mem); - qxl_drop_image_cache (qxl); - } - - if (qxl->surf_mem) - qxl_mem_free_all (qxl->surf_mem); - qxl_surface_cache_replace_all (qxl->surface_cache, evacuated); - return TRUE; } @@ -1256,8 +1239,20 @@ qxl_enter_vt(VT_FUNC_ARGS_DECL) qxl_screen_t *qxl = pScrn->driverPrivate; qxl_save_state(pScrn); + + qxl_reset_and_create_mem_slots (qxl); + qxl_switch_mode(SWITCH_MODE_ARGS(pScrn, pScrn->currentMode)); + if (qxl->mem) + { + qxl_mem_free_all (qxl->mem); + qxl_drop_image_cache (qxl); + } + + if (qxl->surf_mem) + qxl_mem_free_all (qxl->surf_mem); + if (qxl->vt_surfaces) { qxl_surface_cache_replace_all (qxl->surface_cache, qxl->vt_surfaces); commit 8df3eba368e80f60ce815300b85a567a9b02141c Author: Alon Levy <al...@redhat.com> Date: Thu May 31 13:04:01 2012 +0300 qxl_surface: don't unlink surface 0 -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/e1srn2l-00076t...@vasks.debian.org