Skip to content

Commit

Permalink
drm: verify output format in commit
Browse files Browse the repository at this point in the history
  • Loading branch information
vaxerski committed Aug 21, 2024
1 parent 2cd1f78 commit 1c32562
Showing 1 changed file with 21 additions and 0 deletions.
21 changes: 21 additions & 0 deletions src/backend/drm/DRM.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1398,6 +1398,27 @@ bool Aquamarine::CDRMOutput::commitState(bool onlyTest) {
}
}

if (STATE.drmFormat == DRM_FORMAT_INVALID) {
backend->backend->log(AQ_LOG_ERROR, "drm: No format for output");
return false;
}

if (COMMITTED & COutputState::eOutputStateProperties::AQ_OUTPUT_STATE_FORMAT) {
// verify the format is valid for the primary plane
bool ok = false;
for (auto& f : getRenderFormats()) {
if (f.drmFormat == STATE.drmFormat) {
ok = true;
break;
}
}

if (!ok) {
backend->backend->log(AQ_LOG_ERROR, "drm: Selected format is not supported by the primary KMS plane");
return false;
}
}

if (STATE.adaptiveSync && !connector->canDoVrr) {
backend->backend->log(AQ_LOG_ERROR, "drm: No Adaptive sync support for output");
return false;
Expand Down

0 comments on commit 1c32562

Please sign in to comment.