aboutsummaryrefslogtreecommitdiff
path: root/backend/drm/drm.c
diff options
context:
space:
mode:
Diffstat (limited to 'backend/drm/drm.c')
-rw-r--r--backend/drm/drm.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/backend/drm/drm.c b/backend/drm/drm.c
index 7d066b2d..f034bf9f 100644
--- a/backend/drm/drm.c
+++ b/backend/drm/drm.c
@@ -564,14 +564,19 @@ static bool drm_connector_commit(struct wlr_output *output) {
if (!drm_connector_set_mode(conn, wlr_mode)) {
return false;
}
- }
-
- // TODO: support modesetting with a buffer
- if (output->pending.committed & WLR_OUTPUT_STATE_BUFFER &&
- !(output->pending.committed & WLR_OUTPUT_STATE_MODE)) {
+ } else if (output->pending.committed & WLR_OUTPUT_STATE_BUFFER) {
+ // TODO: support modesetting with a buffer
if (!drm_connector_commit_buffer(output)) {
return false;
}
+ } else if (output->pending.committed &
+ (WLR_OUTPUT_STATE_ADAPTIVE_SYNC_ENABLED |
+ WLR_OUTPUT_STATE_GAMMA_LUT)) {
+ assert(conn->crtc != NULL);
+ // TODO: maybe request a page-flip event here?
+ if (!drm_crtc_commit(conn, 0)) {
+ return false;
+ }
}
return true;