aboutsummaryrefslogtreecommitdiff
path: root/backend/drm/drm.c
diff options
context:
space:
mode:
authoremersion <contact@emersion.fr>2018-02-09 22:54:14 +0100
committeremersion <contact@emersion.fr>2018-02-09 22:54:14 +0100
commitbf6d24540000339029a30715f1f72b5b95a45018 (patch)
tree89c04c0a109bce115f9a749d8e1958d666e1f02d /backend/drm/drm.c
parent34489dca16ef9e7fd05c161b8b4f2fd5ce5e4ef0 (diff)
Swap buffers with damage
Diffstat (limited to 'backend/drm/drm.c')
-rw-r--r--backend/drm/drm.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/backend/drm/drm.c b/backend/drm/drm.c
index 08ced783..e1bf63db 100644
--- a/backend/drm/drm.c
+++ b/backend/drm/drm.c
@@ -190,7 +190,8 @@ static bool wlr_drm_connector_make_current(struct wlr_output *output,
return wlr_drm_surface_make_current(&conn->crtc->primary->surf, buffer_age);
}
-static bool wlr_drm_connector_swap_buffers(struct wlr_output *output) {
+static bool wlr_drm_connector_swap_buffers(struct wlr_output *output,
+ pixman_region32_t *damage) {
struct wlr_drm_connector *conn = (struct wlr_drm_connector *)output;
struct wlr_drm_backend *drm = (struct wlr_drm_backend *)output->backend;
if (!drm->session->active) {
@@ -203,7 +204,7 @@ static bool wlr_drm_connector_swap_buffers(struct wlr_output *output) {
}
struct wlr_drm_plane *plane = crtc->primary;
- struct gbm_bo *bo = wlr_drm_surface_swap_buffers(&plane->surf);
+ struct gbm_bo *bo = wlr_drm_surface_swap_buffers(&plane->surf, damage);
if (drm->parent) {
bo = wlr_drm_surface_mgpu_copy(&plane->mgpu_surf, bo);
}
@@ -635,7 +636,7 @@ static bool wlr_drm_connector_set_cursor(struct wlr_output *output,
GL_UNSIGNED_BYTE, bo_data);
glPixelStorei(GL_UNPACK_ROW_LENGTH_EXT, 0);
- wlr_drm_surface_swap_buffers(&plane->surf);
+ wlr_drm_surface_swap_buffers(&plane->surf, NULL);
gbm_bo_unmap(bo, bo_data);