flutter_gpu_shaders
Build tools for Flutter GPU shader bundles/libraries.
0.5.2
38K downloads/mo
#1653 most downloaded on pub.dev
bdero/flutter_gpu_shaders
What this package is like to depend on
Last release 12 days 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
8 releases in the last 12 months
see the full history below
Release timeline
15 releases · Jul 2024 to Aug 2026
2025
2026
Releases
latest 15-
0.5.211 Aug 2026Release notes
Open source →- Track the
impellercbinary as a build input, so bundles rebuild whenever the engine artifacts change. - Write an engine stamp beside each bundle, so a shared pub-cache bundle rewritten by another project (or Flutter SDK) triggers a rebuild instead of shipping a wrong-engine bundle.
- Recover depfile dependency paths containing spaces (
impellercwrites them unescaped); a split path declared a nonexistent dependency, which made the hook re-run on every build for SDKs under paths likeApplication Support.
Release notes
Open source →- Track the
impellercbinary as a build input, so bundles rebuild whenever the engine artifacts change. - Write an engine stamp beside each bundle, so a shared pub-cache bundle rewritten by another project (or Flutter SDK) triggers a rebuild instead of shipping a wrong-engine bundle.
- Recover depfile dependency paths containing spaces (
impellercwrites them unescaped); a split path declared a nonexistent dependency, which made the hook re-run on every build for SDKs under paths likeApplication Support.
- Track the
-
0.5.113 Jun 2026Release notes
Open source →- Added a
glesLanguageVersionoption tobuildShaderBundleJson(andshaderBundleImpellercArguments), forwarded toimpellercas--gles-language-version. Setting300emits#version 300 esOpenGL ES shaders, where explicit-LOD sampling and derivatives are core rather than extension-gated. findImpellerCnow also probes thelinux-arm64andwindows-arm64engine artifact directories; the previous x64-only list failed on Linux arm64 hosts.
Release notes
Open source →- Added a
glesLanguageVersionoption tobuildShaderBundleJson(andshaderBundleImpellercArguments), forwarded toimpellercas--gles-language-version. Setting300emits#version 300 esOpenGL ES shaders, where explicit-LOD sampling and derivatives are core rather than extension-gated. findImpellerCnow also probes thelinux-arm64andwindows-arm64engine artifact directories; the previous x64-only list failed on Linux arm64 hosts.
- Added a
-
0.5.007 Jun 2026Release notes
Open source →- Fixed dependency tracking that made the build hook re-run on every build. Manifest
fileentries are now resolved against the package root (matching howimpellercresolves them) instead of the manifest's directory, which had produced doubled, non-existent paths for manifests in a subdirectory. - Generated shader sources written under the package's
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. - Breaking:
collectShaderBundleDependenciesnow requires apackageRootargument (used to resolve manifestfilepaths). Most consumers usebuildShaderBundleJson, whose signature is unchanged.
Release notes
Open source →- Fixed dependency tracking that made the build hook re-run on every build.
Manifest
fileentries are now resolved against the package root (matching howimpellercresolves them) instead of the manifest's directory, which had produced doubled, non-existent paths for manifests in a subdirectory. - Generated shader sources written under the package's
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. - Breaking:
collectShaderBundleDependenciesnow requires apackageRootargument (used to resolve manifestfilepaths). Most consumers usebuildShaderBundleJson, whose signature is unchanged.
- Fixed dependency tracking that made the build hook re-run on every build. Manifest
-
0.4.528 May 2026Release notes
Open source →Changes
- Added optional Dart DataAssets registration for generated shader bundles via
ShaderBundleAssetMode. dataAssetsIfAvailableregisters the generated.shaderbundlewith the Flutter asset bundle when supported and falls back to legacy file output otherwise.buildShaderBundleJsonnow returnsShaderBundleBuildResult, including legacy and DataAsset asset keys when available.
Published to pub.dev: https://pub.dev/packages/flutter_gpu_shaders/versions/0.4.5
Release notes
Open source →- Added optional Dart DataAssets registration for shader bundles via
ShaderBundleAssetMode. The default remains legacy file output underbuild/shaderbundles/, whiledataAssetsIfAvailableregisters the generated.shaderbundlewith the Flutter asset bundle when supported and falls back otherwise. buildShaderBundleJsonnow returnsShaderBundleBuildResult, including the legacy asset key and DataAsset/Flutter asset keys when a DataAsset is emitted.
- Added optional Dart DataAssets registration for generated shader bundles via
-
0.4.426 May 2026Release notes
Open source →buildShaderBundleJsonnow consumesimpellercdepfiles when the resolved compiler advertises--depfilesupport. This lets newer Flutter SDKs track transitive shader#includedependencies while preserving the existing manifest dependency scan for olderimpellercbuilds that do not support the flag or do not emit a depfile in--shader-bundlemode.buildShaderBundleJsonaccepts anincludeDirectoriesparameter: extra directories appended toimpellerc's#includesearch path, after the manifest directory and the bundledshader_lib. This lets a build hook compile shaders that#includereusable 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.- New
shaderBundleImpellercArguments(...)helper returns the exactimpellercargument list, exposed for inspection from custom build hooks and tests.
-
0.4.210 May 2026Release notes
Open source →findImpellerCnow also honors a runtimeIMPELLERCenvironment 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-enginecase where the locally builtimpellercshould 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.
-
0.4.109 May 2026Release notes
Open source →- Documentation: update
README.mdandbuildShaderBundleJsondartdoc to reflect the 0.4.0 migration (drop the obsoleteflutter config --enable-native-assetsstep, swap the import, and renamebuildConfig:→buildInput:to match the parameter name introduced in 0.3.0). No code changes.
- Documentation: update
-
0.4.009 May 2026Release notes
Open source →- Migrate from
native_assets_cli(discontinued) tohooks1.0. Build hook authors must nowimport 'package:hooks/hooks.dart';instead ofpackage:native_assets_cli/native_assets_cli.dart. - Bump SDK constraint to
^3.7.0(matcheshooks1.0 requirements).
- Migrate from
-
0.3.013 Apr 2025Release notes
Open source →- Update to native_assets_cli to 0.13.0.
(https://github.com/bdero/flutter_gpu_shaders/issues/6)
Breaking:
BuildConfigis nowBuildInput
- Update to native_assets_cli to 0.13.0.
(https://github.com/bdero/flutter_gpu_shaders/issues/6)
Breaking:
-
0.2.007 Nov 2024Release notes
Open source →- Update to native_assets_cli 0.9.0.
Breaking:
BuildOutputis nowBuildOutputBuilder
- Update to native_assets_cli 0.9.0.
Breaking:
-
0.1.406 Nov 2024Release notes
Open source →- Pin native_assets_cli to <0.9.0. (https://github.com/bdero/flutter_gpu_shaders/issues/3)
-
0.1.304 Oct 2024 -
0.1.208 Aug 2024 -
0.1.123 Jul 2024 -
0.1.022 Jul 2024Release notes
Open source →- Add
buildShaderBundleJsonbuild hook utility. - Document usage instructions in the readme.
- Add