diff options
Diffstat (limited to 'backend/drm/legacy.c')
-rw-r--r-- | backend/drm/legacy.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/backend/drm/legacy.c b/backend/drm/legacy.c index ca23bb1c..7c18b3e3 100644 --- a/backend/drm/legacy.c +++ b/backend/drm/legacy.c @@ -8,9 +8,24 @@ #include "backend/drm/iface.h" #include "backend/drm/util.h" +static bool legacy_crtc_test(struct wlr_drm_connector *conn, + const struct wlr_output_state *state) { + if ((state->committed & WLR_OUTPUT_STATE_BUFFER) && + state->buffer_type == WLR_OUTPUT_STATE_BUFFER_SCANOUT) { + wlr_drm_conn_log(conn, WLR_DEBUG, + "Cannot use direct scan-out with legacy KMS API"); + return false; + } + + return true; +} + static bool legacy_crtc_commit(struct wlr_drm_backend *drm, struct wlr_drm_connector *conn, const struct wlr_output_state *state, uint32_t flags, bool test_only) { + if (!legacy_crtc_test(conn, state)) { + return false; + } if (test_only) { return true; } |