Kristian Høgsberg <k...@bitplanet.net> writes: > --- > src/egl/drivers/dri2/egl_dri2.h | 1 + > src/egl/drivers/dri2/platform_drm.c | 23 +++++++++++++++++++++++ > 2 files changed, 24 insertions(+) > > diff --git a/src/egl/drivers/dri2/egl_dri2.h b/src/egl/drivers/dri2/egl_dri2.h > index be359d3..fa2a9f3 100644 > --- a/src/egl/drivers/dri2/egl_dri2.h > +++ b/src/egl/drivers/dri2/egl_dri2.h > @@ -189,6 +189,7 @@ struct dri2_egl_surface > struct { > struct gbm_bo *bo; > int locked; > + int age; > } color_buffers[3], *back, *current; > #ifndef HAVE_WAYLAND_PLATFORM > __DRIbuffer *dri_buffers[__DRI_BUFFER_COUNT]; > diff --git a/src/egl/drivers/dri2/platform_drm.c > b/src/egl/drivers/dri2/platform_drm.c > index 3e04a6c..1923033 100644 > --- a/src/egl/drivers/dri2/platform_drm.c > +++ b/src/egl/drivers/dri2/platform_drm.c > @@ -324,11 +324,16 @@ dri2_swap_buffers(_EGLDriver *drv, _EGLDisplay *disp, > _EGLSurface *draw) > { > struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp); > struct dri2_egl_surface *dri2_surf = dri2_egl_surface(draw); > + int i; > > if (dri2_surf->base.Type == EGL_WINDOW_BIT) { > if (dri2_surf->current) > _eglError(EGL_BAD_SURFACE, "dri2_swap_buffers"); > + for (i = 0; i < ARRAY_SIZE(dri2_surf->color_buffers); i++) > + if (dri2_surf->color_buffers[i].bo) > + dri2_surf->color_buffers[i].age++; > dri2_surf->current = dri2_surf->back; > + dri2_surf->current->age = 1; > dri2_surf->back = NULL;
OK, if I'm following this right, the ages of my buffers with this code are: entering my first swap buffers[0] = 0 <- front buffers[1] = 0 <- back after first swap: buffers[0] = 1 <- back buffers[1] = 1 <- front after second swap: buffers[0] = 1 <- front buffers[1] = 2 <- back But reading the spec, I think it's supposed to be: entering my first swap buffers[0] = 0 <- front buffers[1] = 0 <- back after first swap: buffers[0] = 0 <- back buffers[1] = 1 <- front after second swap: buffers[0] = 1 <- front buffers[1] = 2 <- back Note how after the first swap, my backbuffer should have an age of 0, for "unknown junk".
pgpHC1tfw0XDj.pgp
Description: PGP signature
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev