diff options
author | Joel Winarske <joel.winarske@gmail.com> | 2025-01-17 12:08:02 -0800 |
---|---|---|
committer | Jan-Simon Moeller <jsmoeller@linuxfoundation.org> | 2025-01-21 13:40:59 +0000 |
commit | 95f3a158db19e23dacf5ff608c4c74eb31d9e3e4 (patch) | |
tree | 1c699066857062ed9d518ba52f27fd79b5ffa344 | |
parent | b1a491c338e8784476bc3925fb1123dcd5a64625 (diff) |
Roll flutter-auto
-flutter sdk 3.27.1
-remove patch for fallback; upstream has formal fix
-remove patch for asio workaround; upstream has formal fix
-update workspace-automation configs to match
Change-Id: I77ec901eca20079d0a9126182777f75bee4b6057
Signed-off-by: Joel Winarske <joel.winarske@gmail.com>
Reviewed-on: https://gerrit.automotivelinux.org/gerrit/c/AGL/meta-agl/+/30775
Reviewed-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org>
Tested-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org>
(cherry picked from commit 34b699256549697a6ce7a0dac3447974178770c2)
Reviewed-on: https://gerrit.automotivelinux.org/gerrit/c/AGL/meta-agl/+/30752
6 files changed, 4 insertions, 194 deletions
diff --git a/meta-agl-flutter/conf/include/agl-flutter.inc b/meta-agl-flutter/conf/include/agl-flutter.inc index 6d60bc4a2..50bb7f73b 100644 --- a/meta-agl-flutter/conf/include/agl-flutter.inc +++ b/meta-agl-flutter/conf/include/agl-flutter.inc @@ -1,3 +1,3 @@ AGL_FEATURES += "agl-flutter" -FLUTTER_SDK_TAG = "3.24.2" +FLUTTER_SDK_TAG = "3.27.1" diff --git a/meta-agl-flutter/recipes-graphics/toyota/files/0001-backend-wayland_egl-Add-a-fallback-eglConfig.patch b/meta-agl-flutter/recipes-graphics/toyota/files/0001-backend-wayland_egl-Add-a-fallback-eglConfig.patch deleted file mode 100644 index f2195dddc..000000000 --- a/meta-agl-flutter/recipes-graphics/toyota/files/0001-backend-wayland_egl-Add-a-fallback-eglConfig.patch +++ /dev/null @@ -1,88 +0,0 @@ -From 372b9c4edd42b67827b75863b978091ba5cff5cd Mon Sep 17 00:00:00 2001 -From: Marius Vlad <marius.vlad@collabora.com> -Date: Thu, 17 Oct 2024 17:25:41 +0300 -Subject: [PATCH 1/2] backend/wayland_egl: Add a fallback eglConfig - -This seems to aid flutter-auto at displaying an image on agl-rdp -with software rendering, and on agl-kvm with virgl. Makes uses of a fallback -eGLConfig (< 24 bit) and tries to use that one rather than the default one (24-bit). - -Bug-AGL: SPEC-5260 -Signed-off-by: Marius Vlad <marius.vlad@collabora.com> ---- - cmake/config_common.h.in | 17 ++++++++++++++++- - shell/backend/wayland_egl/egl.cc | 23 ++++++++++++++++++++--- - 2 files changed, 36 insertions(+), 4 deletions(-) - -diff --git a/cmake/config_common.h.in b/cmake/config_common.h.in -index 07ce9b7..2c54c67 100644 ---- a/cmake/config_common.h.in -+++ b/cmake/config_common.h.in -@@ -155,6 +155,21 @@ static constexpr std::array<EGLint, 27> kEglConfigAttribs = {{ - // clang-format on - }}; - -+ -+static constexpr std::array<EGLint, 27> kEglConfigAttribsFallBack = {{ -+ // clang-format off -+ EGL_SURFACE_TYPE, EGL_WINDOW_BIT, -+ EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT, -+ -+ EGL_RED_SIZE, 1, -+ EGL_GREEN_SIZE, 1, -+ EGL_BLUE_SIZE, 1, -+ EGL_ALPHA_SIZE, 2, -+ EGL_NONE // termination sentinel -+ // clang-format on -+}}; -+ -+ - // All vkCreate* functions take an optional allocator. For now, we select the - // default allocator by passing in a null pointer, and we highlight the argument - // by using the VKALLOC constant. -@@ -181,4 +196,4 @@ constexpr struct VkAllocationCallbacks* VKALLOC = nullptr; - #cmakedefine01 ENV32BIT - #cmakedefine01 ENV64BIT - --#endif //CONFIG_COMMON_H_ -\ No newline at end of file -+#endif //CONFIG_COMMON_H_ -diff --git a/shell/backend/wayland_egl/egl.cc b/shell/backend/wayland_egl/egl.cc -index 99555d6..70164ba 100644 ---- a/shell/backend/wayland_egl/egl.cc -+++ b/shell/backend/wayland_egl/egl.cc -@@ -62,11 +62,28 @@ Egl::Egl(void* native_display, int buffer_size, bool debug) - break; - } - } -- free(configs); - if (m_config == nullptr) { -- spdlog::critical("did not find config with buffer size {}", m_buffer_size); -- assert(false); -+ // try with the fallback one -+ spdlog::critical("Could not use default EGLConfig trying with fallback."); -+ ret = eglChooseConfig(m_dpy, kEglConfigAttribsFallBack.data(), configs, -+ count, &n); -+ assert(ret && n >= 1); -+ -+ for (EGLint i = 0; i < n; i++) { -+ eglGetConfigAttrib(m_dpy, configs[i], EGL_BUFFER_SIZE, &size); -+ SPDLOG_DEBUG("Buffer size for config {} is {}", i, size); -+ if (m_buffer_size <= size) { -+ memcpy(&m_config, &configs[i], sizeof(EGLConfig)); -+ break; -+ } -+ } -+ if (m_config == nullptr) { -+ spdlog::critical("did not find config with buffer size {}", -+ m_buffer_size); -+ assert(false); -+ } - } -+ free(configs); - - m_context = eglCreateContext(m_dpy, m_config, EGL_NO_CONTEXT, - kEglContextAttribs.data()); --- -2.43.0 - diff --git a/meta-agl-flutter/recipes-graphics/toyota/files/0001-flutter_desktop-Remove-asio-post-call.patch b/meta-agl-flutter/recipes-graphics/toyota/files/0001-flutter_desktop-Remove-asio-post-call.patch deleted file mode 100644 index f9cfea44d..000000000 --- a/meta-agl-flutter/recipes-graphics/toyota/files/0001-flutter_desktop-Remove-asio-post-call.patch +++ /dev/null @@ -1,94 +0,0 @@ -From a69dfff93b41b30ae8e237817548baf50d0c1287 Mon Sep 17 00:00:00 2001 -From: Marius Vlad <marius.vlad@collabora.com> -Date: Thu, 24 Oct 2024 14:45:35 +0300 -Subject: [PATCH] flutter_desktop: Remove asio::post call - -Do not dispatch/post the key event keycode using asio::post as that -seems to cause crashes as the messenger pointer seems to be go out of -scope or seems to be invalid. - -Bug-AGL: SPEC-5272 -Signed-off-by: Marius Vlad <marius.vlad@collabora.com> ---- - shell/platform/homescreen/flutter_desktop.cc | 65 ++++++++++---------- - 1 file changed, 31 insertions(+), 34 deletions(-) - -diff --git a/shell/platform/homescreen/flutter_desktop.cc b/shell/platform/homescreen/flutter_desktop.cc -index bb5be4b..5d26dd9 100644 ---- a/shell/platform/homescreen/flutter_desktop.cc -+++ b/shell/platform/homescreen/flutter_desktop.cc -@@ -161,40 +161,37 @@ std::future<bool> PostMessengerSendWithReply( - void* user_data) { - const auto promise(std::make_shared<std::promise<bool>>()); - auto promise_future(promise->get_future()); -- asio::post(*messenger->GetEngine()->platform_task_runner->GetStrandContext(), -- [&, promise, channel, message, message_size, reply, user_data]() { -- FlutterPlatformMessageResponseHandle* response_handle = nullptr; -- if (reply != nullptr && user_data != nullptr) { -- const FlutterEngineResult result = -- LibFlutterEngine->PlatformMessageCreateResponseHandle( -- messenger->GetEngine()->flutter_engine, reply, -- user_data, &response_handle); -- if (result != kSuccess) { -- spdlog::error("Failed to create response handle"); -- promise->set_value(false); -- return; -- } -- } -- -- auto platform_message = std::make_unique<FlutterPlatformMessage>(); -- platform_message->struct_size = sizeof(FlutterPlatformMessage); -- platform_message->channel = channel; -- platform_message->message = message; -- platform_message->message_size = message_size; -- platform_message->response_handle = response_handle; -- -- const FlutterEngineResult message_result = -- LibFlutterEngine->SendPlatformMessage( -- messenger->GetEngine()->flutter_engine, -- platform_message.release()); -- -- if (response_handle != nullptr) { -- LibFlutterEngine->PlatformMessageReleaseResponseHandle( -- messenger->GetEngine()->flutter_engine, response_handle); -- } -- -- promise->set_value(message_result == kSuccess); -- }); -+ -+ FlutterPlatformMessageResponseHandle* response_handle = nullptr; -+ if (reply != nullptr && user_data != nullptr) { -+ const FlutterEngineResult result = -+ LibFlutterEngine->PlatformMessageCreateResponseHandle( -+ messenger->GetEngine()->flutter_engine, reply, user_data, -+ &response_handle); -+ if (result != kSuccess) { -+ spdlog::error("Failed to create response handle"); -+ promise->set_value(false); -+ return promise_future; -+ } -+ } -+ -+ auto platform_message = std::make_unique<FlutterPlatformMessage>(); -+ platform_message->struct_size = sizeof(FlutterPlatformMessage); -+ platform_message->channel = channel; -+ platform_message->message = message; -+ platform_message->message_size = message_size; -+ platform_message->response_handle = response_handle; -+ -+ const FlutterEngineResult message_result = -+ LibFlutterEngine->SendPlatformMessage( -+ messenger->GetEngine()->flutter_engine, platform_message.release()); -+ -+ if (response_handle != nullptr) { -+ LibFlutterEngine->PlatformMessageReleaseResponseHandle( -+ messenger->GetEngine()->flutter_engine, response_handle); -+ } -+ -+ promise->set_value(message_result == kSuccess); - return promise_future; - } - --- -2.43.0 - diff --git a/meta-agl-flutter/recipes-graphics/toyota/flutter-auto_aglflutter.inc b/meta-agl-flutter/recipes-graphics/toyota/flutter-auto_aglflutter.inc index 29c023fca..0b4610c02 100644 --- a/meta-agl-flutter/recipes-graphics/toyota/flutter-auto_aglflutter.inc +++ b/meta-agl-flutter/recipes-graphics/toyota/flutter-auto_aglflutter.inc @@ -1,12 +1,4 @@ FILESEXTRAPATHS:prepend := "${THISDIR}/files:" -EGLCONFIG_FALLBACK = "${@bb.utils.contains_any('AGL_FEATURES', 'agl-rdp agl-kvm-guest', '', 'file://0001-backend-wayland_egl-Add-a-fallback-eglConfig.patch', d)}" SRC_URI:append:use-nxp-bsp = " file://0001-Disable-on_frame_base_surface-wl_surface_commit.patch" -SRC_URI:append = " ${EGLCONFIG_FALLBACK}" -# necessary to avoid crashing flutter-auto when a key keyboard event is emitted -SRC_URI:append = " file://0001-flutter_desktop-Remove-asio-post-call.patch" - -# Disable WIP webview plugin on 32-bit ARM platforms for now, as build -# failures have been seen on qemuarm and beaglebone. -PACKAGECONFIG:remove:arm = "webview_flutter_view" diff --git a/meta-agl-flutter/tools/configs/_globals.json b/meta-agl-flutter/tools/configs/_globals.json index 1830c8d40..0418e629f 100644 --- a/meta-agl-flutter/tools/configs/_globals.json +++ b/meta-agl-flutter/tools/configs/_globals.json @@ -1,5 +1,5 @@ { - "flutter-version": "3.24.1", + "flutter-version": "3.27.1", "github_token": "", "cookie_file": "" } diff --git a/meta-agl-flutter/tools/configs/_repos.json b/meta-agl-flutter/tools/configs/_repos.json index 5fb8aa047..8fcac4b30 100644 --- a/meta-agl-flutter/tools/configs/_repos.json +++ b/meta-agl-flutter/tools/configs/_repos.json @@ -1,12 +1,12 @@ [ { "uri": "https://github.com/toyota-connected/ivi-homescreen.git", - "rev": "e87c1797f838e20f0a4c1af309541d63986058ca", + "rev": "2341312e5118a9b96a3f0e7c13a2813b4a7e779c", "branch": "v2.0" }, { "uri": "https://github.com/toyota-connected/ivi-homescreen-plugins.git", - "rev": "41d00635f89c064aa32f2cef3147c59b8f61694f", + "rev": "f2a7336c34ed4720742a42245b84de56729d56e3", "branch": "v2.0" }, { |