diff options
Diffstat (limited to 'meta-agl-drm-lease')
5 files changed, 59 insertions, 26 deletions
diff --git a/meta-agl-drm-lease/dynamic-layers/meta-agl-core/recipes-graphics/agl-compositor/agl-compositor/0001-compositor-Add-missing-drm-lease-name.patch b/meta-agl-drm-lease/dynamic-layers/meta-agl-core/recipes-graphics/agl-compositor/agl-compositor/0001-compositor-Add-missing-drm-lease-name.patch new file mode 100644 index 00000000..57ff8486 --- /dev/null +++ b/meta-agl-drm-lease/dynamic-layers/meta-agl-core/recipes-graphics/agl-compositor/agl-compositor/0001-compositor-Add-missing-drm-lease-name.patch @@ -0,0 +1,35 @@ +From f2e5939476630add3bf2c9254f72a0b57101f848 Mon Sep 17 00:00:00 2001 +From: Marius Vlad <marius.vlad@collabora.com> +Date: Mon, 10 Jun 2024 12:02:33 +0300 +Subject: [PATCH] compositor: Add missing drm-lease-name + +This was an oversight from commit 7963529fc8e3e, 'Add drm-lease +support', which backported the drm-lease support in the AGL compositor +for next release. + +Without a drm-lease-name, the device_id will be an negative integer +resulting in not using the parameter. This should fix leasing with the +AGL compositor. + +Bug-AGL: SPEC-5160 +Signed-off-by: Marius Vlad <marius.vlad@collabora.com> +Change-Id: I4282c115d2038852f6a56a77ce6ab81f2b8f62b4 +--- + src/compositor.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/compositor.c b/src/compositor.c +index 156a0ae..65c61d8 100644 +--- a/src/compositor.c ++++ b/src/compositor.c +@@ -1076,6 +1076,7 @@ load_drm_backend(struct ivi_compositor *ivi, int *argc, char *argv[], + const struct weston_option options[] = { + { WESTON_OPTION_STRING, "seat", 0, &config.seat_id }, + { WESTON_OPTION_STRING, "drm-device", 0, &config.specific_device }, ++ { WESTON_OPTION_STRING, "drm-lease", 0, &drm_lease_name }, + { WESTON_OPTION_BOOLEAN, "current-mode", 0, &use_current_mode }, + { WESTON_OPTION_BOOLEAN, "use-pixman", 0, &force_pixman }, + { WESTON_OPTION_BOOLEAN, "continue-without-input", false, &without_input } +-- +2.43.0 + diff --git a/meta-agl-drm-lease/dynamic-layers/meta-agl-core/recipes-graphics/agl-compositor/agl-compositor_git.bbappend b/meta-agl-drm-lease/dynamic-layers/meta-agl-core/recipes-graphics/agl-compositor/agl-compositor_git.bbappend index 3c64ce1f..63138299 100644 --- a/meta-agl-drm-lease/dynamic-layers/meta-agl-core/recipes-graphics/agl-compositor/agl-compositor_git.bbappend +++ b/meta-agl-drm-lease/dynamic-layers/meta-agl-core/recipes-graphics/agl-compositor/agl-compositor_git.bbappend @@ -1,6 +1,6 @@ FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:" -SRC_URI += "file://0001-Add-drm-lease-support.patch" +SRC_URI += "file://0001-Add-drm-lease-support.patch file://0001-compositor-Add-missing-drm-lease-name.patch" PACKAGECONFIG[drm-lease] = "-Ddrm-lease=true,-Ddrm-lease=false,drm-lease-manager" PACKAGECONFIG:append = " drm-lease" diff --git a/meta-agl-drm-lease/dynamic-layers/meta-qt6/README.md b/meta-agl-drm-lease/dynamic-layers/meta-qt6/README.md index 85069c0a..329ee834 100644 --- a/meta-agl-drm-lease/dynamic-layers/meta-qt6/README.md +++ b/meta-agl-drm-lease/dynamic-layers/meta-qt6/README.md @@ -2,7 +2,7 @@ The meta-agl-drm-lease/dynamic-layers/meta-qt6 is a DRM lease support for Qt 6.x eglfs kms backend. -This patch tested in Qt6.2.2 and Qt6.2.3. +This patch tested in Qt6.7. ## Usage diff --git a/meta-agl-drm-lease/dynamic-layers/meta-qt6/recipes-qt/qt6/qtbase/0001-Add-drm-lease-client-support-to-eglfs-kms-backend.patch b/meta-agl-drm-lease/dynamic-layers/meta-qt6/recipes-qt/qt6/qtbase/0001-Add-drm-lease-client-support-to-eglfs-kms-backend.patch index f4d197ed..5475e774 100644 --- a/meta-agl-drm-lease/dynamic-layers/meta-qt6/recipes-qt/qt6/qtbase/0001-Add-drm-lease-client-support-to-eglfs-kms-backend.patch +++ b/meta-agl-drm-lease/dynamic-layers/meta-qt6/recipes-qt/qt6/qtbase/0001-Add-drm-lease-client-support-to-eglfs-kms-backend.patch @@ -1,4 +1,4 @@ -From 85a85537b17742a839092bcc2a4684ab0bdb65d5 Mon Sep 17 00:00:00 2001 +From 7b0bff28e991bf9f8110a6e824c29044a7e09d39 Mon Sep 17 00:00:00 2001 From: Naoto Yamaguchi <naoto.yamaguchi@aisin.co.jp> Date: Tue, 4 Jan 2022 23:52:31 +0900 Subject: [PATCH] Add drm-lease client support to eglfs kms backend @@ -160,22 +160,22 @@ index 0000000000..8dfac920ca + DESCRIPTION "The DRM Lease Manager uses the DRM Lease feature, introduced in the Linux kernel version 4.15, to partition display controller output resources between multiple processes." +) diff --git a/src/gui/configure.cmake b/src/gui/configure.cmake -index 0bf250eab6..b092b746c0 100644 +index 4affd7b30a..44ed626649 100644 --- a/src/gui/configure.cmake +++ b/src/gui/configure.cmake -@@ -38,6 +38,7 @@ endif() +@@ -46,6 +46,7 @@ endif() qt_find_package(Fontconfig PROVIDED_TARGETS Fontconfig::Fontconfig MODULE_NAME gui QMAKE_LIB fontconfig) qt_add_qmake_lib_dependency(fontconfig freetype) qt_find_package(gbm PROVIDED_TARGETS gbm::gbm MODULE_NAME gui QMAKE_LIB gbm) +qt_find_package(Libdlmclient PROVIDED_TARGETS Libdlmclient::Libdlmclient MODULE_NAME gui QMAKE_LIB libdlmclient) qt_find_package(WrapSystemHarfbuzz 2.6.0 PROVIDED_TARGETS WrapSystemHarfbuzz::WrapSystemHarfbuzz MODULE_NAME gui QMAKE_LIB harfbuzz) qt_find_package(Libinput PROVIDED_TARGETS Libinput::Libinput MODULE_NAME gui QMAKE_LIB libinput) - qt_find_package(JPEG PROVIDED_TARGETS JPEG::JPEG MODULE_NAME gui QMAKE_LIB libjpeg) + qt_find_package(WrapSystemJpeg PROVIDED_TARGETS WrapSystemJpeg::WrapSystemJpeg MODULE_NAME gui QMAKE_LIB libjpeg) diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/CMakeLists.txt b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/CMakeLists.txt -index a20a4a084d..2af7904eb6 100644 +index d575ae9d4f..7cf2d5dd78 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/CMakeLists.txt +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/CMakeLists.txt -@@ -23,6 +23,7 @@ qt_internal_add_module(EglFsKmsGbmSupportPrivate +@@ -24,6 +24,7 @@ qt_internal_add_module(EglFsKmsGbmSupportPrivate Qt::GuiPrivate Qt::KmsSupportPrivate gbm::gbm @@ -183,19 +183,17 @@ index a20a4a084d..2af7904eb6 100644 ) ##################################################################### ## QEglFSKmsGbmIntegrationPlugin Plugin: -@@ -44,6 +45,7 @@ qt_internal_add_plugin(QEglFSKmsGbmIntegrationPlugin +@@ -45,4 +46,5 @@ qt_internal_add_plugin(QEglFSKmsGbmIntegrationPlugin Qt::GuiPrivate Qt::KmsSupportPrivate gbm::gbm + Libdlmclient::Libdlmclient ) - - #### Keys ignored in scope 3:.:.:eglfs_kms-plugin.pro:<TRUE>: diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmdevice.cpp b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmdevice.cpp -index b5b7811b79..1e77c72ee5 100644 +index 89479fc250..2b4280ef12 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmdevice.cpp +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmdevice.cpp -@@ -56,32 +56,51 @@ Q_DECLARE_LOGGING_CATEGORY(qLcEglfsKmsDebug) +@@ -20,32 +20,51 @@ Q_DECLARE_LOGGING_CATEGORY(qLcEglfsKmsDebug) QEglFSKmsGbmDevice::QEglFSKmsGbmDevice(QKmsScreenConfig *screenConfig, const QString &path) : QEglFSKmsDevice(screenConfig, path) , m_gbm_device(nullptr) @@ -254,9 +252,9 @@ index b5b7811b79..1e77c72ee5 100644 - setFd(fd); + setFd(drmfd); - m_eventReader.create(this); - -@@ -99,7 +118,11 @@ void QEglFSKmsGbmDevice::close() + if (usesEventReader()) { + qCDebug(qLcEglfsKmsDebug, "Using dedicated drm event reading thread"); +@@ -70,7 +89,11 @@ void QEglFSKmsGbmDevice::close() m_gbm_device = nullptr; } @@ -270,27 +268,27 @@ index b5b7811b79..1e77c72ee5 100644 setFd(-1); } diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmdevice_p.h b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmdevice_p.h -index bb67d800ee..b2d705800e 100644 +index e00992ed29..727555c5bd 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmdevice_p.h +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmdevice_p.h -@@ -57,6 +57,7 @@ - #include <private/qeglfskmsdevice_p.h> +@@ -22,6 +22,7 @@ + #include <private/qeglfskmseventreader_p.h> #include <gbm.h> +#include <dlmclient.h> QT_BEGIN_NAMESPACE -@@ -92,6 +93,9 @@ private: - +@@ -61,6 +62,9 @@ private: gbm_device *m_gbm_device; - + QEglFSKmsEventReader m_eventReader; + QEglFSKmsGbmCursor *m_globalCursor; ++ + // only used for DRM lease + struct dlm_lease *m_lease; -+ - QEglFSKmsGbmCursor *m_globalCursor; }; + QT_END_NAMESPACE -- 2.25.1 diff --git a/meta-agl-drm-lease/recipes-graphics/drm-lease-manager/drm-lease-manager_git.bb b/meta-agl-drm-lease/recipes-graphics/drm-lease-manager/drm-lease-manager_git.bb index 0996019f..6a98bd2e 100644 --- a/meta-agl-drm-lease/recipes-graphics/drm-lease-manager/drm-lease-manager_git.bb +++ b/meta-agl-drm-lease/recipes-graphics/drm-lease-manager/drm-lease-manager_git.bb @@ -6,8 +6,8 @@ SRC_URI = "git://gerrit.automotivelinux.org/gerrit/src/drm-lease-manager;protoco file://run-ptest \ " -PV = "0.1+git${SRCPV}" -SRCREV = "88cbd73ba10a589734cf126b64e74a6f42a5d5a7" +PV = "0.2+git${SRCPV}" +SRCREV = "8ec09a65cd5b390b3d24bfb6c7a73993a3d98a56" S = "${WORKDIR}/git" |