| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
| |
drawable_count was becoming negative. It tracks the number of
items in the worker->current_list ring. It was decremented correctly,
but incremented only in several cases. The cases it wasn't incremented
where:
red_current_add_equal found an equivalent drawable
by moving the increment to where the item is added to current_list, in
__current_add_drawable, the accounting remains correct.
This has no affect other then correct accounting, as drawable_count isn't
used for anything.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
| |
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
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
letancy -> latency
compund -> compound
SpicedSubMessage -> SpiceSubMessage
modifaiers -> modifiers
massage -> message
outgoiong -> outgoing
AlphaBlnd -> AlphaBlend
remoth -> remote
modifires -> modifiers
secore -> secure
|
| |
|
| |
|
| |
|
|
|
|
|
| |
SpiceImage now replaces RedImage and has all image types in it.
All image data are now chunked (and as such not copied when demarshalling).
|
| |
|
| |
|
| |
|
|
|
|
| |
fixes a crash in qxl_soft_reset
|
|
|
|
| |
Also in new protocol don't send style data if not needed.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Internally and in the network protocol (for the new version) we
now store the actual number of segments rather than the size of the
full segments array in bytes. This change consists of multiple changes
to handle this:
* Make the qxl parser calculate num_segments
* Make the canvas stroke code handle the new SpicePath layout.
* Fix up is_equal_path in red_worker.c for the new layout
* replace multiple calls to spice_marshall_PathSegment with a single
spice_marshall_Path call
* Make the byte_size() array size handling do the conversion from
network size to number of elements when marshalling/demarshalling.
* Update the current spice protocol to send the segment count rather than
the size
* Update the old spice protocol to use the new byte_size functionallity
to calculate the size sent and the number of elements recieved
|
|
|
|
|
|
|
|
|
|
|
|
| |
red_parse_qxl.c starts to follow QXLPHYSICAL references and build up
data structures. Can zap a bunch of get_virt calls in red_worker.c,
followed by cleanups.
(de-) marshaller needs updates to deal with that. Also I suspect with
the get_virt() calls being gone we can offload more work to generated
marshaller code.
client doesn't build.
|
|
|
|
|
| |
If USE_OGL is not defined, really don't call or link in the opengl
backend.
|