| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
When drawing a drawable with a NULL src bitmap that means we should
be using the previously generated self_bitmap. Not doing this causes
a segfault due to accessing the NULL.
|
|
|
|
| |
A NULL src bitmap means self_bitmap, which is not a stream, so abort.
|
|
|
|
|
|
|
| |
The self_bitmap is the size of self_bitmap_area, not the bbox.
This is especially important since we later copy the self_bitmap_area
into the new bitmap, and if that is larger than bbox then we will
overwrite random memory.
|
|
|
|
|
| |
red_put_image() needs to free the chunks for QUIC images, as we
allocate these when creating the image.
|
|
|
|
|
|
| |
We really need to flush the ring to ensure that we push something on the
release ring. If we don't do this and the ring is not pushed for other
reasons we will timeout in the guest driver waiting for the ring.
|
|
|
|
|
|
|
|
| |
We've changed how resources are released so they are now being
freed continuosly, rather than on OOM, since we want to free as early
possible to avoid fragmentation. So, OOM situations should be a bit
less common now and signify a real memory shortage, so we should try
to free up more resources.
|
|
|
|
|
| |
spice 0.4 guests pass 16bpp palette colors when running in
a 16bpp video mode. Convert them to 32bpp.
|
|
|
|
|
| |
spice 0.4 guests pass 16bpp colors for brushes when running in
a 16bpp video mode. Convert them to 32bpp.
|
|
|
|
|
| |
Pass through command flags to the qxl parser, so we can hide all
compat bits for spice 0.4 within the qxl parser.
|
|
|
|
| |
could have caused ASSERT(!drawable->stream) in red_create_stream
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
|\ |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| | |
red_clear_surface_drawables_from_pipe
|
| |
| |
| |
| |
| |
| | |
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.
|
|/
|
|
| |
We're currently sending this to the network based on random memory.
|
|
|
|
|
| |
BufDescriptor isn't used at all.
Two AddBufInfo fields (slot_id and group_id) are not used any more.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
each surface.
|
|
|
|
| |
Fixes freedesktop bug #28568
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
SPICE_BITMAP_FMT_24BIT order is bgr, libjpeg wants rgb.
This fixes freedesktop bug #28089
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove all uses of @end in the marshaller, instead just using
the C struct array-at-end-of-struct. To make this work we also remove
all use of @end for switches (making them C unions).
We drop the zero member of the notify message so that we can avoid this
use of @end for a primitive in the marshaller (plus its useless to send
over the wire).
We change the offsets and stuff in the migration messages to real pointers.
|
|
|
|
| |
spice-vmc)
|
|
|
|
| |
Allow to ifdef features which depend on a certain libspice-server release.
|