On 08/31/2010 11:24 AM, Gerd Hoffmann wrote:
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).

Best to fill surfaces_dest with -1. For consistency (though not necessary right now), in QXL_COPY_BITS scenario, fill surfaces_dest[0] with the drawable surface id, and surfaces_rect[0] with the rect of the drawabele transformed to src_pos (i.e., starts at src_pos and its width and hight are equal to the drawable destination).

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?

if bitmap_offset != 0, it means self_bitmap = TRUE

cheers,
Gerd


_______________________________________________
Spice-devel mailing list
Spice-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/spice-devel

Reply via email to