mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2025-10-29 05:40:12 -04:00
backend/drm: Destroy page flips on backend destroy
When we destroy the backend, page flips will no longer be invoked meaning those won't clean up the page flips for us.
This commit is contained in:
parent
3aed24b8d4
commit
b06d58fa8b
3 changed files with 9 additions and 3 deletions
|
|
@ -39,6 +39,11 @@ static void backend_destroy(struct wlr_backend *backend) {
|
|||
destroy_drm_connector(conn);
|
||||
}
|
||||
|
||||
struct wlr_drm_page_flip *page_flip, *page_flip_tmp;
|
||||
wl_list_for_each_safe(page_flip, page_flip_tmp, &drm->page_flips, link) {
|
||||
drm_page_flip_destroy(page_flip);
|
||||
}
|
||||
|
||||
wlr_backend_finish(backend);
|
||||
|
||||
wl_list_remove(&drm->display_destroy.link);
|
||||
|
|
|
|||
|
|
@ -420,7 +420,7 @@ static void drm_connector_set_pending_page_flip(struct wlr_drm_connector *conn,
|
|||
conn->pending_page_flip = page_flip;
|
||||
}
|
||||
|
||||
static void page_flip_destroy(struct wlr_drm_page_flip *page_flip) {
|
||||
void drm_page_flip_destroy(struct wlr_drm_page_flip *page_flip) {
|
||||
if (!page_flip) {
|
||||
return;
|
||||
}
|
||||
|
|
@ -476,7 +476,7 @@ static bool drm_crtc_commit(struct wlr_drm_connector *conn,
|
|||
drm_fb_clear(&layer->pending_fb);
|
||||
}
|
||||
|
||||
page_flip_destroy(page_flip);
|
||||
drm_page_flip_destroy(page_flip);
|
||||
}
|
||||
return ok;
|
||||
}
|
||||
|
|
@ -1696,7 +1696,7 @@ static void handle_page_flip(int fd, unsigned seq,
|
|||
if (conn != NULL) {
|
||||
conn->pending_page_flip = NULL;
|
||||
}
|
||||
page_flip_destroy(page_flip);
|
||||
drm_page_flip_destroy(page_flip);
|
||||
|
||||
if (conn == NULL) {
|
||||
return;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue