Skip to content
This repository was archived by the owner on Feb 22, 2023. It is now read-only.

Commit 2fd8250

Browse files
[flutter_tools] re-enable web shader compilation (#118461)
* [flutter_tools] re-enable web shader compilation * update test cases
1 parent b4d7275 commit 2fd8250

File tree

3 files changed

+17
-21
lines changed

3 files changed

+17
-21
lines changed

packages/flutter_tools/lib/src/asset.dart

Lines changed: 13 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -427,8 +427,7 @@ class ManifestAssetBundle implements AssetBundle {
427427
// For all platforms, include the shaders unconditionally. They are
428428
// small, and whether they're used is determined only by the app source
429429
// code and not by the Flutter manifest.
430-
if (targetPlatform != TargetPlatform.web_javascript)
431-
..._getMaterialShaders(),
430+
..._getMaterialShaders(),
432431
];
433432
for (final _Asset asset in materialAssets) {
434433
final File assetFile = asset.lookupAssetFile(_fileSystem);
@@ -831,22 +830,18 @@ class ManifestAssetBundle implements AssetBundle {
831830
}
832831
}
833832

834-
// TODO(jonahwilliams): re-enable this feature once
835-
// flutter web is using engine compiled canvaskit.
836-
if (targetPlatform != TargetPlatform.web_javascript) {
837-
for (final Uri shaderUri in flutterManifest.shaders) {
838-
_parseAssetFromFile(
839-
packageConfig,
840-
flutterManifest,
841-
assetBase,
842-
cache,
843-
result,
844-
shaderUri,
845-
packageName: packageName,
846-
attributedPackage: attributedPackage,
847-
assetKind: AssetKind.shader,
848-
);
849-
}
833+
for (final Uri shaderUri in flutterManifest.shaders) {
834+
_parseAssetFromFile(
835+
packageConfig,
836+
flutterManifest,
837+
assetBase,
838+
cache,
839+
result,
840+
shaderUri,
841+
packageName: packageName,
842+
attributedPackage: attributedPackage,
843+
assetKind: AssetKind.shader,
844+
);
850845
}
851846

852847
for (final Uri modelUri in flutterManifest.models) {

packages/flutter_tools/test/general.shard/asset_bundle_test.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -479,6 +479,7 @@ flutter:
479479
'--spirv=$outputPath.spirv',
480480
'--input=/$shaderPath',
481481
'--input-type=frag',
482+
'--remap-samplers',
482483
'--include=/$assetsPath',
483484
'--include=$shaderLibDir',
484485
],
@@ -548,7 +549,7 @@ flutter:
548549
loggerOverride: testLogger,
549550
targetPlatform: TargetPlatform.web_javascript,
550551
);
551-
552+
expect((globals.processManager as FakeProcessManager).hasRemainingExpectations, false);
552553
}, overrides: <Type, Generator>{
553554
Artifacts: () => artifacts,
554555
FileSystem: () => fileSystem,

packages/flutter_tools/test/general.shard/asset_test.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ name: my_package
122122
ProcessManager: () => FakeProcessManager.empty(),
123123
});
124124

125-
testUsingContext('Does not bundles material shaders on web platforms', () async {
125+
testUsingContext('Does bundle material shaders on web platforms', () async {
126126
final String shaderPath = globals.fs.path.join(
127127
Cache.flutterRoot!,
128128
'packages', 'flutter', 'lib', 'src', 'material', 'shaders', 'ink_sparkle.frag'
@@ -136,7 +136,7 @@ name: my_package
136136

137137
await asset.build(packagesPath: '.packages', targetPlatform: TargetPlatform.web_javascript);
138138

139-
expect(asset.entries.keys, isNot(contains('shaders/ink_sparkle.frag')));
139+
expect(asset.entries.keys, contains('shaders/ink_sparkle.frag'));
140140
}, overrides: <Type, Generator>{
141141
FileSystem: () => MemoryFileSystem.test(),
142142
ProcessManager: () => FakeProcessManager.empty(),

0 commit comments

Comments
 (0)