diff --git a/src/backends/drm/drm_output.cpp b/src/backends/drm/drm_output.cpp index fb563a8d0e..e3f7576a24 100644 --- a/src/backends/drm/drm_output.cpp +++ b/src/backends/drm/drm_output.cpp @@ -372,6 +372,7 @@ bool DrmOutput::needsSoftwareTransformation() const bool DrmOutput::present(const QSharedPointer &buffer, QRegion damagedRegion) { if (!buffer || buffer->bufferId() == 0) { + presentFailed(); return false; } RenderLoopPrivate *renderLoopPrivate = RenderLoopPrivate::get(m_renderLoop); diff --git a/src/backends/drm/drm_pipeline.cpp b/src/backends/drm/drm_pipeline.cpp index 9a166cdb5d..843cc72094 100644 --- a/src/backends/drm/drm_pipeline.cpp +++ b/src/backends/drm/drm_pipeline.cpp @@ -47,12 +47,7 @@ DrmPipeline::~DrmPipeline() bool DrmPipeline::present(const QSharedPointer &buffer) { Q_ASSERT(pending.crtc); - if (!buffer) { - if (m_output) { - m_output->presentFailed(); - } - return false; - } + Q_ASSERT(buffer); m_primaryBuffer = buffer; auto buf = dynamic_cast(buffer.data()); // with direct scanout disallow modesets, calling presentFailed() and logging warnings