)]}'
{
  "commit": "68733b52467807980d7175047267d27f4a1ebe19",
  "tree": "3cf5a4e2545701eca38e8d7df6f1f13e6df292db",
  "parents": [
    "1923455ffd1b5a28e9ac1c8a3561fb5a2d9b4fef"
  ],
  "author": {
    "name": "Brandon DeRosier",
    "email": "bdero@google.com",
    "time": "Thu Jun 11 17:51:23 2026 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri Jun 12 00:51:23 2026 +0000"
  },
  "message": "[Flutter GPU] Expose ASTC HDR texture formats (#187715)\n\nFollow-up to https://github.com/flutter/flutter/pull/187281, which added\nthe block-compressed formats (BC, ETC2, ASTC LDR) but intentionally left\nthe ASTC HDR variants out of the Dart API.\n\nThis exposes the ASTC HDR pixel formats (`astc4x4HDR`, `astc8x8HDR`) and\nthe `astcHdr` compression family to Flutter GPU. Impeller already\nsupports these end to end across Metal, Vulkan, and GLES, so this is\nonly the Dart-facing plumbing in `formats.dart` and `formats.h` plus\nblock-introspection and capability-query tests.\n\n## Pre-launch Checklist\n\n- [x] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [x] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [x] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [x] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [x] I signed the [CLA].\n- [x] I listed at least one issue that this PR fixes in the description\nabove.\n- [x] I updated/added relevant documentation (doc comments with `///`).\n- [x] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [x] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [x] All existing and new tests are passing.\n\n\u003c!-- Links --\u003e\n[Contributor Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview\n[AI contribution guidelines]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines\n[Tree Hygiene]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n[test-exempt]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests\n[Flutter Style Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md\n[Features we expect every widget to implement]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement\n[CLA]: https://cla.developers.google.com/\n[breaking change policy]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes\n[Data Driven Fixes]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d01a111a185cc552f8ac4c75e8b1b74cafd78de0",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/lib/gpu/formats.h",
      "new_id": "84b24dea70e1c0191b8ca11247fbe7384fb85c13",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/lib/gpu/formats.h"
    },
    {
      "type": "modify",
      "old_id": "21b457ef0395913cb49bac18e9f65ccb4e56edfc",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/lib/gpu/lib/src/formats.dart",
      "new_id": "4f0e3a9934ba7eb68e84059f707b9acb84836c1f",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/lib/gpu/lib/src/formats.dart"
    },
    {
      "type": "modify",
      "old_id": "e9c50c7e695ea97c78922f6bcaaf0ae440691454",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/testing/dart/gpu_test.dart",
      "new_id": "ade01c85d5f8fc363cd286a0683cbfd04bb844e0",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/testing/dart/gpu_test.dart"
    }
  ]
}
