summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2011-01-26Remove calls to SourceValidate() from uxa-damage.cHEADsurface-fixesSøren Sandmann Pedersen1-20/+0
These were kludges and are not necessary with new servers. Note that they were never necessary for the QXL driver because we generally don't use software cursors.
2011-01-24Make it compile with and without dixLookupPrivate() changes.Søren Sandmann Pedersen5-2/+44
2010-11-16Some tweaksSøren Sandmann1-4/+18
2010-11-16asdfSøren Sandmann1-1/+5
2010-11-16asdfSøren Sandmann2-93/+176
2010-11-16More explicit life cycle managementSøren Sandmann Pedersen6-137/+227
2010-11-15Add a surface cacheSøren Sandmann Pedersen3-136/+345
2010-11-11Don't unmap memory until after uxa_close_screen; allow surface creation ↵Søren Sandmann2-19/+25
without vtSema
2010-11-07uxa: In change_window_attributes() only read back if the backing pixmap changedSøren Sandmann1-2/+7
This speeds up log in time considerably.
2010-10-25Comment out debugging spewSøren Sandmann3-7/+16
2010-10-25Migrate pixmaps out of video memory before mode settingSøren Sandmann3-84/+165
After mode setting migrate them back in.
2010-10-24Add qxl_surface_evacuates/replace_all() methods.Søren Sandmann3-48/+103
These functions will be used to migrate surfaces out of video memory when we have to reset the device.
2010-10-22Track live surfaces in a doubly linked list.Søren Sandmann2-45/+30
This allows us to find the surfaces that have to be moved out of video memory at reset time.
2010-10-21Track the pixmap in the surface struct.Søren Sandmann3-0/+13
This is in preparation for making surfaces survives resets and mode sets. To do that, we'll need to evacuate them out of video memory, and then copy them back in. If some surface can't be reallocated, we'll need to make sure it is removed from its corresponding surface.
2010-10-19Move the surface lists into qxl_screen_tSøren Sandmann3-39/+34
That way things don't break horribly if you have multiple graphics cards
2010-10-19Fix a bunch of warningsSøren Sandmann4-438/+13
2010-10-15free qxl->uxe with regular free not xfreeHans de Goede1-1/+1
2010-10-15Fix the driver crashing qemu on 32 bitsHans de Goede1-5/+5
When casting a 32bit pointer to a uint64 the following happens: ptr -> int32 -> int64 -> uint64, so if the address is above 0x80000000 which is quite normal for mapped io, the int32 -> int64 cast causes sign extension, not good! Also fix the printing of the memslots the memslot phys addresses are always 64 bit, so tell printf to always read 64 bits, otherwise we end up printing the higher 32 bits of the address as size on 32 bits.
2010-10-15Don't access the qxl device when our vt is not focussedHans de Goede4-33/+8
Trying to do so causes the X-server to segfault as it has dropped iopl permission, which is, erm, undesirable :)
2010-10-15Fix restoration of text mode font when leaving the vt (rhbz#633647)Hans de Goede2-11/+32
2010-10-15Change default virtual size to match the highest available resolutionHans de Goede1-7/+31
With the old default virtual size of 1024x768, using higher resolutions is not possible without an xorg.conf. Since the default now a days is to not have an xorg.conf, this is sort of unfortunate. This patch makes these higher resolutions available, while keeping the default resolution used when none is specified through xorg.conf at 1024x786, so that the spice client window won't be way too large for smaller screens by default. Note that when running inside a vm with a qxl device with a 8MB framebuffer the code, for automatically setting the virtualsize to the largest width and height seen in the resolution list, would lead to a too large virtual size. The 8MB list has both 1920x1080 and 1600x1200 resolution which lead to a virtualsize of 1920x1200 which does not fit, there is a special check for this situation, which maximizes the available width in this case. This means that for using 1600x1200 on an 8MB device an xorg.conf is still necessary. This change does come at the prize of using more memory, but that seems like a reasonable price to pay to give us parity wrt supported resolutions with the windows driver. Also this is a must have to allow the to be written Linux agent to change the guest resolution to match the client machines one when running in auto fullscreen mode. In the long run we should add support for resizing the fb on the fly to match the resolution.
2010-10-15Make non default qxl modes availableHans de Goede1-5/+39
Currently unless an xorg.conf with modelines is used a lot of the qxl supported modes like 1920x1080 are not available, because the xorg default modelines set does not have modelines for them. This patch adds code to dynamically generate modelines for all modes in the qxl mode list, bringing the xorg driver up to par with the windows driver wrt supported resolutions. Note that an xorg.conf specifying a large enough virtual screen size is still needed for resolutions > 1024x768, but one no longer needs to add modelines in it. This is fixed in my next patch. This patch also adjusts a few (fake) clock limits to make all the modes reported by the qxl device when compiled with a 16MB framebuffer work.
2010-10-15Make virtual resolution match actual resolution on startupHans de Goede1-0/+3
When setting a Virtual size in xorg.conf, currently there can be a difference between the actual output resolution (say 1600x1200) and the virtual resolution (for example 2048x1600). This causes parts of the desktop too be unreachable because the cursor is bound to the spicec window and thus one cannot pan over the virtual desktop. Moreover other parts of the driver don't seem to like this and I've seen several hangs / crashes which I think are related.
2010-10-15Add put_image() accelerationSøren Sandmann3-1/+57
2010-10-15Some memory management changesSøren Sandmann2-5/+28
2010-10-15Split uxa_glyphs_init() into uxa_init_resources().Søren Sandmann6-41/+56
uxa_glyphs_init() eventually allocates a pixmap which has to be done after damage setup since otherwise _dixInitPrivates(PIXMAP_PRIVATE) will assert().
2010-10-14Add dependency tracking for surfaces.Søren Sandmann3-191/+242
The device needs dependent surfaces to be referenced in surfaces_dest[] and surfaces_rects[] of the drawable command.
2010-10-02Fix surface_init()Søren Sandmann2-4/+30
This function needs to set free_surfaces to NULL because it can be called multiple times. If not, the same surface will end up in the free list more than once, which leads to double frees and other bugs.
2010-10-02Fix segmentation fault when no surfaces are availableSøren Sandmann2-8/+11
2010-09-29Faster malloc() implemenetationSøren Sandmann6-23/+2691
2010-09-29Delete most debug spewSøren Sandmann2-5/+19
2010-09-28Initial (buggy) support for copy area from offscreensSøren Sandmann3-29/+80
2010-09-27Enable solid fills for surfacesSøren Sandmann1-8/+3
2010-09-27Fix surface bugsSøren Sandmann5-38/+135
2010-09-27Set the correct size of pixmapsSøren Sandmann2-4/+12
2010-09-15Update to the new dixPrivate ABI.F14Søren Sandmann8-53/+52
2010-09-14Yeah, I need to get a real commit message written for all of this.Søren Sandmann9-539/+1432
2010-09-14Tighten damage region for fill rectSøren Sandmann1-3/+15
2010-09-14Make the fetched regions much tighter for core textSøren Sandmann3-24/+38
2010-09-14At finish_access() do the whole regionSøren Sandmann2-33/+43
2010-09-14Disable acceleration; fix bug with forgotten multiplication with bppSøren Sandmann1-10/+25
2010-09-14asdfSøren Sandmann1-3/+16
2010-09-14Add a region argument to prepare access.Søren Sandmann Pedersen8-91/+133
Download individual boxes.
2010-09-14Add stripped-down version of damage.c as uxa-damage.c. Don't use it yetSøren Sandmann Pedersen3-2/+1422
2010-09-14Add solid fillSøren Sandmann2-4/+63
2010-09-14Add support for copyingSøren Sandmann2-4/+96
2010-09-14Use the correct strides. It's now slow, but workingSøren Sandmann1-7/+20
2010-09-14Remove unused ops from qxl.hSøren Sandmann Pedersen2-72/+0
2010-09-14Disable all the damage handlingSøren Sandmann2-134/+1
2010-09-14Add prepare/finish accessSøren Sandmann2-30/+66