mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2026-03-20 05:35:12 -04:00
render/drm_syncobj: add wlr_drm_syncobj_timeline_signal()
This commit is contained in:
parent
abb6eeb422
commit
0af9b9d003
3 changed files with 13 additions and 5 deletions
|
|
@ -90,6 +90,10 @@ bool wlr_drm_syncobj_timeline_transfer(struct wlr_drm_syncobj_timeline *dst,
|
|||
*/
|
||||
bool wlr_drm_syncobj_timeline_check(struct wlr_drm_syncobj_timeline *timeline,
|
||||
uint64_t point, uint32_t flags, bool *result);
|
||||
/**
|
||||
* Signals a timeline point.
|
||||
*/
|
||||
bool wlr_drm_syncobj_timeline_signal(struct wlr_drm_syncobj_timeline *timeline, uint64_t point);
|
||||
/**
|
||||
* Asynchronously wait for a timeline point.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -177,6 +177,14 @@ bool wlr_drm_syncobj_timeline_check(struct wlr_drm_syncobj_timeline *timeline,
|
|||
return true;
|
||||
}
|
||||
|
||||
bool wlr_drm_syncobj_timeline_signal(struct wlr_drm_syncobj_timeline *timeline, uint64_t point) {
|
||||
if (drmSyncobjTimelineSignal(timeline->drm_fd, &timeline->handle, &point, 1) != 0) {
|
||||
wlr_log(WLR_ERROR, "drmSyncobjTimelineSignal() failed");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
static int handle_eventfd_ready(int ev_fd, uint32_t mask, void *data) {
|
||||
struct wlr_drm_syncobj_timeline_waiter *waiter = data;
|
||||
|
||||
|
|
|
|||
|
|
@ -475,11 +475,7 @@ struct release_signaller {
|
|||
static void release_signaller_handle_buffer_release(struct wl_listener *listener, void *data) {
|
||||
struct release_signaller *signaller = wl_container_of(listener, signaller, buffer_release);
|
||||
|
||||
if (drmSyncobjTimelineSignal(signaller->timeline->drm_fd, &signaller->timeline->handle,
|
||||
&signaller->point, 1) != 0) {
|
||||
wlr_log(WLR_ERROR, "drmSyncobjTimelineSignal() failed");
|
||||
}
|
||||
|
||||
wlr_drm_syncobj_timeline_signal(signaller->timeline, signaller->point);
|
||||
wlr_drm_syncobj_timeline_unref(signaller->timeline);
|
||||
wl_list_remove(&signaller->buffer_release.link);
|
||||
free(signaller);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue