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: Gerd Hoffmann
Subject: Re: [Qemu-devel] [RFC v4 8/9] qxl: make qxl_render_update async
Date: Wed, 22 Feb 2012 12:41:01 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0.1) Gecko/20120210 Thunderbird/10.0.1

  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?

> +    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.

cheers,
  Gerd



reply via email to

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