[Spice-devel] [RFC v4 8/9] qxl: make qxl_render_update async
Alon Levy
alevy at redhat.com
Wed Feb 22 04:30:20 PST 2012
On Wed, Feb 22, 2012 at 12:41:01PM +0100, Gerd Hoffmann wrote:
> Hi,
>
> > + qxl->render_update_redraw_area.left = 0;
> > + qxl->render_update_redraw_area.right =
> > + qxl->guest_primary.surface.width;
> > + qxl->render_update_redraw_area.top = 0;
> > + qxl->render_update_redraw_area.bottom =
> > + qxl->guest_primary.surface.height;
>
> Are there cases where render_update_redraw_area != full screen?
I don't think so. I'll drop the area after making sure.
>
> > + qemu_mutex_lock(&qxl->ssd.lock);
> > + if (qxl->render_update_redraw) {
> > + /* don't bother copying them over since we will ignore them */
> > + qxl->num_dirty_rects += num_updated_rects;
> > + dprint(qxl, 1, "%s: scheduling update_area_bh, #dirty %d\n",
> > + __func__, qxl->num_dirty_rects);
> > + qemu_bh_schedule(qxl->update_area_bh);
> > + qemu_mutex_unlock(&qxl->ssd.lock);
> > + return;
> > + }
> > + if (qxl->num_dirty_rects + num_updated_rects > QXL_NUM_DIRTY_RECTS) {
> > + /*
> > + * overflow - merge all remaining rects. Hoping this is not
> > + * common so doesn't need to be optimized
> > + */
> > + }
>
> Another easy way out is to simply set qxl->render_update_redraw = 1.
Yes, I agree, wasn't sure what is better. It would avoid a lot of code.
I'll do it.
>
> cheers,
> Gerd
More information about the Spice-devel
mailing list