diff options
Diffstat (limited to 'meta-agl-flutter/recipes-graphics/toyota/files/0001-backend-wayland_egl-Add-a-fallback-eglConfig.patch')
-rw-r--r-- | meta-agl-flutter/recipes-graphics/toyota/files/0001-backend-wayland_egl-Add-a-fallback-eglConfig.patch | 88 |
1 files changed, 0 insertions, 88 deletions
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 - |