eglfs: Fix screen cloning when atomic is enabled
The problem was introduced in the atomic code path only, the legacy
one has always specified the correct crtc id.
Amends 56149c0fbb
.
Pick-to: 6.4 6.3 6.2 5.15
Change-Id: Ie3a99ec4bc24901e1303631097a395fde8dbe110
Reviewed-by: Janne Koskinen <janne.p.koskinen@qt.io>
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
This commit is contained in:
parent
5b334729d3
commit
61806a058a
@ -324,20 +324,21 @@ void QEglFSKmsGbmScreen::flip()
|
|||||||
if (d.screen != this) {
|
if (d.screen != this) {
|
||||||
d.screen->ensureModeSet(fb->fb);
|
d.screen->ensureModeSet(fb->fb);
|
||||||
d.cloneFlipPending = true;
|
d.cloneFlipPending = true;
|
||||||
|
QKmsOutput &destOutput(d.screen->output());
|
||||||
|
|
||||||
if (device()->hasAtomicSupport()) {
|
if (device()->hasAtomicSupport()) {
|
||||||
#if QT_CONFIG(drm_atomic)
|
#if QT_CONFIG(drm_atomic)
|
||||||
drmModeAtomicReq *request = device()->threadLocalAtomicRequest();
|
drmModeAtomicReq *request = device()->threadLocalAtomicRequest();
|
||||||
if (request) {
|
if (request) {
|
||||||
drmModeAtomicAddProperty(request, d.screen->output().eglfs_plane->id,
|
drmModeAtomicAddProperty(request, destOutput.eglfs_plane->id,
|
||||||
d.screen->output().eglfs_plane->framebufferPropertyId, fb->fb);
|
destOutput.eglfs_plane->framebufferPropertyId, fb->fb);
|
||||||
drmModeAtomicAddProperty(request, d.screen->output().eglfs_plane->id,
|
drmModeAtomicAddProperty(request, destOutput.eglfs_plane->id,
|
||||||
d.screen->output().eglfs_plane->crtcPropertyId, op.crtc_id);
|
destOutput.eglfs_plane->crtcPropertyId, destOutput.crtc_id);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
} else {
|
} else {
|
||||||
int ret = drmModePageFlip(fd,
|
int ret = drmModePageFlip(fd,
|
||||||
d.screen->output().crtc_id,
|
destOutput.crtc_id,
|
||||||
fb->fb,
|
fb->fb,
|
||||||
DRM_MODE_PAGE_FLIP_EVENT,
|
DRM_MODE_PAGE_FLIP_EVENT,
|
||||||
d.screen);
|
d.screen);
|
||||||
|
Loading…
Reference in New Issue
Block a user