backend/drm: add support for explicit sync APIs

This commit is contained in:
Simon Ser 2021-10-20 20:09:38 +02:00
parent 26aa4f5f5c
commit 7aff45fa0d
5 changed files with 75 additions and 1 deletions

View file

@ -36,7 +36,9 @@ static const uint32_t COMMIT_OUTPUT_STATE =
WLR_OUTPUT_STATE_BUFFER |
WLR_OUTPUT_STATE_MODE |
WLR_OUTPUT_STATE_ENABLED |
WLR_OUTPUT_STATE_GAMMA_LUT;
WLR_OUTPUT_STATE_GAMMA_LUT |
WLR_OUTPUT_STATE_WAIT_TIMELINE |
WLR_OUTPUT_STATE_SIGNAL_TIMELINE;
static const uint32_t SUPPORTED_OUTPUT_STATE =
WLR_OUTPUT_STATE_BACKEND_OPTIONAL | COMMIT_OUTPUT_STATE;
@ -491,6 +493,13 @@ static bool drm_connector_test(struct wlr_output *output,
}
}
if ((output->pending.committed & (WLR_OUTPUT_STATE_WAIT_TIMELINE |
WLR_OUTPUT_STATE_SIGNAL_TIMELINE)) && conn->backend->parent) {
wlr_drm_conn_log(conn, WLR_DEBUG,
"Sync timelines are unsupported in multi-GPU mode");
return false;
}
struct wlr_drm_connector_state pending = {0};
drm_connector_state_init(&pending, conn, state);