Repository navigation
Closed
Labels
P1High-priority issues at the top of the work listHigh-priority issues at the top of the work liste: impellerImpeller rendering backend issues and features requestsImpeller rendering backend issues and features requestsengineflutter/engine related. See also e: labels.flutter/engine related. See also e: labels.platform-androidAndroid applications specificallyAndroid applications specificallyplatform-windowsBuilding on or for Windows specificallyBuilding on or for Windows specificallyteam-engineOwned by Engine teamOwned by Engine teamtriaged-engineTriaged by Engine teamTriaged by Engine team
Description
Steps to reproduce
- Create app using Work Sans (variable weight font): https://fonts.google.com/specimen/Work+Sans?preview.script=Latn
- Use the font at its
w100weight (this is where the effect is most visible) - Try running with impeller disabled, then enabled
Expected results
Flutter without impeller renders this:
Actual results
Flutter with impeller enabled renders this:
Code sample
Code sample
Needs the google_fonts package but obviously you can avoid it if you just download the font and use it from pubspec.yaml assets.
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(home: const MyHomePage());
}
}
class MyHomePage extends StatelessWidget {
const MyHomePage({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.black,
body: SizedBox.expand(
child: Column(
mainAxisAlignment: .center,
children: [
Column(
children: [
Text(
'This is some text.',
style: GoogleFonts.workSans(
color: Colors.white,
fontSize: 24,
fontWeight: .w100,
),
),
],
),
],
),
),
);
}
}
Screenshots or Video
Screenshots / Video demonstration
Notice how, with impeller, some of the smaller text is a lot harder to read.
Logs
Logs
Resolving dependencies...
Downloading packages...
hooks 2.0.2 (2.1.0 available)
> matcher 0.12.20 (was 0.12.19)
> meta 1.19.0 (was 1.18.0)
record_use 0.6.0 (1.0.0 available)
> test_api 0.7.12 (was 0.7.11) (0.7.13 available)
> vector_math 2.4.2 (was 2.2.0)
Changed 4 dependencies!
3 packages have newer versions incompatible with dependency constraints.
Try `flutter pub outdated` for more information.
Upgrading analysis_options.yaml to exclude build and platform directories.
Launching lib\main.dart on Windows in debug mode...
Building Windows application... 25.0s
√ Built build\windows\x64\runner\Debug\impeller_windows_render_bug.exe
[IMPORTANT:flutter/shell/platform/embedder/embedder_surface_gl_impeller.cc(126)] Using the Impeller rendering backend (OpenGLESSDF).
Syncing files to device Windows... 136ms
Flutter run key commands.
r Hot reload.
R Hot restart.
h List all available interactive commands.
d Detach (terminate "flutter run" but leave application running).
c Clear the screen
q Quit (terminate the application on the device).
A Dart VM Service on Windows is available at: http://127.0.0.1:63891/DsOKwqMovi8=/
The Flutter DevTools debugger and profiler on Windows is available at:
http://127.0.0.1:63891/DsOKwqMovi8=/devtools/?uri=ws://127.0.0.1:63891/DsOKwqMovi8=/ws
Application finished.Flutter Doctor output
Doctor output
[√] Flutter (Channel beta, 3.47.0-0.3.pre, on Microsoft Windows [Version 10.0.26200.8894], locale en-US)
[273ms]
• Flutter version 3.47.0-0.3.pre on channel beta at C:\src\flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision 7c7929adb0 (2 days ago), 2026-07-29 21:46:53 -0700
• Engine revision effb186f31
• Dart version 3.13.0 (build 3.13.0-282.3.beta)
• DevTools version 2.59.0
• Feature flags: enable-web, enable-linux-desktop, enable-macos-desktop, enable-windows-desktop,
enable-android, enable-ios, cli-animations, enable-native-assets, enable-record-use,
enable-swift-package-manager, omit-legacy-version-file, enable-lldb-debugging,
enable-uiscene-migration
[√] Windows Version (11 Pro 64-bit, 25H2, 2009) [830ms]
[!] Android toolchain - develop for Android devices (Android SDK version 34.0.0) [2.2s]
• Android SDK at C:\Users\filip\AppData\Local\Android\sdk
• Emulator version 32.1.15.0 (build_id 10696886) (CL:N/A)
X Flutter requires Android SDK 36 and the Android BuildTools 28.0.3
To update the Android SDK visit https://flutter.dev/to/windows-android-setup for detailed
instructions.
! Some Android licenses not accepted. To resolve this, run: flutter doctor --android-licenses
[√] Chrome - develop for the web [110ms]
• Chrome at C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
[√] Visual Studio - develop Windows apps (Visual Studio Build Tools 2022 17.12.3) [109ms]
• Visual Studio at C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools
• Visual Studio Build Tools 2022 version 17.12.35527.113
• Windows 10 SDK version 10.0.19041.0
[√] Connected device (3 available) [152ms]
• Windows (desktop) • windows • windows-x64 • Microsoft Windows [Version 10.0.26200.8894]
• Chrome (web) • chrome • web-javascript • Google Chrome 150.0.7871.114
• Edge (web) • edge • web-javascript • Microsoft Edge 150.0.4078.48
[√] Network resources [567ms]
• All expected network resources are available.
! Doctor found issues in 1 category.Metadata
Metadata
Assignees
Labels
P1High-priority issues at the top of the work listHigh-priority issues at the top of the work liste: impellerImpeller rendering backend issues and features requestsImpeller rendering backend issues and features requestsengineflutter/engine related. See also e: labels.flutter/engine related. See also e: labels.platform-androidAndroid applications specificallyAndroid applications specificallyplatform-windowsBuilding on or for Windows specificallyBuilding on or for Windows specificallyteam-engineOwned by Engine teamOwned by Engine teamtriaged-engineTriaged by Engine teamTriaged by Engine team


Activity
[-][Windows] Impeller font rendering issue: thinner and more jagged[/-][+]Impeller font rendering issue: thinner and more jagged[/+]filiph commentedon Aug 1, 2026
I initially thought this was just a Windows bug, but I can reproduce on macOS as well.
No-impeller:
Impeller:
Razorex001 commentedon Aug 1, 2026
I'm able to reproduce this issue with the code sample that you provided on windows 10.
See comment, which references similar Impeller font weight differences.
Skia:
Impeller:
[IMPORTANT:flutter/shell/platform/embedder/embedder_surface_gl_impeller.cc(127)] Using the Impeller rendering backend (OpenGLESSDF).
filiph commentedon Aug 1, 2026
Your link led me to #187122 but that seems to be only for Linux (at least judging by the name of the PR and these lines: https://github.com/flutter/flutter/pull/187122/changes#diff-3c0efca89d3477a19074a3e03a82f28359d1e430bad55bd3439f5cbcac529a63R30-R35
Hari-07 commentedon Aug 1, 2026
Could you try on master? Trying on macos on master with the given code sample the difference seen in the screenshots wasn't apparent in skia vs impeller
Razorex001 commentedon Aug 1, 2026
Note that my test was done on master, but on windows 10, and on my end I was able to reproduce the issue (also see screenshots that I posted). Not sure about macos, as I don't have apple devices to test it on. Maybe @filiph can do the macos test with latest master.
filiph commentedon Aug 1, 2026
I'm not able to run the example on
masterdue to this error:filiph commentedon Aug 1, 2026
Ok, sorry, it just needed a
flutter cleanand now the build succeeds.macOS
masterwithout impellermacOS
masterwith impellerConclusion
As far as I can tell, impeller on macOS on the
masterchannel doesn't have this issue.So, to summarize:
betaon macOSmasteron macOSbetaandmasteron Windowspuneetkukreja98 commentedon Aug 3, 2026
@filiph Thanks for reporting this issue. I was able to reproduce it on windows and android on the latest master channel.
Findings:
Windows:
Impeller-enabled:
Impeller-disabled:
Android:
Impeller-enabled:
Impeller-disabled:
Flutter doctor -v:
puneetkukreja98 commentedon Aug 3, 2026
Similar issues:
#127810 (comment)
#190340
#186975
#120857
#149142
filiph commentedon Aug 3, 2026
Thanks for the validation and the research! Let me know if there's a canonical issue for this and we can close this in favor of that one.
The closest general one seems to be the one by @jonahwilliams . But I'll say that the way that one is titled makes it sound less important than it really is (is it truly is the same issue). I don't think anyone is too upset of their bold font is a tiny bit less bold, but I definitely care of my already thin font becomes so thin it's hard to read. Work Sans w100 looks amazing in Skia but even the tiny, sub-pixel thinking makes it almost unreadable in smaller don't sizes.
gaaclarke commentedon Aug 3, 2026
We did some work to fix the wispiness of text previously. I'll double check windows, the before after on linux looks good but the windows patch didn't include a before/after:
gaaclarke commentedon Aug 3, 2026
The patch in #187871 did help the test case we were using. The top is "after", and the bottom is "before". Looks like this repro is running into a different case.
gaaclarke commentedon Aug 3, 2026
The gamma correction has a constant value in text_contents.cc. We might have been a bit cautious with windows, here is skia vs impeller with it cranked up to 2.0. We'll have to do some research to make sure we got the right value, and if it's the same value for linux like we have now.
Bumps text gamma on windows to match skia. (flutter#190477)
github-actions commentedon Aug 18, 2026
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 -vand a minimal reproduction of the issue.