qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [RFC v4 8/9] qxl: make qxl_render_update async


From: Alon Levy
Subject: Re: [Qemu-devel] [RFC v4 8/9] qxl: make qxl_render_update async
Date: Wed, 22 Feb 2012 13:30:20 +0100
User-agent: Mutt/1.5.21 (2010-09-15)

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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]