NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #1314 most downloaded on pub.dev
Build tools for Flutter GPU shader bundles/libraries.
Last release 1 months ago
11 Aug 2026
Ships unpredictably
gaps range from 2 weeks to 13 months
Nearly every release is documented
notes for 15 of 15 stable releases
Nothing withdrawn
no release was ever pulled
2 years old
15 releases · first in 2024
Track the impellerc binary as a build input, so bundles rebuild whenever the engine artifacts change.
impellerc binary as a build input, so bundles rebuild whenever the engine artifacts change.impellerc writes them unescaped); a split path declared a nonexistent dependency, which made the hook re-run on every build for SDKs under paths like Application Support.Added a glesLanguageVersion option to buildShaderBundleJson (and shaderBundleImpellercArguments ), forwarded to impellerc as --gles-language-version .
glesLanguageVersion option to buildShaderBundleJson (and shaderBundleImpellercArguments), forwarded to impellerc as --gles-language-version. Setting 300 emits #version 300 es OpenGL ES shaders, where explicit-LOD sampling and derivatives are core rather than extension-gated.findImpellerC now also probes the linux-arm64 and windows-arm64 engine artifact directories; the previous x64-only list failed on Linux arm64 hosts.One column per month.
Fixed dependency tracking that made the build hook re-run on every build. Manifest file entries are now resolved against the package root (matching ho
file entries are now resolved against the package root (matching how impellerc resolves them) instead of the manifest's directory, which had produced doubled, non-existent paths for manifests in a subdirectory.build/ directory are no longer declared as build dependencies; depending on a regenerated output made the hook perpetually out of date. Declare the real sources that produce them instead.collectShaderBundleDependencies now requires a packageRoot argument (used to resolve manifest file paths). Most consumers use buildShaderBundleJson, whose signature is unchanged.Added optional Dart DataAssets registration for generated shader bundles via ShaderBundleAssetMode .
ShaderBundleAssetMode.dataAssetsIfAvailable registers the generated .shaderbundle with the Flutter asset bundle when supported and falls back to legacy file output otherwise.buildShaderBundleJson now returns ShaderBundleBuildResult, including legacy and DataAsset asset keys when available.Published to pub.dev: https://pub.dev/packages/flutter_gpu_shaders/versions/0.4.5
ShaderBundleAssetMode. The default remains legacy file output under
build/shaderbundles/, while dataAssetsIfAvailable registers the generated
.shaderbundle with the Flutter asset bundle when supported and falls back
otherwise.buildShaderBundleJson now returns ShaderBundleBuildResult, including the
legacy asset key and DataAsset/Flutter asset keys when a DataAsset is emitted.buildShaderBundleJson now consumes impellerc depfiles when the resolved compiler advertises --depfile support. This lets newer Flutter SDKs track tran
buildShaderBundleJson now consumes impellerc depfiles when the resolved
compiler advertises --depfile support. This lets newer Flutter SDKs track
transitive shader #include dependencies while preserving the existing
manifest dependency scan for older impellerc builds that do not support the
flag or do not emit a depfile in --shader-bundle mode.buildShaderBundleJson accepts an includeDirectories parameter:
extra directories appended to impellerc's #include search path,
after the manifest directory and the bundled shader_lib. This lets a
build hook compile shaders that #include reusable GLSL shipped by
another package, by resolving that package's shader directory and
passing it through. Files resolved this way are not auto-declared as
build dependencies; declare them via the build output if edits to them
should retrigger the build.shaderBundleImpellercArguments(...) helper returns the exact
impellerc argument list, exposed for inspection from custom build
hooks and tests.findImpellerC now also honors a runtime IMPELLERC environment variable in addition to the compile-time define. flutter_tools populates this for build
findImpellerC now also honors a runtime IMPELLERC environment
variable in addition to the compile-time define. flutter_tools
populates this for build hook subprocesses
(https://github.com/flutter/flutter/pull/186300), including the
--local-engine case where the locally built impellerc should be
used in preference to the SDK cache. Compile-time define takes
precedence; runtime env var is checked next; otherwise the existing
SDK cache lookup runs.Documentation: update README.md and buildShaderBundleJson dartdoc to reflect the 0.4.0 migration (drop the obsolete flutter config --enable-native-ass
README.md and buildShaderBundleJson
dartdoc to reflect the 0.4.0 migration (drop the obsolete
flutter config --enable-native-assets step, swap the import,
and rename buildConfig: → buildInput: to match the parameter
name introduced in 0.3.0). No code changes.Migrate from native_assets_cli (discontinued) to hooks 1.0. Build hook authors must now import 'package:hooks/hooks.dart'; instead of package:native_a
native_assets_cli (discontinued) to hooks 1.0. Build
hook authors must now import 'package:hooks/hooks.dart'; instead of
package:native_assets_cli/native_assets_cli.dart.^3.7.0 (matches hooks 1.0 requirements).Update to native_assets_cli to 0.13.0. (https://github.com/bdero/flutter_gpu_shaders/issues/6) Breaking: BuildConfig is now BuildInput
BuildConfig is now BuildInputUpdate to native_assets_cli 0.9.0. Breaking: BuildOutput is now BuildOutputBuilder
BuildOutput is now BuildOutputBuilderPin native_assets_cli to <0.9.0.
Relax native_assets_cli dependency pin.
Fix SDK path resolution for puro users.
Fix working directory for impellerc invocation.
Add buildShaderBundleJson build hook utility.
buildShaderBundleJson build hook utility.Your coding agent can read these notes before it upgrades. Set up the MCP server →