platforms/drm: on NVidia do pageflips with QPainter

Otherwise it's just gonna display a static black screen

CCBUG: 438363
This commit is contained in:
Xaver Hugl 2021-06-10 00:26:23 +02:00
parent a24e92d0b7
commit 3d6659b0d7

View file

@ -658,7 +658,7 @@ bool DrmOutput::presentAtomically(const QSharedPointer<DrmBuffer> &buffer)
// EglStreamBackend queues normal page flips through EGL when used as the rendering backend,
// modesets are still performed through DRM-KMS
if (m_gpu->useEglStreams() && !m_modesetRequested && m_gpu == m_backend->primaryGpu()) {
if (m_gpu->useEglStreams() && !m_modesetRequested && m_gpu == m_backend->primaryGpu() && m_gpu->eglBackend() != nullptr) {
m_pageFlipPending = true;
return true;
}
@ -814,8 +814,8 @@ bool DrmOutput::doAtomicCommit(AtomicCommitMode mode)
// EglStreamBackend uses the NV_output_drm_flip_event EGL extension
// to register the flip event through eglStreamConsumerAcquireAttribNV
// but only when used as the rendering GPU
if (!m_gpu->useEglStreams() || m_gpu != m_backend->primaryGpu()) {
// but only when used as the rendering backend
if (!m_gpu->useEglStreams() || m_gpu != m_backend->primaryGpu() || m_gpu->eglBackend() == nullptr) {
flags |= DRM_MODE_PAGE_FLIP_EVENT;
}
}