drm/atomic: fix atomic reset being skipped, check nullptr elsewhere instead (#149)

This commit is contained in:
Ikalco 2025-02-27 08:21:05 -06:00 committed by GitHub
parent 2ff06343aa
commit e62592f0f4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 2 additions and 5 deletions

View file

@ -909,7 +909,7 @@ int Aquamarine::CDRMBackend::drmFD() {
static void handlePF(int fd, unsigned seq, unsigned tv_sec, unsigned tv_usec, unsigned crtc_id, void* data) {
auto pageFlip = (SDRMPageFlip*)data;
if (!pageFlip->connector)
if (!pageFlip || !pageFlip->connector)
return;
pageFlip->connector->isPageFlipPending = false;

View file

@ -244,10 +244,7 @@ bool Aquamarine::CDRMAtomicRequest::commit(uint32_t flagssss) {
return false;
}
if (!conn)
return false;
if (auto ret = drmModeAtomicCommit(backend->gpu->fd, req, flagssss, &conn->pendingPageFlip); ret) {
if (auto ret = drmModeAtomicCommit(backend->gpu->fd, req, flagssss, conn ? &conn->pendingPageFlip : nullptr); ret) {
backend->log((flagssss & DRM_MODE_ATOMIC_TEST_ONLY) ? AQ_LOG_DEBUG : AQ_LOG_ERROR,
std::format("atomic drm request: failed to commit: {}, flags: {}", strerror(ret == -1 ? errno : -ret), flagsToStr(flagssss)));
return false;