Skip to content

emoji color is off on linux when using impeller #185602

Closed

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

Activity

  1. puneetkukreja98 commented on Apr 27, 2026

    @puneetkukreja98
    Contributor

    @f-person Thanks for reporting the issue. Routing this to the engine team for further investigation, as I don’t have a Linux machine to verify it.

  2. added
    engineflutter/engine related. See also e: labels.
    e: impellerImpeller rendering backend issues and features requests
    platform-linuxBuilding on or for Linux specifically
    c: renderingUI glitches reported at the engine/skia or impeller rendering level
    and removed
    in triagePresently being triaged by the triage team
    on Apr 27, 2026
  3. puneetkukreja98 commented on Apr 27, 2026

    @puneetkukreja98
    Contributor

    Similar issues:
    #100964
    #113026

  4. gaaclarke commented on Apr 28, 2026

    @gaaclarke
    Member

    fyi @jason-simmons , you might have some ideas here. Maybe the red and blue channels are getting swapped?

  5. added
    P2Important issues not at the top of the work list
    on Apr 28, 2026
  6. github-actions commented on May 18, 2026

    @github-actions

    This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of flutter doctor -v and a minimal reproduction of the issue.

  7. locked as resolved and limited conversation to collaborators on May 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions