Reviewed-by: Marek Olšák <marek.ol...@amd.com> Marek
On Thu, Dec 26, 2013 at 10:33 AM, Martin Andersson <g02ma...@gmail.com> wrote: > Fixes wayland regression on r600g due to fast clear introduced by commit > edbbfac6. > --- > src/gallium/state_trackers/egl/common/native_helper.c | 15 +++++++++++++++ > src/gallium/state_trackers/egl/common/native_helper.h | 5 +++++ > src/gallium/state_trackers/egl/wayland/native_wayland.c | 4 ++++ > 3 files changed, 24 insertions(+) > > diff --git a/src/gallium/state_trackers/egl/common/native_helper.c > b/src/gallium/state_trackers/egl/common/native_helper.c > index 4a77a50..856cbb6 100644 > --- a/src/gallium/state_trackers/egl/common/native_helper.c > +++ b/src/gallium/state_trackers/egl/common/native_helper.c > @@ -341,6 +341,21 @@ resource_surface_throttle(struct resource_surface *rsurf) > } > > boolean > +resource_surface_flush_resource(struct resource_surface *rsurf, > + struct native_display *ndpy, > + enum native_attachment which) > +{ > + struct pipe_context *pipe = ndpy_get_copy_context(ndpy); > + > + if (!pipe) > + return FALSE; > + > + pipe->flush_resource(pipe, rsurf->resources[which]); > + > + return TRUE; > +} > + > +boolean > resource_surface_flush(struct resource_surface *rsurf, > struct native_display *ndpy) > { > diff --git a/src/gallium/state_trackers/egl/common/native_helper.h > b/src/gallium/state_trackers/egl/common/native_helper.h > index 4c369a7..0b53b28 100644 > --- a/src/gallium/state_trackers/egl/common/native_helper.h > +++ b/src/gallium/state_trackers/egl/common/native_helper.h > @@ -91,6 +91,11 @@ resource_surface_copy_swap(struct resource_surface *rsurf, > boolean > resource_surface_throttle(struct resource_surface *rsurf); > > +boolean > +resource_surface_flush_resource(struct resource_surface *rsurf, > + struct native_display *ndpy, > + enum native_attachment which); > + > /** > * Flush pending rendering using the copy context. This function saves a > * marker for upcoming throttles. > diff --git a/src/gallium/state_trackers/egl/wayland/native_wayland.c > b/src/gallium/state_trackers/egl/wayland/native_wayland.c > index cfdf4f8..0ab4be6 100644 > --- a/src/gallium/state_trackers/egl/wayland/native_wayland.c > +++ b/src/gallium/state_trackers/egl/wayland/native_wayland.c > @@ -259,6 +259,10 @@ wayland_surface_swap_buffers(struct native_surface > *nsurf) > if (ret == -1) > return EGL_FALSE; > > + (void) resource_surface_flush_resource(surface->rsurf, &display->base, > + NATIVE_ATTACHMENT_BACK_LEFT); > + (void) resource_surface_flush(surface->rsurf, &display->base); > + > surface->frame_callback = wl_surface_frame(surface->win->surface); > wl_callback_add_listener(surface->frame_callback, &frame_listener, > surface); > wl_proxy_set_queue((struct wl_proxy *) surface->frame_callback, > -- > 1.8.5.1 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev