fix: Adapt to Flutter 3.47 - #3995
Merged
Merged
Conversation
- Rewrite the flutter_gpu backend for the new async ShaderLibrary.fromAsset and the draw-time vertex/index counts - Convert pass-through constructor parameters to super parameters - Avoid assigning to a parameter in FlameAudio - Remove a redundant trailing zero flagged by DCM
spydon
force-pushed
the
fix/flutter-3.47-compat
branch
from
August 13, 2026 20:24
c8ce52c to
d539f53
Compare
erickzanardo
approved these changes
Aug 13, 2026
IstiN
pushed a commit
to IstiN/flutter_js_widget_runtime
that referenced
this pull request
Aug 14, 2026
flame_3d now resolves to IstiN/flame branch flame_3d-0.3.0-flutter-3.47 (backport of flame-engine/flame#3995 onto 0.3.0). Upstream has the fix in main but has not published it to pub.dev yet.
IstiN
pushed a commit
to IstiN/flutter_js_widget_runtime
that referenced
this pull request
Aug 14, 2026
…hing pub.dev rejects git dependencies in published packages. The Flutter 3.47 compatible build (IstiN/flame fork) lives on the flame-3.47 branch until flame-engine/flame#3995 is published upstream.
3 tasks
spydon
added a commit
that referenced
this pull request
Aug 16, 2026
Releases `flame_forge2d` 0.20.0, scoped to only this package so that the pending unreleased changes in `flame` and the other packages stay unreleased. New version: `flame_forge2d` 0.19.3+7 -> 0.20.0 Included changes: - **FIX**: Adapt to Flutter 3.47 (#3995) - **BREAKING** **FEAT**: Migrate flame_forge2d to the Box2D v3 based forge2d (#3952) The flame-side breaking changes that also touched this package's directory (#3968, #3961) only affected its tests and example, so they are intentionally left out of the changelog: they do not apply to flame_forge2d consumers until flame v2 is released. The package keeps its `flame: ^1.38.0` dependency, verified by resolving against the published flame 1.38.0 and forge2d 0.15.1 (`dart analyze` clean, all 91 tests pass, `flutter pub publish --dry-run` passes). Since melos refuses to version a package whose workspace dependency (`flame`) has pending changes outside the scope filter, the version bump, changelogs, and dependent constraint updates were applied manually in the same format melos generates. On merge, the `release-tag` workflow tags `flame_forge2d-v0.20.0` and triggers the publish workflow for it.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Flutter 3.47.0 broke the CI pipeline (
analyze-latestandtest), this adapts the code to it without bumping the minimum supported Flutter or Dart SDK versions:flame_3dflutter_gpu backend for the new flutter_gpu API:ShaderLibrary.fromAssetis now async, so shader bundles are preloaded from theAssetManifestduringGpuBackend.initialize()(mirroring the WebGPU backend), and the vertex/index counts moved frombindVertexBuffer/bindIndexBuffertodraw/drawIndexed, so the render pass now records the counts at bind time and picks the right draw call. The committed shader bundles are also regenerated with the new SDK.analyzejob (lowest supported version) skipsflame_3d*and it is instead only covered byanalyze-latest, like we have done before when flutter_gpu has had breaking changes.flameeffects andColorTexture, and avoids a parameter assignment inFlameAudio, fixing the newuse_super_parametersandparameter_assignmentsdiagnostics.analyzer.excludeblocks that the Flutter 3.47 tool now generates into every package'sanalysis_options.yamlon each run (seeAnalysisOptionsMigrationignoresinclude:, repeatedly rewritinganalysis_options.yamlfiles that already inherit the exclusions flutter/flutter#191056), placed after theinclude:so the shared config stays first. Without committing them, everyflutter pub get/run/builddirties the working tree.Verified locally on Flutter 3.47.0: repo-wide
dart analyze --fatal-infos,melos exec dart format . --set-exit-if-changed,dcm analyze ., andmelos run test:select --no-select(2854 passed, 0 failed) are all green, andflutter pub getno longer rewrites anyanalysis_options.yaml.Checklist
docsand added dartdoc comments with///.examplesordocs.Breaking Change?
Related Issues
Related to flutter/flutter#191056