summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2012-10-11Only include Xv headers if server supports itHEADmasterYaakov Selkowitz1-0/+2
Signed-off-by: Yaakov Selkowitz <yselkowitz@users.sourceforge.net> Reviewed-by: Søren Sandmann Pedersen <ssp@redhat.com>
2012-10-11Add XORG_LIBS to LIBADDYaakov Selkowitz1-1/+1
This affects only Cygwin (on which only spiceqxl is supported), where drivers must be linked against the Xorg implib. On other systems, XORG_LIBS will be empty. Signed-off-by: Yaakov Selkowitz <yselkowitz@users.sourceforge.net> Reviewed-by: Søren Sandmann Pedersen <ssp@redhat.com>
2012-09-29Change include paths to fix rare compilation issue.Jeremy White1-6/+6
Technically, the xorg/ prefix should not be specified. It generally works, because xorg/ is usually hung off /usr/include. This enables compliation that correctly respects a pkg-config --cflags xorg-server.
2012-09-20Make the checks for composite and a8 return FALSE for XspiceSøren Sandmann Pedersen1-0/+10
They depend on the PCI revision which is not available for Xspice.
2012-09-20Only use dixScreenSpecificPrivatesSize if we have a new enough Xorg.Jeremy White1-1/+5
This lets us continue to support older Xorg releases. This reverts 4f37cd85 and partially reverts 4a43bd4.
2012-09-12Don't issue composite commands or create a8 surfaces when not availableSøren Sandmann1-1/+36
When the device or the client are not capable of composite commands or a8 surfaces, don't issue these commands.
2012-09-05Add Render supportSøren Sandmann4-24/+390
This commit adds support for using the new Composite command in spice protocol 0.12.0. This command is similar to the Composite request in the X Render protocol. By implementing the UXA composite stubs, we get acceleration for most common Composite requests, including glyphs.
2012-09-05Enable 8 bit pixmaps.Søren Sandmann2-1/+3
a8 surfaces are now supported with the 8BIT_A format in spice, so we can have support 8 bit pixmaps.
2012-09-05Use an RGBA format for 32 bit imagesSøren Sandmann1-5/+1
With the upcoming Render changes, we can no longer assume that the fourth channel of images is unused.
2012-09-05uxa: Plug leak in uxa_glyphs_via_masksSøren Sandmann1-1/+3
If prepare_composite() fails, we need to free the temporary mask before returning.
2012-09-05uxa-glyphs: don't prepare composite when dest is not offscreenSøren Sandmann1-0/+5
It is possbible for a pixmap to not be in video memory after uxa_clear_pixmap() was called. When this happens, we need to destroy the pixmap and return 1 to indicate that the operation can't be accelerated.
2012-09-05Improved support for memory debugging.Søren Sandmann6-39/+61
Make all memory allocation functions take a string that will explain what the memory will be used for. This allows debug print statements to be added to the allocation functions and could later potentially be used for more detailed statistics.
2012-09-05src/qxl_driver: use the new dixScreenSpecificPrivatesSizeAlon Levy1-6/+8
xserver introduces a new screen specific privates infrastructure, moving the PRIVATE_PIXBUF over there, breaking qxl that was using the wrong dixPrivatesSize to access it - there is a new array of screen specific/not flags, and PRIVATE_PIXBUF is screen specific. xorg-xserver commit: 9d457f9c55f12106ba44c1c9db59d14f978f0ae8 This fix breaks backward compat. The next release will only work with xorg-xserver >= 1.12.99.901 RHBZ: 844463
2012-08-23Coding style fixesSøren Sandmann Pedersen2-1229/+1362
Undo most of the damage from 7f8d3ed05cbe891
2012-08-23qxl_driver: Xspice: fix build breakageAlon Levy1-1/+1
2012-07-15Return a preferred mode matching the current modeMarc-André Lureau1-3/+23
This make gnome-settings-daemon not switch resolution automatically to the largest available.
2012-07-15Change output status when update monitors configMarc-André Lureau1-4/+11
2012-07-15Bypass rrcrtc.c screen size bounds checkMarc-André Lureau1-0/+6
2012-07-15Avoid calling qxl_update_monitors_config() with invalid configMarc-André Lureau1-1/+5
During startup, the monitors are not yet enabled/set. and we can avoid sending invalid/transient config.
2012-07-15Split crtc_set_mode_major()Marc-André Lureau1-14/+32
Avoid sending many monitor config changes during qxl_create_desired_modes()
2012-07-15Add check_crtc() helper, to catch crtc/monitor config errorsMarc-André Lureau1-2/+33
2012-07-15Coding style improvementMarc-André Lureau1-668/+628
2012-07-15get rid of one of the gcc warningsMarc-André Lureau1-1/+1
2012-07-15qxl_driver/qxl_initialize_x_modes: remove modes not fitting framebufferAlon Levy1-2/+12
2012-07-15qxl_driver: add infra for surface0 resizingAlon Levy2-38/+152
Most importantly, don't allow randr resize if it is too large for the currently allocated mspace. Ifdeffed out almost working code for reallocating the primary mspace (qxl->mem).
2012-07-15add qxl_edidAlon Levy4-2/+239
Taken from Virtual Box, following exactly the same logic: gnome-settings-daemon relies on the serial given in the edid to set the resolution to the same one last used on that screen. Since this is not what we want with a virtual machine, we produce a serial that is different for every resolution.
2012-07-15(for later) qxl_ring: add helpers (debugging/unused)Alon Levy2-0/+24
2012-07-15qxl_driver: qxl_init_randr: limit width/height to 8192, real check done on ↵Alon Levy1-18/+2
randr screen resize callback
2012-07-15Add some error message if pci revision < 4Marc-André Lureau1-1/+3
2012-07-15qxl_driver: introduce qxl_crtc, crtc privateAlon Levy2-5/+26
Additionally prevents disabling of the primary crtc.
2012-07-15qxl_driver: implement randr, arbitrary resolution, multiple monitors (big dump)Alon Levy4-125/+534
Send a MonitorsUpdate - this should definitely be split into it's own patch. Require revision 4 - this is needed just for MonitorsUpdate, should go with it. Adds new config: OPTION_NUM_HEADS, defaults to 4.
2012-07-15qxl_surface: add download_box_no_updateAlon Levy1-5/+11
2012-07-15qxl_surface: normalize surface_send names, add option to surface_destroy to ↵Alon Levy1-5/+8
send/not send destroy message
2012-07-15spiceqxl_io_port: mark FLUSH_SURFACES_ASYNC as unimplemented, do half of itAlon Levy1-0/+4
2012-07-15qxl_screen_init: move uxa_resources_init down to after qxl_switch_mode has runAlon Levy1-7/+6
2012-07-15qxl_close_screen: disable fb access, prevent segfaults in uxa later onAlon Levy1-0/+6
I don't have a stacktrace to show any segfault unfortunately.
2012-07-15qxl_driver: move mspace_set_*_func earlierAlon Levy1-2/+4
2012-07-15fix two segfaults in qxl_free_surfaceAlon Levy1-0/+5
Both results from ProcFreePixmap being called in unanticipated circumstances: cache->all_surfaces is NULL surface->host_image is NULL To reproduce the following scripts work, in tandem: create xterms, destroy them chvt ============ xterm_test ============ import os import subprocess import time import atexit env = os.environ env['DISPLAY'] = ':0.0' xterms = [] def kill_all(): print "killing xterms" for x in xterms: x.kill() del xterms[:] atexit.register(kill_all) while True: for i in range(10): xterms.append(subprocess.Popen(['xterm', '+u8'])) time.sleep(1) kill_all() ============= chvt_test_helper ============ XPID=`pgrep Xorg` XTTY=`find /proc/$XPID/fd -lname "/dev/tty*"` XTTY=`readlink $XTTY` XTTY=${XTTY#/dev/tty} echo "chvt 1 (from Xorg)" chvt 1 sleep 2 echo "chvt $XTTY (to Xorg)" chvt $XTTY ============== chvt_test ================= while true; do ./chvt-test ; sleep 3; done
2012-07-15qxl: remove qxl_screen_t->strideAlon Levy3-3/+1
2012-07-15spiceqxl_inputs: don't hide the pointer global typedefAlon Levy1-14/+14
2012-07-15uxa: fix bad argument type from removed index API change ↵Alon Levy2-3/+4
(s/SCREEN_ARG_TYPE/SCRN_ARG_TYPE/)
2012-07-15whitespace fixAlon Levy1-1/+1
2012-07-08qxl_driver/qxl_switch_mode: destroy is not idempotentAlon Levy1-2/+1
2012-07-03spiceqxl_display: reformat & rephrase Xspice commentAlon Levy1-2/+2
2012-06-17Compute totalPixmapSize using the same logic as in dix/pixmap.c, rather than ↵Jeremy White1-2/+4
hard coding 100. This was found while building with a modified X server; one with a PixmapRec size of 224, not 64 :-/.
2012-06-17Actually process write watches in the wakeup handlerJeremy White1-1/+16
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.
2012-06-15qxl_switch_mode: don't evacuate, just recreate primary surfaceAlon Levy1-19/+14
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)
2012-06-15qxl_surface: don't unlink surface 0Alon Levy1-4/+7
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.
2012-06-15qxl_surface: add DEBUG_SURFACE_LIFECYCLE helpersAlon Levy1-0/+46
2012-06-15io: add qxl_io_destroy_primaryAlon Levy2-0/+18