diff options
Diffstat (limited to 'backend')
| -rw-r--r-- | backend/drm/drm.c | 15 | 
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; | 
