diff --git a/src/egl/drivers/haiku/egl_haiku.cpp b/src/egl/drivers/haiku/egl_haiku.cpp index 364bc5438f7..d6215ef2445 100644 --- a/src/egl/drivers/haiku/egl_haiku.cpp +++ b/src/egl/drivers/haiku/egl_haiku.cpp @@ -213,10 +213,12 @@ haiku_swap_buffers(_EGLDisplay *disp, _EGLSurface *surf) struct pipe_screen *screen = hgl_dpy->disp->fscreen->screen; struct hgl_buffer* buffer = hgl_surf->fb; - auto &backBuffer = buffer->textures[ST_ATTACHMENT_BACK_LEFT]; auto &frontBuffer = buffer->textures[ST_ATTACHMENT_FRONT_LEFT]; + auto &backBuffer = buffer->textures[ST_ATTACHMENT_BACK_LEFT]; - st->pipe->flush_resource(st->pipe, backBuffer); + // Inform ST of a flush if double buffering is used + if (backBuffer != NULL) + st->pipe->flush_resource(st->pipe, backBuffer); _mesa_glthread_finish(st->ctx); @@ -235,6 +237,8 @@ haiku_swap_buffers(_EGLDisplay *disp, _EGLSurface *surf) p_atomic_inc(&buffer->base.stamp); } + // XXX: right front / back if BGL_STEREO? + update_size(buffer); return EGL_TRUE;