[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