meta-agl-flutter/recipes-graphics/toyota: Hot fix for current mode 31/29031/3
authorMarius Vlad <marius.vlad@collabora.com>
Mon, 19 Jun 2023 07:48:07 +0000 (10:48 +0300)
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>
Thu, 20 Jul 2023 13:39:14 +0000 (13:39 +0000)
The flags entry is bitmasked between preferred and current mode, which
we didn't account at all. This adds a temporary patch to fix that until
meta-flutter is updated with it.

Bug-AGL: SPEC-4841
Change-Id: I930bbaed59e468803e16cbb2c72df440a0c30746
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
meta-agl-flutter/recipes-graphics/toyota/files/0001-shell-wayland-display-Handle-flags-as-bitfield-entri.patch [new file with mode: 0644]
meta-agl-flutter/recipes-graphics/toyota/flutter-auto_aglflutter.inc

diff --git a/meta-agl-flutter/recipes-graphics/toyota/files/0001-shell-wayland-display-Handle-flags-as-bitfield-entri.patch b/meta-agl-flutter/recipes-graphics/toyota/files/0001-shell-wayland-display-Handle-flags-as-bitfield-entri.patch
new file mode 100644 (file)
index 0000000..6970388
--- /dev/null
@@ -0,0 +1,38 @@
+From 357634ceae6d730131b26bc3e72b4cf0b3e902ad Mon Sep 17 00:00:00 2001
+From: Marius Vlad <marius.vlad@collabora.com>
+Date: Mon, 19 Jun 2023 10:34:44 +0300
+Subject: [PATCH] shell/wayland/display: Handle flags as bitfield entries
+
+We can have preferred and current mode or'ed in the same time, so we
+can't really check just for current mode. Make sure we do get a valid
+width/height for the outputs to avoid going further.
+
+Bug-AGL: SPEC-4841
+Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
+---
+ shell/wayland/display.cc | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/shell/wayland/display.cc b/shell/wayland/display.cc
+index 434dd05..5ace67c 100644
+--- a/shell/wayland/display.cc
++++ b/shell/wayland/display.cc
+@@ -258,12 +258,14 @@ void Display::display_handle_mode(void* data,
+   (void)flags;
+   auto* oi = static_cast<output_info_t*>(data);
+-  if (flags == WL_OUTPUT_MODE_CURRENT) {
++  if ((flags & WL_OUTPUT_MODE_CURRENT) == WL_OUTPUT_MODE_CURRENT) {
+     oi->height = static_cast<unsigned int>(height);
+     oi->width = static_cast<unsigned int>(width);
+     oi->refresh_rate = refresh;
+   }
++  assert(oi->height && oi->width);
++
+   FML_DLOG(INFO) << "Video mode: " << width << " x " << height << " @ "
+                  << (refresh > 1000 ? refresh / 1000.0 : (double)refresh)
+                  << " Hz";
+-- 
+2.35.1
+
index 41035f5..02cd067 100644 (file)
@@ -1,6 +1,7 @@
 FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
 
-SRC_URI += "file://0001-Add-optional-agl_shell-plugin.patch"
+SRC_URI += "file://0001-Add-optional-agl_shell-plugin.patch \
+           file://0001-shell-wayland-display-Handle-flags-as-bitfield-entri.patch"
 
 # For now disable gstreamer to avoid needing to enable "commercial"
 # licenses for the stated ffmpeg dependency.