Skip to content

emoji color is off on linux when using impeller #185602

Description

@f-person

Steps to reproduce

add emojis to Text on a Flutter app running on Linux with --enable-impeller

Expected results

emojis are rendered with their actual color. seeFl second screenshot of the example app running without impeller for the expected result

Actual results

emojis are rendered with some blue tone. as if color is applied on top of them

Code sample

Code sample
import 'package:flutter/material.dart';

void main() {
  runApp(
    const ImpellerEmojiExampleApp(),
  );
}

class ImpellerEmojiExampleApp extends StatelessWidget {
  const ImpellerEmojiExampleApp({super.key});

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      home: Scaffold(
        body: Text(
          '🎨👂🧑‍🚀🕵️‍♀️🧚‍♂️',
          style: TextStyle(fontSize: 100),
        ),
      ),
    );
  }
}

Screenshots or Video

Screenshots / Video demonstration

with impeller:

Image

without impeller:

Image

Logs

Logs
[ +234 ms] [IMPORTANT:flutter/shell/platform/embedder/embedder_surface_gl_impeller.cc(99)] Using the Impeller rendering backend
(OpenGL).

no logs other than this when running with --verbose - no errors or rendering-related messages. i suspect smth is wrong with the linux impl itself?

Flutter Doctor output

Doctor output

()> fvm flutter doctor -v
[✓] Flutter (Channel stable, 3.41.7, on Manjaro Linux 6.18.18-1-MANJARO, locale en_US.UTF-8) [51ms]
• Flutter version 3.41.7 on channel stable at /home/user/fvm/versions/stable
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision cc0734a (11 days ago), 2026-04-15 21:21:08 -0700
• Engine revision 59aa584
• Dart version 3.11.5
• DevTools version 2.54.2
• Feature flags: enable-web, enable-linux-desktop, enable-macos-desktop, enable-windows-desktop, enable-android, enable-ios,
cli-animations, enable-native-assets, omit-legacy-version-file, enable-lldb-debugging, enable-uiscene-migration

[!] Android toolchain - develop for Android devices (Android SDK version 36.1.0) [185ms]
• Android SDK at /home/user/Android/Sdk
• Emulator version 36.5.10.0 (build_id 15081367) (CL:N/A)
✗ cmdline-tools component is missing.
Try installing or updating Android Studio.
Alternatively, download the tools from https://developer.android.com/studio#command-line-tools-only and make sure to set the
ANDROID_HOME environment variable.
See https://developer.android.com/studio/command-line for more details.
✗ Android license status unknown.
Run flutter doctor --android-licenses to accept the SDK licenses.
See https://flutter.dev/to/linux-android-setup for more details.

[✗] Chrome - develop for the web (Cannot find Chrome executable at google-chrome) [11ms]
! Cannot find Chrome. Try setting CHROME_EXECUTABLE to a Chrome executable.

[✓] Linux toolchain - develop for Linux desktop [316ms]
• clang version 22.1.1
• cmake version 4.2.3
• ninja version 1.13.2
• pkg-config version 2.5.1
• OpenGL core renderer: AMD Radeon RX 5700 (radeonsi, navi10, ACO, DRM 3.64, 6.18.18-1-MANJARO)
• OpenGL core version: 4.6 (Core Profile) Mesa 26.0.2-arch1.1
• OpenGL core shading language version: 4.60
• OpenGL ES renderer: AMD Radeon RX 5700 (radeonsi, navi10, ACO, DRM 3.64, 6.18.18-1-MANJARO)
• OpenGL ES version: OpenGL ES 3.2 Mesa 26.0.2-arch1.1
• OpenGL ES shading language version: OpenGL ES GLSL ES 3.20
• GL_EXT_framebuffer_blit: yes
• GL_EXT_texture_format_BGRA8888: yes

[✓] Connected device (1 available) [68ms]
• Linux (desktop) • linux • linux-x64 • Manjaro Linux 6.18.18-1-MANJARO

[✓] Network resources [726ms]
• All expected network resources are available.

! Doctor found issues in 2 categories.


i also tried main & could reproduce the issue there too.
maybe related: #182397 (but this by itself didn't fix)


note on other platforms: emoji rendering has worked properly on mac, ios & android with impeller so far for me; only issue is with linux

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Important issues not at the top of the work listc: renderingUI glitches reported at the engine/skia or impeller rendering levele: impellerImpeller rendering backend issues and features requestsengineflutter/engine related. See also e: labels.platform-linuxBuilding on or for Linux specificallyteam-engineOwned by Engine teamtriaged-engineTriaged by Engine team

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions