summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2012-11-13qxl: move mspace setup to qxl_mem.cHEADmasterDave Airlie3-22/+16
removes mspace stuff from main qxl_driver.c Signed-off-by: Dave Airlie <airlied@redhat.com>
2012-11-13qxl: move garbage collector + alloc into qxl_mem.cDave Airlie2-178/+182
This moves a lot more code out of the qxl_driver.c file. Signed-off-by: Dave Airlie <airlied@redhat.com>
2012-11-13qxl: move mem slots code to qxl_mem.cDave Airlie3-78/+80
This moves the mem slot setup code to qxl_mem.c. Signed-off-by: Dave Airlie <airlied@redhat.com>
2012-11-13qxl_mem: drop unused if 0 code.Dave Airlie1-355/+0
Doesn't look we want this code anymore, so drop it. Signed-off-by: Dave Airlie <airlied@redhat.com>
2012-11-13qxl: move io functions to a separate fileDave Airlie4-187/+225
this moves all the lowlevel ioport interaction code to a separate file. Signed-off-by: Dave Airlie <airlied@redhat.com>
2012-11-13qxl: split user modesetting code and crtc code out.Dave Airlie4-947/+530
This splits the UMS modesetting and xf86Crtc code out into a separate file. Signed-off-by: Dave Airlie <airlied@redhat.com>
2012-11-13qxl: split uxa related code into separate fileDave Airlie1-0/+502
qxl_driver.c is insane, it needs to be split out like other X.org drivers. This is step one, move the uxa interfacing code into its own file. Signed-off-by: Dave Airlie <airlied@redhat.com>
2012-10-11Only include Xv headers if server supports itYaakov 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-20Version bump to 0.1.0xf86-video-qxl-0.1.0Søren Sandmann Pedersen1-1/+1
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 White2-2/+6
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-07Require XServer >= 1.12.99.901 in conjunction with commit 4a43bd4.Johannes Obermayr1-1/+1
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-23Bump spice-protocol version requirement to 0.12.0Søren Sandmann Pedersen1-1/+1
2012-08-23qxl_driver: Xspice: fix build breakageAlon Levy1-1/+1
2012-07-15Return a preferred mode matching the current modeelmarco.masterMarc-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