Skip to content

[Flutter GPU] Expose ASTC HDR texture formats - #187715

Merged
auto-submit[bot] merged 5 commits into
flutter:masterfrom
bdero:bdero/flutter-gpu-astc-hdr
Jun 12, 2026
Merged

[Flutter GPU] Expose ASTC HDR texture formats#187715
auto-submit[bot] merged 5 commits into
flutter:masterfrom
bdero:bdero/flutter-gpu-astc-hdr

Conversation

@bdero

@bderobdero commented Jun 9, 2026

Copy link
Copy Markdown
Member

Follow-up to #187281, which added the block-compressed formats (BC, ETC2, ASTC LDR) but intentionally left the ASTC HDR variants out of the Dart API.

This exposes the ASTC HDR pixel formats (astc4x4HDR, astc8x8HDR) and the astcHdr compression family to Flutter GPU. Impeller already supports these end to end across Metal, Vulkan, and GLES, so this is only the Dart-facing plumbing in formats.dart and formats.h plus block-introspection and capability-query tests.

Pre-launch Checklist

@flutter-dashboardflutter-dashboardBot added the CICD Run CI/CD label Jun 9, 2026
@github-actionsgithub-actionsBot added engine flutter/engine related. See also e: labels. flutter-gpu team-fluttergpu Owned by Flutter GPU team labels Jun 9, 2026
@github-project-automationgithub-project-automationBot moved this to 🤔 Needs Triage in Flutter GPUJun 9, 2026
@bdero
bdero requested a review from gaaclarkeJune 10, 2026 01:18
@bdero
bdero marked this pull request as ready for review June 10, 2026 01:18

@gemini-code-assistgemini-code-assistBot 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 support for ASTC HDR pixel formats (4x4 and 8x8) and their corresponding texture compression family across the Flutter GPU API, including C++ mappings, Dart enums, and unit tests. The review feedback identifies that the existing astc4x4LDR and astc4x4LDRSRGB formats are missing from the compressionFamily mapping in Dart, which causes them to return null instead of TextureCompressionFamily.astc, and suggests adding corresponding test assertions to prevent future regressions.

Comment threadengine/src/flutter/lib/gpu/lib/src/formats.dart
Comment threadengine/src/flutter/testing/dart/gpu_test.dart
@bdero

Copy link
Copy Markdown
MemberAuthor

Forgot to surface these formats on the Flutter GPU side after adding them in an earlier Impeller PR at Chinmay's request

@github-actionsgithub-actionsBot removed the CICD Run CI/CD label Jun 10, 2026
@bderobdero added the CICD Run CI/CD label Jun 10, 2026
@github-actionsgithub-actionsBot removed the CICD Run CI/CD label Jun 10, 2026
@flutter-dashboardflutter-dashboardBot added the CICD Run CI/CD label Jun 10, 2026

@gaaclarkegaaclarke left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

lgtm!

@gaaclarkegaaclarke added the autosubmit Merge PR when tree becomes green via auto submit App label Jun 10, 2026
@auto-submitauto-submitBot removed the autosubmit Merge PR when tree becomes green via auto submit App label Jun 10, 2026
@auto-submit

Copy link
Copy Markdown
Contributor

autosubmit label was removed for flutter/flutter/187715, because - The status or check suite Mac mac_unopt has failed. Please fix the issues identified (or deflake) before re-applying this label.

@github-actionsgithub-actionsBot removed the CICD Run CI/CD label Jun 11, 2026
@bderobdero added the CICD Run CI/CD label Jun 11, 2026
@bdero

Copy link
Copy Markdown
MemberAuthor

Google testing failed for some reason, so pushing an empty commit.

@github-actionsgithub-actionsBot removed the CICD Run CI/CD label Jun 11, 2026
@bderobdero added CICD Run CI/CD autosubmit Merge PR when tree becomes green via auto submit App labels Jun 11, 2026
@auto-submit
auto-submitBot added this pull request to the merge queueJun 12, 2026
Merged via the queue into flutter:master with commit 68733b5Jun 12, 2026
206 checks passed
@github-project-automationgithub-project-automationBot moved this from 🤔 Needs Triage to ✅ Done in Flutter GPUJun 12, 2026
@flutter-dashboardflutter-dashboardBot removed the autosubmit Merge PR when tree becomes green via auto submit App label Jun 12, 2026
@bdero
bdero deleted the bdero/flutter-gpu-astc-hdr branch June 12, 2026 01:44
auto-submitBot pushed a commit to flutter/packages that referenced this pull request Jun 12, 2026
flutter/flutter@8bdce07...b7cb925
2026-06-12 engine-flutter-autoroll@skia.org Roll Skia from cadbde1ec4b7 to 8c89bf2b0ee3 (5 revisions) (flutter/flutter#187926)
2026-06-12 engine-flutter-autoroll@skia.org Roll Packages from 1b56cde to b78ad83 (5 revisions) (flutter/flutter#187928)
2026-06-12 engine-flutter-autoroll@skia.org Roll Dart SDK from f3441f2067ae to f6c31f4c3a63 (17 revisions) (flutter/flutter#187924)
2026-06-12 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from 2KosSR4ONUjIB7tP_... to A3eaUn9mQ_EkSNxVI... (flutter/flutter#187923)
2026-06-12 engine-flutter-autoroll@skia.org Roll Skia from a2228b926c68 to cadbde1ec4b7 (9 revisions) (flutter/flutter#187921)
2026-06-12 kustermann@google.com Remove dynamic module loading code in flutter web engine (flutter/flutter#187777)
2026-06-12 matt.kosarek@canonical.com Remove EnableTransparentWindowBackground because it did nothing important and because Windows 10 does not support DWMWA_SYSTEMBACKDROP_TYPE (flutter/flutter#187848)
2026-06-12 engine-flutter-autoroll@skia.org Roll Fuchsia Test Scripts from dQ4PjIJB5kZFU8Y32... to EmfiOMUge_nnNS33B... (flutter/flutter#187912)
2026-06-12 mvincentong@gmail.com Clarify RichText selection docs (flutter/flutter#186844)
2026-06-12 1063596+reidbaker@users.noreply.github.com Custom KGP task and migration to AGP api for geting kgp version (flutter/flutter#182788)
2026-06-12 engine-flutter-autoroll@skia.org Roll Skia from f61acb31edf8 to a2228b926c68 (5 revisions) (flutter/flutter#187896)
2026-06-12 bdero@google.com [Flutter GPU] Expose ASTC HDR texture formats (flutter/flutter#187715)
2026-06-12 awolff@google.com Expand coverage of android_hardware_smoke_test. Add image, text, blend mode, and blur tests. (flutter/flutter#187600)
2026-06-11 bdero@google.com [Flutter GPU] Add blit operations (flutter/flutter#187289)
2026-06-11 bkonyi@google.com [flutter_tools] Fix version cache git fallback performance regression (flutter/flutter#187400)
2026-06-11 nshahan@google.com Rewrite `-d web-server` hot reload/restart tests (flutter/flutter#187453)
2026-06-11 bdero@google.com [Impeller] Allow sampling textures with manually-uploaded mip levels (flutter/flutter#187729)
2026-06-11 154381524+flutteractionsbot@users.noreply.github.com Sync CHANGELOG.md from stable (flutter/flutter#187884)
2026-06-11 47866232+chunhtai@users.noreply.github.com iOS a11y sets header trait based on heading level (flutter/flutter#186916)
2026-06-11 engine-flutter-autoroll@skia.org Roll Skia from 9f02102df298 to f61acb31edf8 (19 revisions) (flutter/flutter#187869)
2026-06-11 engine-flutter-autoroll@skia.org Roll ICU from ee5f27adc28b to d578f2e8b7bd (8 revisions) (flutter/flutter#187829)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages
Please CC louisehsu@google.com,stuartmorgan@google.com on the revert to ensure that a human
is aware of the problem.
To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
via-guy pushed a commit to via-guy/flutter that referenced this pull request Jun 26, 2026
Follow-up to flutter#187281, which added
the block-compressed formats (BC, ETC2, ASTC LDR) but intentionally left
the ASTC HDR variants out of the Dart API.
This exposes the ASTC HDR pixel formats (`astc4x4HDR`, `astc8x8HDR`) and
the `astcHdr` compression family to Flutter GPU. Impeller already
supports these end to end across Metal, Vulkan, and GLES, so this is
only the Dart-facing plumbing in `formats.dart` and `formats.h` plus
block-introspection and capability-query tests.
## Pre-launch Checklist
- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [AI contribution guidelines] and understand my
responsibilities, or I am not using AI tools.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.
<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[AI contribution guidelines]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CICDRun CI/CDengineflutter/engine related. See also e: labels.flutter-gputeam-fluttergpuOwned by Flutter GPU team

Projects

Status: ✅ Done

Development

Successfully merging this pull request may close these issues.

2 participants

@bdero@gaaclarke