Skip to content

Update Flutter 3.44.1#36

Merged
JSUYA merged 25 commits into
flutter-tizen:flutter-3.44.1from
JSUYA:flutter-3.44.1-candidate.0
Jun 10, 2026
Merged

Update Flutter 3.44.1#36
JSUYA merged 25 commits into
flutter-tizen:flutter-3.44.1from
JSUYA:flutter-3.44.1-candidate.0

Conversation

@JSUYA

@JSUYA JSUYA commented Jun 5, 2026

Copy link
Copy Markdown
Member

flutter-tizen : flutter-tizen/flutter-tizen#773
embedder: flutter-tizen/embedder#177

  • Added a commit that applied gemini's review.
  • Added a commit supporting GL_TEXTURE_EXTERNAL_OES target for external textures.

These patches have been excluded. (flutter-tizen/flutter-tizen#771 (comment))

  • [Tizen] Support EmbedderExternalTextureGL for impeller
  • [Tizen] Re-implemented render external texture gl for impeller to avoid change FlutterOpenGLTexture and use deprecated api
  • [Tizen] Fix TextureLRU::FindTexture returning wrong texture

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces Tizen cross-compilation support, including sysroot generation and toolchain configurations, and implements Vulkan external texture support in the embedder API alongside a texture LRU cache for Impeller GLES. The review feedback identifies a bug in the TextureLRU::FindTexture logic where shifting elements returns incorrect data, and a GPU resource leak due to the missing invocation of the destruction_callback in EmbedderExternalTextureSourceVulkan. Additionally, the feedback highlights ABI compatibility issues with the missing struct_size field in FlutterVulkanTexture, missing validation checks for Vulkan handles and formats, a font fallback regression on standard Linux builds, and potential network hangs in the sysroot generator script.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment thread engine/src/flutter/shell/platform/embedder/embedder_external_texture_gl.cc Outdated
Comment thread engine/src/flutter/shell/platform/embedder/embedder.h
Comment thread engine/src/flutter/shell/platform/embedder/embedder.cc
Comment thread engine/src/flutter/txt/src/txt/platform_linux.cc
Comment thread engine/src/flutter/ci/tizen/generate_sysroot.py
Comment thread engine/src/flutter/ci/tizen/generate_sysroot.py
@JSUYA JSUYA force-pushed the flutter-3.44.1-candidate.0 branch 2 times, most recently from 92e0369 to 92c5145 Compare June 5, 2026 09:57
@JSUYA JSUYA force-pushed the flutter-3.44.1-candidate.0 branch from 92c5145 to e6f204a Compare June 5, 2026 10:45
@JSUYA

JSUYA commented Jun 5, 2026

Copy link
Copy Markdown
Member Author

I have identified the code issue required for the 3.44.1 update.
We need to rebuild the patch according to this comment, flutter-tizen/flutter-tizen#771 (comment).

@JSUYA JSUYA force-pushed the flutter-3.44.1-candidate.0 branch from e6f204a to 7e3b29a Compare June 5, 2026 11:33
Stop generating the GLES3 impeller shader variants in shaders.gni.

Flutter 3.44 changed shell/platform/embedder/embedder_surface_gl_impeller.cc
to include the impeller/entity/gles3/* headers and select GLES3 shaders at
runtime via GetShaderMappings(is_gles3). With GLES3 generation disabled those
headers/symbols do not exist, so adapt that consumer here: drop the gles3
includes and always use the GLES2 shader set (valid on GLES3 contexts too).
This keeps the disable-gles3 patch self-consistent.
@JSUYA JSUYA force-pushed the flutter-3.44.1-candidate.0 branch from 5eec0a5 to e931dae Compare June 9, 2026 09:20
xiaowei-guan and others added 14 commits June 9, 2026 18:31
flutter-tizen/flutter-tizen#554

Added x64 artifacts for x64 emulator support
(Currently, x64 Release mode is only supported on Linux hosts.)
flutter engine's window build uses Window SDKs 10.0.22621.0. window-2025 runner in gitHub actions no longer supports the 10.0.22621.0 SDK.
Add new struct FlutterVulkanTexture  for embedder :
```
typedef struct {
  /// Handle to the VkImage that is owned by the embedder. The engine will
  /// bind this image for writing the frame.
  FlutterVulkanImageHandle image;
  /// The VkDeviceMemory that backs the iamge.
  FlutterVulkanDeviceMemoryHandle image_memory;
  /// The VkFormat of the image (for example: VK_FORMAT_R8G8B8A8_UNORM).
  uint32_t format;
  /// User data to be returned on the invocation of the destruction callback.
  void* user_data;
  /// Callback invoked (on an engine managed thread) that asks the embedder to
  /// collect the texture.
  VoidCallback destruction_callback;
  /// Optional parameters for texture height/width, default is 0, non-zero means
  /// the texture has the specified width/height.
  /// Width of the texture.
  size_t width;
  /// Height of the texture.
  size_t height;
} FlutterVulkanTexture;
```
The implement of [texture
source](https://github.com/flutter-tizen/flutter/pull/17/files#diff-7955a8522a753162869f2e8ca0017a83f4854b60800c844202e70c3aa00ff0c9R5-R204)
refer to the solution of android
platform(https://github.com/flutter-tizen/flutter/blob/flutter-3.35.3/engine/src/flutter/impeller/renderer/backend/vulkan/android/ahb_texture_source_vk.cc)

and I have submitted the code [Support render texture for
embedder](xiaowei-guan/embedder@6a94746),
I will create a new PR after[ support vulkan
backend](flutter-tizen/embedder#110) PR
released.
Because Tizen platform don't support hardware key, so we can't create a
cache source to store the gpu resource.
so we should reset the resouce before the frame end.
Inject a small compat header into the custom cross-toolchain command line
so Linux targets built with Tizen sysroots still see __NR_getrandom even
when the sysroot headers do not export it.

This keeps third_party/dart untouched and fixes builds across common Tizen
architectures:
- x86: 355
- x64: 318
- arm: 384
- arm64: 278
JSUYA and others added 4 commits June 9, 2026 18:31
Adds artifact generation for x64 builds in a macOS environment.
I tested the build on macOS 26.3 (Tahoe) and M4 Pro (Arm64) using the x64 lib
Store the embedder's destruction_callback / user_data and invoke it in
the destructor to reclaim the VkImage; the Impeller path never released
it. Reset the image view before the callback frees the image.
Reject a null embedder image handle in the texture source constructor
and skip wrapping an invalid source into a TextureVK, returning nullptr
instead of rendering with a half-initialized texture.
@JSUYA JSUYA force-pushed the flutter-3.44.1-candidate.0 branch from e931dae to e0338ea Compare June 9, 2026 09:34
The flutter-tizen embedder passes target=GL_TEXTURE_EXTERNAL_OES, so set
the descriptor type to kTextureExternalOES instead of the default 2D.
@JSUYA JSUYA changed the title [WIP] Update Flutter 3.44.1 Update Flutter 3.44.1 Jun 10, 2026
@JSUYA JSUYA self-assigned this Jun 10, 2026
@JSUYA JSUYA added the enhancement New feature or request label Jun 10, 2026
@JSUYA JSUYA merged commit 543f0e2 into flutter-tizen:flutter-3.44.1 Jun 10, 2026
29 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants