Robert Bragg <rob...@sixbynine.org> writes:
> @@ -491,8 +495,13 @@ dri2_swap_buffers(_EGLDriver *drv, _EGLDisplay *disp, 
> _EGLSurface *draw)
>     dri2_surf->dx = 0;
>     dri2_surf->dy = 0;
>  
> -   wl_surface_damage(dri2_surf->wl_win->surface, 0, 0,
> -                     dri2_surf->base.Width, dri2_surf->base.Height);
> +   for (i = 0; i < n_rects; i++) {
> +      const int *rect = &rects[i * 4];
> +      wl_surface_damage(dri2_surf->wl_win->surface,
> +                        rect[0],
> +                        dri2_surf->base.Height - rect[1] - rect[3],
> +                        rect[2], rect[3]);
> +   }

It looks like this piece of the spec was missed:

        If <n_rects> is 0 then <rects> is ignored and the entire
        surface is implicitly damaged and the behaviour is equivalent
        to calling eglSwapBuffers.

If an obvious i == 0 case is added (and the rect in original
eglSwapBuffers() optionally dropped), this series is:

Reviewed-by: Eric Anholt <e...@anholt.net>

Attachment: pgp9amVr74SK7.pgp
Description: PGP signature

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to