[Spice-devel] [PATCH] server: red_current_add_equal - don't push a drawable to the middle of the pipe if it depends on surfaces.
Gerd Hoffmann
kraxel at redhat.com
Tue Aug 31 01:24:56 PDT 2010
On 08/31/10 10:11, Yonit Halperin wrote:
> On 08/31/2010 11:05 AM, Gerd Hoffmann wrote:
>>> +static inline int is_drawable_independent_from_surfaces(Drawable
>>> *drawable)
>>> +{
>>> + int x;
>>> +
>>> + for (x = 0; x< 3; ++x) {
>>> + if (drawable->surfaces_dest[x] != -1) {
>>> + return FALSE;
>>> + }
>>> + }
>>> + return TRUE;
>>> +}
>>
>> What happens if this meets qemu without the surfaces init fix?
>> Will it break or just work less efficient?
>>
>> cheers,
>> Gerd
>>
>
> I think that if the server will decide to video stream an area, it can
> cause a delay in between frames if the pipe is busy.
Ok, no breakage, good.
While we are at it: How should surfaces_dest (and surfaces_rect) be
filled for spice 0.4 commands? Right now they are just zero-initialized
(see red_get_compat_drawable() in red_parse_qxl.c).
Oh, and I've just seen self bitmaps are not handled yet.
spice 0.4 has:
uint16_t bitmap_offset;
QXLRect bitmap_area;
spice 0.6 has:
uint8_t self_bitmap;
QXLRect self_bitmap_area;
I suspect the area can just be used as-is. What about bitmap_offset /
self_bitmap?
cheers,
Gerd
More information about the Spice-devel
mailing list