aboutsummaryrefslogtreecommitdiff
path: root/backend/drm/legacy.c
diff options
context:
space:
mode:
Diffstat (limited to 'backend/drm/legacy.c')
-rw-r--r--backend/drm/legacy.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/backend/drm/legacy.c b/backend/drm/legacy.c
index 6acb87d4..98397c2d 100644
--- a/backend/drm/legacy.c
+++ b/backend/drm/legacy.c
@@ -62,6 +62,23 @@ static bool legacy_crtc_commit(struct wlr_drm_backend *drm,
}
}
+ if ((output->pending.committed & WLR_OUTPUT_STATE_ADAPTIVE_SYNC_ENABLED) &&
+ drm_connector_supports_vrr(conn)) {
+ if (drmModeObjectSetProperty(drm->fd, crtc->id, DRM_MODE_OBJECT_CRTC,
+ crtc->props.vrr_enabled,
+ output->pending.adaptive_sync_enabled) != 0) {
+ wlr_log_errno(WLR_ERROR,
+ "drmModeObjectSetProperty(VRR_ENABLED) failed");
+ return false;
+ }
+ output->adaptive_sync_status = output->pending.adaptive_sync_enabled ?
+ WLR_OUTPUT_ADAPTIVE_SYNC_ENABLED :
+ WLR_OUTPUT_ADAPTIVE_SYNC_DISABLED;
+ wlr_log(WLR_DEBUG, "VRR %s on connector '%s'",
+ output->pending.adaptive_sync_enabled ? "enabled" : "disabled",
+ output->name);
+ }
+
if (cursor != NULL && drm_connector_is_cursor_visible(conn)) {
struct wlr_drm_fb *cursor_fb = plane_get_next_fb(cursor);
struct gbm_bo *cursor_bo =