Skip to content

Adds debugging information to compiled metal shaders#185629

Merged
auto-submit[bot] merged 1 commit into
flutter:masterfrom
gaaclarke:metal-debug-source
Apr 27, 2026
Merged

Adds debugging information to compiled metal shaders#185629
auto-submit[bot] merged 1 commit into
flutter:masterfrom
gaaclarke:metal-debug-source

Conversation

@gaaclarke

Copy link
Copy Markdown
Member

Adds metal shader debugging info. This makes it so you can click into sources in the xcode frame debugger. It doesn't get us line by line performance measurements though. I couldn't figure that out yet.

Pre-launch Checklist

If you need help, consider asking for advice on the #hackers-new channel on Discord.

If this change needs to override an active code freeze, provide a comment explaining why. The code freeze workflow can be overridden by code reviewers. See pinned issues for any active code freezes with guidance.

Note: The Flutter team is currently trialing the use of Gemini Code Assist for GitHub. Comments from the gemini-code-assist bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed.

@github-actions github-actions Bot added engine flutter/engine related. See also e: labels. e: impeller Impeller rendering backend issues and features requests labels Apr 27, 2026
@gaaclarke gaaclarke changed the title Added debugging information to compiled metal shaders Adds debugging information to compiled metal shaders Apr 27, 2026
@flutter-dashboard

Copy link
Copy Markdown

It looks like this pull request may not have tests. Please make sure to add tests or get an explicit test exemption before merging.

If you are not sure if you need tests, consider this rule of thumb: the purpose of a test is to make sure someone doesn't accidentally revert the fix. Ask yourself, is there anything in your PR that you feel it is important we not accidentally revert back to how it was before your fix?

Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing. If you believe this PR qualifies for a test exemption, contact "@test-exemption-reviewer" in the #hackers channel in Discord (don't just cc them here, they won't see it!). The test exemption team is a small volunteer group, so all reviewers should feel empowered to ask for tests, without delegating that responsibility entirely to the test exemption group.

@gaaclarke gaaclarke added the CICD Run CI/CD label Apr 27, 2026
@gaaclarke
gaaclarke requested review from b-luk and walley892 April 27, 2026 16:54

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

Copy link
Copy Markdown
Contributor

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 a debug mode for Metal library compilation by adding a --debug flag to the GN template and the metal_library.py script. When enabled, the compiler includes -g and -frecord-sources flags. Feedback suggests removing the redundant script reference from the GN inputs list and notes that -frecord-sources requires Metal 2.3, which may cause errors on older compiler versions.

Comment thread engine/src/flutter/impeller/tools/metal_library.gni
Comment thread engine/src/flutter/impeller/tools/metal_library.py

@b-luk b-luk left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Generally LGTM. But I don't know much about how this stuff works so I just have some comments based on Gemini's suggestions.

Comment thread engine/src/flutter/impeller/tools/metal_library.gni
Comment thread engine/src/flutter/impeller/tools/metal_library.py
@gaaclarke
gaaclarke requested a review from b-luk April 27, 2026 18:27
@gaaclarke gaaclarke added the autosubmit Merge PR when tree becomes green via auto submit App label Apr 27, 2026
@auto-submit
auto-submit Bot added this pull request to the merge queue Apr 27, 2026
Merged via the queue into flutter:master with commit aa55a18 Apr 27, 2026
198 checks passed
@flutter-dashboard flutter-dashboard Bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Apr 27, 2026
auto-submit Bot pushed a commit to flutter/packages that referenced this pull request Apr 28, 2026
…11595)

Manual roll Flutter from 31001886cbe8 to 61fca76dd523 (53 revisions)

Manual roll requested by [email protected]

flutter/flutter@3100188...61fca76

2026-04-27 [email protected] Adds integration test for the FLTEnableSDFs flag for iOS (flutter/flutter#185637)
2026-04-27 [email protected] Fix sdfs being enabled for MacOS regardless of FLTEnableSDFs value (flutter/flutter#185565)
2026-04-27 [email protected] Don't use UberSDF for paint with incompatible blend modes (flutter/flutter#184889)
2026-04-27 [email protected] Roll Dart SDK from de495e3de9a0 to 941ca325cfc9 (2 revisions) (flutter/flutter#185653)
2026-04-27 [email protected] [a11y] Add CONTENT_CHANGE_TYPE_EXPANDED support on android. (flutter/flutter#185305)
2026-04-27 [email protected] Roll pub packages (flutter/flutter#185641)
2026-04-27 [email protected] Modify analyze.dart to have flags to run only or exclude each verification step.  (flutter/flutter#185618)
2026-04-27 [email protected] Fix debugNeedsPaint/Layout/CompositedLayerUpdate crashing in release mode (flutter/flutter#184627)
2026-04-27 [email protected] Enable `var_with_no_type_annotation` lint. (flutter/flutter#185215)
2026-04-27 [email protected] Fix SelectionArea handles overlapping context menu on Android (flutter/flutter#182663)
2026-04-27 [email protected] Adds debugging information to compiled metal shaders (flutter/flutter#185629)
2026-04-27 [email protected] Roll pub packages (flutter/flutter#185638)
2026-04-27 [email protected] Use null-aware elements in dev/devicelab/lib/framework/browser.dart (flutter/flutter#184778)
2026-04-27 [email protected] Sync CHANGELOG.md from stable (flutter/flutter#185633)
2026-04-27 [email protected] Added useOriginalColors flag which allows ImageIcon to bypass IconTheme colorization and use the original colors (flutter/flutter#180491)
2026-04-27 [email protected] Roll Packages from 8400f71 to 23280da (2 revisions) (flutter/flutter#185619)
2026-04-27 [email protected] Roll Skia from f1238e0f1022 to ce82d32b3e03 (1 revision) (flutter/flutter#185616)
2026-04-27 [email protected] [SwiftPM] Enable package resolution on xcodebuild commands (flutter/flutter#185208)
2026-04-27 [email protected] [iOS] Refactor keyboard inset logic into FlutterKeyboardInsetManager (flutter/flutter#185535)
2026-04-27 [email protected] [Win32] FlutterDesktopEngineGetGraphicsAdapter should use out parameter (flutter/flutter#185590)
2026-04-27 [email protected] Roll Skia from d77e3356d526 to f1238e0f1022 (4 revisions) (flutter/flutter#185604)
2026-04-27 [email protected] Roll Fuchsia Linux SDK from flsn8jC4LkTn6WECf... to i6d0NoDueUiXpePfX... (flutter/flutter#185601)
2026-04-26 [email protected] Roll Dart SDK from a108dfe2d227 to de495e3de9a0 (1 revision) (flutter/flutter#185599)
2026-04-26 [email protected] Roll Skia from ce9aa2231292 to d77e3356d526 (1 revision) (flutter/flutter#185596)
2026-04-26 [email protected] Roll Skia from 622fff4c24d2 to ce9aa2231292 (1 revision) (flutter/flutter#185588)
2026-04-25 [email protected] Roll Fuchsia Linux SDK from 9fPnyEo9PaNdXtasl... to flsn8jC4LkTn6WECf... (flutter/flutter#185585)
2026-04-25 [email protected] Roll Dart SDK from 605a8faf0dda to a108dfe2d227 (1 revision) (flutter/flutter#185584)
2026-04-25 [email protected] Roll Dart SDK from 6b8c39765f17 to 605a8faf0dda (1 revision) (flutter/flutter#185578)
2026-04-25 [email protected] Roll Skia from 185f6b57d64f to 622fff4c24d2 (1 revision) (flutter/flutter#185573)
2026-04-25 [email protected] Implement square-like round superellipses with circular corners in the SDF uber shader (flutter/flutter#185370)
2026-04-25 [email protected] Add @awaitNotRequired annotation to flutter sdk (flutter/flutter#181513)
2026-04-25 [email protected] Roll Dart SDK from 01228cb7af42 to 6b8c39765f17 (2 revisions) (flutter/flutter#185569)
2026-04-25 [email protected] Adapt the DisplayList benchmarks into a primitive rendering benchmark suite (flutter/flutter#185270)
2026-04-25 [email protected] Enable SPM for GoogleMobileAds (flutter/flutter#185548)
2026-04-25 [email protected] Roll Skia from 3f467a581942 to 185f6b57d64f (1 revision) (flutter/flutter#185564)
2026-04-25 [email protected] Fix Table crash when a cell child paints below the row bottom (flutter/flutter#185323)
2026-04-24 [email protected] Make sure that an Image doesn't crash in 0x0 environment (flutter/flutter#181154)
2026-04-24 [email protected] Roll Skia from 300d432048b0 to 3f467a581942 (3 revisions) (flutter/flutter#185558)
2026-04-24 [email protected] Roll Dart SDK from c26627715892 to 01228cb7af42 (4 revisions) (flutter/flutter#185559)
2026-04-24 [email protected] Reland "[web] Fix LateInitializationError in CkSurface and SkwasmSurface (#185116)" (flutter/flutter#185553)
2026-04-24 [email protected] [github]fix git ls-file glob pattern in labeler.yml instruction (flutter/flutter#185495)
2026-04-24 [email protected] [ios]update ios-reviewers tags to include more files (flutter/flutter#185490)
2026-04-24 [email protected] Add initial support for Cross-Origin Storage (flutter/flutter#184149)
2026-04-24 [email protected] tool: Skip cached engine artifacts with local engine (flutter/flutter#185546)
...
pull Bot pushed a commit to Dramaga11/flutter that referenced this pull request Apr 30, 2026
…ode (flutter#185798)

flutter#185629 changed the metal_library
build template to embed symbols within the shader library file when
building in debug and profile modes. Release mode will continue to
generate a separate symbol file.

This PR updates the template's output list to match the actual outputs
so that rebuilds will not run unncessary actions. It also changes the
metal_library build script to pass only one value for the
"-frecord-sources" flag that controls the output of symbols.
creatorpiyush pushed a commit to creatorpiyush/packages that referenced this pull request Jun 10, 2026
…lutter#11595)

Manual roll Flutter from 31001886cbe8 to 61fca76dd523 (53 revisions)

Manual roll requested by [email protected]

flutter/flutter@3100188...61fca76

2026-04-27 [email protected] Adds integration test for the FLTEnableSDFs flag for iOS (flutter/flutter#185637)
2026-04-27 [email protected] Fix sdfs being enabled for MacOS regardless of FLTEnableSDFs value (flutter/flutter#185565)
2026-04-27 [email protected] Don't use UberSDF for paint with incompatible blend modes (flutter/flutter#184889)
2026-04-27 [email protected] Roll Dart SDK from de495e3de9a0 to 941ca325cfc9 (2 revisions) (flutter/flutter#185653)
2026-04-27 [email protected] [a11y] Add CONTENT_CHANGE_TYPE_EXPANDED support on android. (flutter/flutter#185305)
2026-04-27 [email protected] Roll pub packages (flutter/flutter#185641)
2026-04-27 [email protected] Modify analyze.dart to have flags to run only or exclude each verification step.  (flutter/flutter#185618)
2026-04-27 [email protected] Fix debugNeedsPaint/Layout/CompositedLayerUpdate crashing in release mode (flutter/flutter#184627)
2026-04-27 [email protected] Enable `var_with_no_type_annotation` lint. (flutter/flutter#185215)
2026-04-27 [email protected] Fix SelectionArea handles overlapping context menu on Android (flutter/flutter#182663)
2026-04-27 [email protected] Adds debugging information to compiled metal shaders (flutter/flutter#185629)
2026-04-27 [email protected] Roll pub packages (flutter/flutter#185638)
2026-04-27 [email protected] Use null-aware elements in dev/devicelab/lib/framework/browser.dart (flutter/flutter#184778)
2026-04-27 [email protected] Sync CHANGELOG.md from stable (flutter/flutter#185633)
2026-04-27 [email protected] Added useOriginalColors flag which allows ImageIcon to bypass IconTheme colorization and use the original colors (flutter/flutter#180491)
2026-04-27 [email protected] Roll Packages from 8400f71 to 23280da (2 revisions) (flutter/flutter#185619)
2026-04-27 [email protected] Roll Skia from f1238e0f1022 to ce82d32b3e03 (1 revision) (flutter/flutter#185616)
2026-04-27 [email protected] [SwiftPM] Enable package resolution on xcodebuild commands (flutter/flutter#185208)
2026-04-27 [email protected] [iOS] Refactor keyboard inset logic into FlutterKeyboardInsetManager (flutter/flutter#185535)
2026-04-27 [email protected] [Win32] FlutterDesktopEngineGetGraphicsAdapter should use out parameter (flutter/flutter#185590)
2026-04-27 [email protected] Roll Skia from d77e3356d526 to f1238e0f1022 (4 revisions) (flutter/flutter#185604)
2026-04-27 [email protected] Roll Fuchsia Linux SDK from flsn8jC4LkTn6WECf... to i6d0NoDueUiXpePfX... (flutter/flutter#185601)
2026-04-26 [email protected] Roll Dart SDK from a108dfe2d227 to de495e3de9a0 (1 revision) (flutter/flutter#185599)
2026-04-26 [email protected] Roll Skia from ce9aa2231292 to d77e3356d526 (1 revision) (flutter/flutter#185596)
2026-04-26 [email protected] Roll Skia from 622fff4c24d2 to ce9aa2231292 (1 revision) (flutter/flutter#185588)
2026-04-25 [email protected] Roll Fuchsia Linux SDK from 9fPnyEo9PaNdXtasl... to flsn8jC4LkTn6WECf... (flutter/flutter#185585)
2026-04-25 [email protected] Roll Dart SDK from 605a8faf0dda to a108dfe2d227 (1 revision) (flutter/flutter#185584)
2026-04-25 [email protected] Roll Dart SDK from 6b8c39765f17 to 605a8faf0dda (1 revision) (flutter/flutter#185578)
2026-04-25 [email protected] Roll Skia from 185f6b57d64f to 622fff4c24d2 (1 revision) (flutter/flutter#185573)
2026-04-25 [email protected] Implement square-like round superellipses with circular corners in the SDF uber shader (flutter/flutter#185370)
2026-04-25 [email protected] Add @awaitNotRequired annotation to flutter sdk (flutter/flutter#181513)
2026-04-25 [email protected] Roll Dart SDK from 01228cb7af42 to 6b8c39765f17 (2 revisions) (flutter/flutter#185569)
2026-04-25 [email protected] Adapt the DisplayList benchmarks into a primitive rendering benchmark suite (flutter/flutter#185270)
2026-04-25 [email protected] Enable SPM for GoogleMobileAds (flutter/flutter#185548)
2026-04-25 [email protected] Roll Skia from 3f467a581942 to 185f6b57d64f (1 revision) (flutter/flutter#185564)
2026-04-25 [email protected] Fix Table crash when a cell child paints below the row bottom (flutter/flutter#185323)
2026-04-24 [email protected] Make sure that an Image doesn't crash in 0x0 environment (flutter/flutter#181154)
2026-04-24 [email protected] Roll Skia from 300d432048b0 to 3f467a581942 (3 revisions) (flutter/flutter#185558)
2026-04-24 [email protected] Roll Dart SDK from c26627715892 to 01228cb7af42 (4 revisions) (flutter/flutter#185559)
2026-04-24 [email protected] Reland "[web] Fix LateInitializationError in CkSurface and SkwasmSurface (#185116)" (flutter/flutter#185553)
2026-04-24 [email protected] [github]fix git ls-file glob pattern in labeler.yml instruction (flutter/flutter#185495)
2026-04-24 [email protected] [ios]update ios-reviewers tags to include more files (flutter/flutter#185490)
2026-04-24 [email protected] Add initial support for Cross-Origin Storage (flutter/flutter#184149)
2026-04-24 [email protected] tool: Skip cached engine artifacts with local engine (flutter/flutter#185546)
...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CICD Run CI/CD e: impeller Impeller rendering backend issues and features requests engine flutter/engine related. See also e: labels.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants