diff options
5 files changed, 14 insertions, 29 deletions
diff --git a/src/platformsupport/kmsconvenience/qkmsdevice.cpp b/src/platformsupport/kmsconvenience/qkmsdevice.cpp index 753fdb07af..494640b858 100644 --- a/src/platformsupport/kmsconvenience/qkmsdevice.cpp +++ b/src/platformsupport/kmsconvenience/qkmsdevice.cpp @@ -376,9 +376,9 @@ QPlatformScreen *QKmsDevice::createScreenForConnector(drmModeResPtr resources, output.subpixel = connector->subpixel; output.dpms_prop = connectorProperty(connector, QByteArrayLiteral("DPMS")); output.edid_blob = connectorPropertyBlob(connector, QByteArrayLiteral("EDID")); - output.wants_plane = false; - output.plane_id = 0; - output.plane_set = false; + output.wants_forced_plane = false; + output.forced_plane_id = 0; + output.forced_plane_set = false; output.drm_format = drmFormat; output.clone_source = cloneSource; @@ -390,8 +390,8 @@ QPlatformScreen *QKmsDevice::createScreenForConnector(drmModeResPtr resources, if (idx >= 0 && idx < int(planeResources->count_planes)) { drmModePlane *plane = drmModeGetPlane(m_dri_fd, planeResources->planes[idx]); if (plane) { - output.wants_plane = true; - output.plane_id = plane->plane_id; + output.wants_forced_plane = true; + output.forced_plane_id = plane->plane_id; qCDebug(qLcKmsDebug, "Forcing plane index %d, plane id %u (belongs to crtc id %u)", idx, plane->plane_id, plane->crtc_id); drmModeFreePlane(plane); diff --git a/src/platformsupport/kmsconvenience/qkmsdevice_p.h b/src/platformsupport/kmsconvenience/qkmsdevice_p.h index bbc03b8e2a..b253cced3c 100644 --- a/src/platformsupport/kmsconvenience/qkmsdevice_p.h +++ b/src/platformsupport/kmsconvenience/qkmsdevice_p.h @@ -113,9 +113,9 @@ struct QKmsOutput int subpixel = DRM_MODE_SUBPIXEL_UNKNOWN; drmModePropertyPtr dpms_prop = nullptr; drmModePropertyBlobPtr edid_blob = nullptr; - bool wants_plane = false; - uint32_t plane_id = 0; - bool plane_set = false; + bool wants_forced_plane = false; + uint32_t forced_plane_id = 0; + bool forced_plane_set = false; uint32_t drm_format = DRM_FORMAT_XRGB8888; QString clone_source; diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmscreen.cpp b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmscreen.cpp index ac6f8944ed..e8a94ed997 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmscreen.cpp +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmscreen.cpp @@ -191,8 +191,6 @@ void QEglFSKmsGbmScreen::ensureModeSet(uint32_t fb) { QKmsOutput &op(output()); const int fd = device()->fd(); - const uint32_t w = op.modes[op.mode].hdisplay; - const uint32_t h = op.modes[op.mode].vdisplay; if (!op.mode_set) { op.mode_set = true; @@ -225,19 +223,6 @@ void QEglFSKmsGbmScreen::ensureModeSet(uint32_t fb) qErrnoWarning(errno, "Could not set DRM mode for screen %s", qPrintable(name())); } } - - if (!op.plane_set) { - op.plane_set = true; - if (op.wants_plane) { - qCDebug(qLcEglfsKmsDebug, "Setting plane %u", op.plane_id); - int ret = drmModeSetPlane(fd, op.plane_id, op.crtc_id, - uint32_t(-1), 0, - 0, 0, w, h, - 0 << 16, 0 << 16, w << 16, h << 16); - if (ret) - qErrnoWarning(errno, "drmModeSetPlane failed"); - } - } } void QEglFSKmsGbmScreen::waitForFlip() diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldeviceintegration.cpp b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldeviceintegration.cpp index 3af21d768e..c04a5e1724 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldeviceintegration.cpp +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldeviceintegration.cpp @@ -180,7 +180,7 @@ void QEglFSKmsEglDeviceWindow::resetSurface() QEglFSKmsEglDeviceScreen *cur_screen = static_cast<QEglFSKmsEglDeviceScreen *>(screen()); Q_ASSERT(cur_screen); QKmsOutput &output(cur_screen->output()); - const uint32_t wantedId = !output.wants_plane ? output.crtc_id : output.plane_id; + const uint32_t wantedId = !output.wants_forced_plane ? output.crtc_id : output.forced_plane_id; qCDebug(qLcEglfsKmsDebug, "Searching for id: %d", wantedId); EGLOutputLayerEXT layer = EGL_NO_OUTPUT_LAYER_EXT; diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldevicescreen.cpp b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldevicescreen.cpp index a27c89faab..531b73d1dc 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldevicescreen.cpp +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldevicescreen.cpp @@ -105,12 +105,12 @@ void QEglFSKmsEglDeviceScreen::waitForFlip() qErrnoWarning(errno, "drmModeSetCrtc failed"); } - if (!op.plane_set) { - op.plane_set = true; + if (!op.forced_plane_set) { + op.forced_plane_set = true; - if (op.wants_plane) { - qCDebug(qLcEglfsKmsDebug, "Setting plane %u", op.plane_id); - int ret = drmModeSetPlane(fd, op.plane_id, op.crtc_id, uint32_t(-1), 0, + if (op.wants_forced_plane) { + qCDebug(qLcEglfsKmsDebug, "Setting plane %u", op.forced_plane_id); + int ret = drmModeSetPlane(fd, op.forced_plane_id, op.crtc_id, uint32_t(-1), 0, 0, 0, w, h, 0 << 16, 0 << 16, w << 16, h << 16); if (ret == -1) |