summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2010-09-02server: avoid creating a stream from traces more than once for the same drawableHEADmasterYonit Halperin1-5/+10
could have caused ASSERT(!drawable->stream) in red_create_stream
2010-09-02Add API to turn on backwards compatibility modeAlexander Larsson2-0/+33
When upgrading a cluster of machines you typically do this by upgrading a set of machines at a time, making the new machines run the new software version, but in a fashion compatible with the old versions (in terms of e.g. migration). Then when all machines are upgrades, any new features in the new version can be enabled. This API allows qemu to limit the set of features that spice uses to those compatible with an older version, in order to do an upgrade like this. Right now it doesn't really do much, since we don't keep compat with 0.4.0 atm (although that may be added later). There is no guarantee that any future version of spice support being compatible with any previous version. However, we will always support compatibility with the previous major version so that clusters can be upgraded step by step.
2010-08-31Bump version to 0.6.0Alexander Larsson1-2/+2
2010-08-31Require spice-protocol 0.6.0Alexander Larsson1-1/+1
2010-08-31Update NEWS for releaseAlexander Larsson1-0/+12
2010-08-31Fix scaling with large magnificationAlexander Larsson1-20/+16
When scaling part of an image we need to specify the source coordinates in transformed coordinates. For large magnifications this means we will get pretty large values. Now, if e.g. src_x * transform is larger than 32765, then the coordinate ends up outside the pixman 16bit image size, so the rendering will not work. The fix is to make the src_x/y offset part of the transformation. This means its automatically transformed by the correct scaling, and the coordinates passed into pixman are not (typically) over 16bit.
2010-08-31Revert "Fix scaling with large magnification"Alexander Larsson1-104/+32
This reverts commit e13be77f33609cb3fdae354ce1f2686ae865f9e0.
2010-08-31client: add default agent capabilitiesAlon Levy1-0/+11
2010-08-31qxl parser: complete parsing of QXLCompatDrawable structsGerd Hoffmann1-0/+14
2010-08-31server: red_current_add_equal - don't push a drawable to the middle of the ↵Yonit Halperin1-1/+13
pipe if it depends on surfaces. This will prevent: 1) rendering problems (commands sent to the client in the wrong order) 2) sending commands for surfaces that haven't been created yet on the client side.
2010-08-31server: when woken up by data ready to be read, don't call write.Alon Levy1-1/+1
This used to be a callback for the vdi_port "data ready" interrupt, which did indicate either data ready to read or data ready to write, but this is no longer the case now that virtio-serial is used. This seemingly simple fix prevents a race that needs to be fixed with another patch, see freedesktop bz #29903
2010-08-31server: retry mouse send on queue fullAlon Levy1-0/+1
2010-08-31server: bugfix - make vdi_port_write_retry reiterate if write_queue still ↵Alon Levy1-1/+1
not empty The vdi_port_write_timer_started flag was not being reset, which prevented another vdi_port_write_timer_start from actually starting the timer. Fix is to change order of lines. This happens in the callback of the timer, so no chance of double timer set.
2010-08-31client: add announce_capabilitiesAlon Levy2-4/+70
2010-08-31server: add subtype to SpiceCharDeviceInterface, use for vdagentAlon Levy2-7/+50
2010-08-31server: rename SpiceVDIPort* to SpiceCharDevice*Alon Levy2-38/+38
2010-08-30server: fix red_current_flush to flush only the surface that was given as ↵Yonit Halperin1-1/+3
parameter A side effect of the previous red_current_flush, which flushed all the surfaces, and was called on a new display channel connection, was that red_handle_drawable_surfaces_client_synced sent the most updated surfaces images when needed. However, now, it should explicitly call red_current_flush. Moreover, since red_current_flush was called on a new display channel connection only if there was a primary surface, if the connection of the display channel occurred at the moment of no primary surface, red_handle_drawable_surfaces_client_synced was buggy.
2010-08-30Fix scaling with large magnificationAlexander Larsson1-32/+104
When scaling part of an image we need to specify the source coordinates in transformed coordinates. For large magnifications this means we will get pretty large values. Now, if e.g. src_x * transform is larger than 32765, then the coordinate ends up outside the pixman 16bit image size, so the rendering will not work. In order to work around this we generate a "sub-image" of the pixman image such that the src_x/y values we have to specify are zero (or near zero).
2010-08-30Bump versions.Gerd Hoffmann2-2/+2
Update #define in server/spice.h in preparation for the 0.6.0 release. We also got some new functions, thus we have to increate the shared lib minor number for spice-server.
2010-08-30Add config functions.Gerd Hoffmann2-0/+38
A bunch of configuration functions where never ported forward from rhel-6 to upstream. Add them so we can add qemu config options for these settings.
2010-08-30Merge commit 'ea298a14e1cde8b811baf6bd187287f18dde0dee'Alon Levy1-10/+0
2010-08-30server: moved agent pipe headers to spice-protocolAlon Levy1-10/+0
2010-08-30server: cleanups in destorying surfaces codeYonit Halperin1-29/+22
2010-08-30server: really wait for a surface to be destroyed, when calling ↵Yonit Halperin1-9/+75
destroy_surface_wait Waiting till all the pipe items that are dependent on the surface will be sent. This was probably the cause for freedesktop bug #29750.
2010-08-30server: consider also PIPE_ITEM_UPGRADE when searching for drawables in ↵Yonit Halperin1-17/+19
red_clear_surface_drawables_from_pipe
2010-08-27canvas: Better coordinate rounding in scalingAlexander Larsson1-28/+36
When scaling in pixman you give the source coordinates in transformed space rather than in the source coordinates. This is a bit problematic when both source and destination coordinates are at integer positions, but the scaling factor is not an exact 16.16 fixed point value. We used to calculate the transformed source based on the floating point transformation, which gave the wrong answer sometimes. Now we do the calculations based on the fixed point transform that we give pixman. However, even with this patch I can still sometimes see issues related to this, although they are less bad.
2010-08-27server: red_send_image() - append image data to right marshallerAlexander Larsson1-1/+2
The actual bitmap data was added to the main marshaller rather than the submarshaller that pointed to the SpiceImage part. This made us send too short messages failing demarshalling in the client.
2010-08-27server: red_send_image() initialize bitmap.flagsAlexander Larsson1-0/+1
We're currently sending this to the network based on random memory.
2010-08-27zap more unused bits.Gerd Hoffmann1-14/+0
BufDescriptor isn't used at all. Two AddBufInfo fields (slot_id and group_id) are not used any more.
2010-08-27red_get_cursor: avoid extra copyGerd Hoffmann1-4/+4
2010-08-26fix red_cursur_flush segfaultGerd Hoffmann1-1/+3
2010-08-26zap dead typedefsGerd Hoffmann1-5/+0
2010-08-26zap dead qxl chunk codeGerd Hoffmann1-29/+0
2010-08-26qxl parser: add cursor parsingGerd Hoffmann3-48/+59
2010-08-26qxl parser: complete QXL_SURFACE_CMD_CREATE parsingGerd Hoffmann3-4/+6
2010-08-26server: Fix alloc_lz_image_surface stride allocationsAlexander Larsson1-1/+1
All lz surfaces are not 4 bytes per pixel, calculate the right stride based on the pixman format.
2010-08-25server: clean glz drawables when reseting qxlYonit Halperin1-0/+3
When the we reset qxl, we destroy all srufaces. Since surfaces and glz drawables are no longer dependent, we need to call red_display_clear_glz_drawables explicitly in order to clear all our drawables references in the server.
2010-08-25server: Add missing break in switch caseAlexander Larsson1-0/+1
2010-08-25client: Handle async errors from xshm setupAlexander Larsson1-0/+28
XShmAttach can fail asynchronously, so we need to check the errors in the x error handler during the XSync.
2010-08-24client: Don't leak xshm segmentsAlexander Larsson1-0/+8
2010-08-24Don't try xshm any more if it fails for a permanent reasonAlexander Larsson1-0/+16
This is copied from how Gtk+ detects Xshm failures.
2010-08-24server: remove the no longer used glz drawables list that was maintained for ↵Yonit Halperin1-8/+0
each surface.
2010-08-24server: remove unnecessary dependency between surfaces and Glz drawablesYonit Halperin1-26/+4
Fixes freedesktop bug #28568
2010-08-23Fix mismerge in last commitAlexander Larsson1-1/+0
2010-08-23Remove USE_EXCLUDE_RGN define and !USE_EXCLUDE_RGN codeAlexander Larsson1-167/+0
2010-08-23Remove STREAM_TRACE define and !STREAM_TRACE codeAlexander Larsson1-206/+1
2010-08-23Limiting video streaming to the primary surface. freedesktop bug #28088.Yonit Halperin1-7/+40
2010-08-23client: Fix for clipboard sending; It wasn't thread safe.Yonit Halperin2-5/+27
2010-08-23client: fix - exit on bad display-effect argumentYonit Halperin1-0/+2
2010-08-18Stride can be negative, so don't use size_t for itAlexander Larsson2-2/+2