platforms/drm: waitIdle before updating outputs
KMS can only ever have one frame pending at the moment. If we update the outputs while a pageflip is still pending on any output the atomic commit will fail with EBUSY, which both invalidates the testing for output configuration and makes applying the wanted configuration fail. This can be removed again once KMS gains the ability to do mailbox presentation; that will likely still take a while though. BUG: 442677
This commit is contained in:
parent
2200febcd6
commit
6d79d855be
1 changed files with 1 additions and 0 deletions
|
@ -202,6 +202,7 @@ void DrmGpu::initDrmResources()
|
||||||
|
|
||||||
bool DrmGpu::updateOutputs()
|
bool DrmGpu::updateOutputs()
|
||||||
{
|
{
|
||||||
|
waitIdle();
|
||||||
DrmScopedPointer<drmModeRes> resources(drmModeGetResources(m_fd));
|
DrmScopedPointer<drmModeRes> resources(drmModeGetResources(m_fd));
|
||||||
if (!resources) {
|
if (!resources) {
|
||||||
qCWarning(KWIN_DRM) << "drmModeGetResources failed";
|
qCWarning(KWIN_DRM) << "drmModeGetResources failed";
|
||||||
|
|
Loading…
Reference in a new issue