return FALSE;
}
+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)
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.
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,