-
Notifications
You must be signed in to change notification settings - Fork 29.7k
[skwasm] Use transferToImageBitmap instead of createImageBitmap
#163251
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
It looks like this pull request may not have tests. Please make sure to add tests before merging. If you need an exemption, contact "@test-exemption-reviewer" in the #hackers channel in Discord (don't just cc them here, they won't see it!). If you are not sure if you need tests, consider this rule of thumb: the purpose of a test is to make sure someone doesn't accidentally revert the fix. Ask yourself, is there anything in your PR that you feel it is important we not accidentally revert back to how it was before your fix? Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing. The test exemption team is a small volunteer group, so all reviewers should feel empowered to ask for tests, without delegating that responsibility entirely to the test exemption group. |
|
Golden file changes have been found for this pull request. Click here to view and triage (e.g. because this is an intentional change). If you are still iterating on this change and are not ready to resolve the images on the Flutter Gold dashboard, consider marking this PR as a draft pull request above. You will still be able to view image results on the dashboard, commenting will be silenced, and the check will not try to resolve itself until marked ready for review. For more guidance, visit Writing a golden file test for Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing. |
|
Comparing the benchmark metrics, the run looks reasonable, perhaps even slightly faster with the new transfer strategy. This needs no additional tests as there is no functional change, should just be perf ramifications if anything. |
yjbanov
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Roll Flutter from e8f34a9 to 39b4951 (95 revisions) flutter/flutter@e8f34a9...39b4951 2025-02-18 [email protected] Marks Windows_arm64 plugin_test_windows to be flaky (flutter/flutter#163123) 2025-02-18 [email protected] [android] use macro definition to shrink repetitive JNI code size. (flutter/flutter#163395) 2025-02-18 [email protected] Roll pub packages (flutter/flutter#163474) 2025-02-18 [email protected] [web] Cleanup everything HTML from the engine (outside html/ folder) (flutter/flutter#162840) 2025-02-18 [email protected] [Impeller] add support for rational bezier conics to Path (flutter/flutter#163282) 2025-02-18 [email protected] Change `cardTheme`, `dialogTheme`, and `tabBarTheme` type to `xxxThemeData` (flutter/flutter#157292) 2025-02-18 [email protected] Update integration test and benchmark Android .gitignore files to match the current app template (flutter/flutter#163276) 2025-02-18 [email protected] [Impeller] Don't create a redundant typography context. (flutter/flutter#163513) 2025-02-18 [email protected] Roll Dart SDK from fcef25f18e4d to 023ac80cef14 (1 revision) (flutter/flutter#163110) 2025-02-18 [email protected] update module_host_with_custom_build_v2_embedding to target android 35 and to use the latest gradle and agp versions (flutter/flutter#163542) 2025-02-18 [email protected] [Impeller] when binding to READ_FRAMEBUFFER, treat multisampled textures as single sampled. (flutter/flutter#163345) 2025-02-18 [email protected] Add missing properties to _ArcPaintPredicate. (flutter/flutter#162572) 2025-02-18 [email protected] Roll Packages from 8542af3 to cb4fb13 (4 revisions) (flutter/flutter#163544) 2025-02-18 [email protected] Remove bringup for android_display_cutout (flutter/flutter#163312) 2025-02-18 [email protected] Create VersionUtils class and unit tests and extract logic out of flutter.groovy (flutter/flutter#163166) 2025-02-18 [email protected] Invalidate `pod install` output if `.flutter-plugins-dependencies` content changes. (flutter/flutter#163275) 2025-02-18 [email protected] Replace hard coded numbers with mouse button defines (flutter/flutter#163503) 2025-02-18 [email protected] Roll Skia from 9147a9654043 to 6da10829d017 (1 revision) (flutter/flutter#163531) 2025-02-18 [email protected] Roll Skia from 92aaa4e20ea7 to 9147a9654043 (2 revisions) (flutter/flutter#163512) 2025-02-17 [email protected] Roll Skia from 71a160edc9d9 to 92aaa4e20ea7 (1 revision) (flutter/flutter#163488) 2025-02-17 [email protected] Roll Packages from 625023a to 8542af3 (21 revisions) (flutter/flutter#163484) 2025-02-17 [email protected] Roll Skia from 7e3129d5db11 to 71a160edc9d9 (1 revision) (flutter/flutter#163459) 2025-02-17 [email protected] Roll Skia from 40ce5ef20d22 to 7e3129d5db11 (1 revision) (flutter/flutter#163451) 2025-02-16 [email protected] Roll Skia from bb166c85957b to 40ce5ef20d22 (1 revision) (flutter/flutter#163403) 2025-02-15 [email protected] Roll Skia from ff94581f1f8a to bb166c85957b (1 revision) (flutter/flutter#163381) 2025-02-15 [email protected] Move DWDS initialization into the onLoadEndCallback for the DDC library bundle format (flutter/flutter#163338) 2025-02-14 [email protected] [canvaskit] Handle MakeGrContext returning null (flutter/flutter#163332) 2025-02-14 [email protected] Roll Skia from 13a3b6f34ee8 to ff94581f1f8a (1 revision) (flutter/flutter#163347) 2025-02-14 [email protected] Fix failing chrome_dev_mode tests (flutter/flutter#163346) 2025-02-14 [email protected] Adds all semantics roles (flutter/flutter#163075) 2025-02-14 [email protected] Roll Skia from 20924303cc25 to 13a3b6f34ee8 (1 revision) (flutter/flutter#163336) 2025-02-14 [email protected] [ Widget Preview ] Add experimental support for web-based widget preview environment (flutter/flutter#163154) 2025-02-14 [email protected] [Impeller] don't use glFramebufferBlit for onscreen restore. (flutter/flutter#163327) 2025-02-14 [email protected] Align web terminal messages with the VM (flutter/flutter#163268) 2025-02-14 [email protected] Manually roll customer_testing to enable rfw tests (flutter/flutter#163030) 2025-02-14 [email protected] Refactor SliverMainAxisGroup for reverse mode. (flutter/flutter#161849) 2025-02-14 [email protected] Tweaked TextContents math to avoid floating point errors (flutter/flutter#162480) 2025-02-14 [email protected] [release] Update cherry-pick CHANGELOG requirements (flutter/flutter#163318) 2025-02-14 [email protected] Roll Skia from 85722a1db585 to 20924303cc25 (2 revisions) (flutter/flutter#163293) 2025-02-14 [email protected] Roll Skia from 5a38d23ee247 to 85722a1db585 (1 revision) (flutter/flutter#163286) 2025-02-14 [email protected] Add `.flutter-plugins-dependencies` to `FlutterBuildSystem`; update logic, add tests. (flutter/flutter#163278) 2025-02-14 [email protected] Add table related semantics role (flutter/flutter#162339) 2025-02-14 [email protected] [Impeller] Call glDebugMessageControlKHR only if the KHR_debug extension is available (flutter/flutter#163273) 2025-02-14 [email protected] Roll Skia from 748415976ad1 to 5a38d23ee247 (3 revisions) (flutter/flutter#163271) 2025-02-14 [email protected] [canvaskit] Use `transferToImageBitmap` instead of `createImageBitmap` (flutter/flutter#163175) 2025-02-14 [email protected] [skwasm] Use `transferToImageBitmap` instead of `createImageBitmap` (flutter/flutter#163251) ...
Roll Flutter from e8f34a9 to 39b4951 (95 revisions) flutter/flutter@e8f34a9...39b4951 2025-02-18 [email protected] Marks Windows_arm64 plugin_test_windows to be flaky (flutter/flutter#163123) 2025-02-18 [email protected] [android] use macro definition to shrink repetitive JNI code size. (flutter/flutter#163395) 2025-02-18 [email protected] Roll pub packages (flutter/flutter#163474) 2025-02-18 [email protected] [web] Cleanup everything HTML from the engine (outside html/ folder) (flutter/flutter#162840) 2025-02-18 [email protected] [Impeller] add support for rational bezier conics to Path (flutter/flutter#163282) 2025-02-18 [email protected] Change `cardTheme`, `dialogTheme`, and `tabBarTheme` type to `xxxThemeData` (flutter/flutter#157292) 2025-02-18 [email protected] Update integration test and benchmark Android .gitignore files to match the current app template (flutter/flutter#163276) 2025-02-18 [email protected] [Impeller] Don't create a redundant typography context. (flutter/flutter#163513) 2025-02-18 [email protected] Roll Dart SDK from fcef25f18e4d to 023ac80cef14 (1 revision) (flutter/flutter#163110) 2025-02-18 [email protected] update module_host_with_custom_build_v2_embedding to target android 35 and to use the latest gradle and agp versions (flutter/flutter#163542) 2025-02-18 [email protected] [Impeller] when binding to READ_FRAMEBUFFER, treat multisampled textures as single sampled. (flutter/flutter#163345) 2025-02-18 [email protected] Add missing properties to _ArcPaintPredicate. (flutter/flutter#162572) 2025-02-18 [email protected] Roll Packages from 8542af3 to cb4fb13 (4 revisions) (flutter/flutter#163544) 2025-02-18 [email protected] Remove bringup for android_display_cutout (flutter/flutter#163312) 2025-02-18 [email protected] Create VersionUtils class and unit tests and extract logic out of flutter.groovy (flutter/flutter#163166) 2025-02-18 [email protected] Invalidate `pod install` output if `.flutter-plugins-dependencies` content changes. (flutter/flutter#163275) 2025-02-18 [email protected] Replace hard coded numbers with mouse button defines (flutter/flutter#163503) 2025-02-18 [email protected] Roll Skia from 9147a9654043 to 6da10829d017 (1 revision) (flutter/flutter#163531) 2025-02-18 [email protected] Roll Skia from 92aaa4e20ea7 to 9147a9654043 (2 revisions) (flutter/flutter#163512) 2025-02-17 [email protected] Roll Skia from 71a160edc9d9 to 92aaa4e20ea7 (1 revision) (flutter/flutter#163488) 2025-02-17 [email protected] Roll Packages from 625023a to 8542af3 (21 revisions) (flutter/flutter#163484) 2025-02-17 [email protected] Roll Skia from 7e3129d5db11 to 71a160edc9d9 (1 revision) (flutter/flutter#163459) 2025-02-17 [email protected] Roll Skia from 40ce5ef20d22 to 7e3129d5db11 (1 revision) (flutter/flutter#163451) 2025-02-16 [email protected] Roll Skia from bb166c85957b to 40ce5ef20d22 (1 revision) (flutter/flutter#163403) 2025-02-15 [email protected] Roll Skia from ff94581f1f8a to bb166c85957b (1 revision) (flutter/flutter#163381) 2025-02-15 [email protected] Move DWDS initialization into the onLoadEndCallback for the DDC library bundle format (flutter/flutter#163338) 2025-02-14 [email protected] [canvaskit] Handle MakeGrContext returning null (flutter/flutter#163332) 2025-02-14 [email protected] Roll Skia from 13a3b6f34ee8 to ff94581f1f8a (1 revision) (flutter/flutter#163347) 2025-02-14 [email protected] Fix failing chrome_dev_mode tests (flutter/flutter#163346) 2025-02-14 [email protected] Adds all semantics roles (flutter/flutter#163075) 2025-02-14 [email protected] Roll Skia from 20924303cc25 to 13a3b6f34ee8 (1 revision) (flutter/flutter#163336) 2025-02-14 [email protected] [ Widget Preview ] Add experimental support for web-based widget preview environment (flutter/flutter#163154) 2025-02-14 [email protected] [Impeller] don't use glFramebufferBlit for onscreen restore. (flutter/flutter#163327) 2025-02-14 [email protected] Align web terminal messages with the VM (flutter/flutter#163268) 2025-02-14 [email protected] Manually roll customer_testing to enable rfw tests (flutter/flutter#163030) 2025-02-14 [email protected] Refactor SliverMainAxisGroup for reverse mode. (flutter/flutter#161849) 2025-02-14 [email protected] Tweaked TextContents math to avoid floating point errors (flutter/flutter#162480) 2025-02-14 [email protected] [release] Update cherry-pick CHANGELOG requirements (flutter/flutter#163318) 2025-02-14 [email protected] Roll Skia from 85722a1db585 to 20924303cc25 (2 revisions) (flutter/flutter#163293) 2025-02-14 [email protected] Roll Skia from 5a38d23ee247 to 85722a1db585 (1 revision) (flutter/flutter#163286) 2025-02-14 [email protected] Add `.flutter-plugins-dependencies` to `FlutterBuildSystem`; update logic, add tests. (flutter/flutter#163278) 2025-02-14 [email protected] Add table related semantics role (flutter/flutter#162339) 2025-02-14 [email protected] [Impeller] Call glDebugMessageControlKHR only if the KHR_debug extension is available (flutter/flutter#163273) 2025-02-14 [email protected] Roll Skia from 748415976ad1 to 5a38d23ee247 (3 revisions) (flutter/flutter#163271) 2025-02-14 [email protected] [canvaskit] Use `transferToImageBitmap` instead of `createImageBitmap` (flutter/flutter#163175) 2025-02-14 [email protected] [skwasm] Use `transferToImageBitmap` instead of `createImageBitmap` (flutter/flutter#163251) ...
Roll Flutter from e8f34a9 to 39b4951 (95 revisions) flutter/flutter@e8f34a9...39b4951 2025-02-18 [email protected] Marks Windows_arm64 plugin_test_windows to be flaky (flutter/flutter#163123) 2025-02-18 [email protected] [android] use macro definition to shrink repetitive JNI code size. (flutter/flutter#163395) 2025-02-18 [email protected] Roll pub packages (flutter/flutter#163474) 2025-02-18 [email protected] [web] Cleanup everything HTML from the engine (outside html/ folder) (flutter/flutter#162840) 2025-02-18 [email protected] [Impeller] add support for rational bezier conics to Path (flutter/flutter#163282) 2025-02-18 [email protected] Change `cardTheme`, `dialogTheme`, and `tabBarTheme` type to `xxxThemeData` (flutter/flutter#157292) 2025-02-18 [email protected] Update integration test and benchmark Android .gitignore files to match the current app template (flutter/flutter#163276) 2025-02-18 [email protected] [Impeller] Don't create a redundant typography context. (flutter/flutter#163513) 2025-02-18 [email protected] Roll Dart SDK from fcef25f18e4d to 023ac80cef14 (1 revision) (flutter/flutter#163110) 2025-02-18 [email protected] update module_host_with_custom_build_v2_embedding to target android 35 and to use the latest gradle and agp versions (flutter/flutter#163542) 2025-02-18 [email protected] [Impeller] when binding to READ_FRAMEBUFFER, treat multisampled textures as single sampled. (flutter/flutter#163345) 2025-02-18 [email protected] Add missing properties to _ArcPaintPredicate. (flutter/flutter#162572) 2025-02-18 [email protected] Roll Packages from 8542af3 to cb4fb13 (4 revisions) (flutter/flutter#163544) 2025-02-18 [email protected] Remove bringup for android_display_cutout (flutter/flutter#163312) 2025-02-18 [email protected] Create VersionUtils class and unit tests and extract logic out of flutter.groovy (flutter/flutter#163166) 2025-02-18 [email protected] Invalidate `pod install` output if `.flutter-plugins-dependencies` content changes. (flutter/flutter#163275) 2025-02-18 [email protected] Replace hard coded numbers with mouse button defines (flutter/flutter#163503) 2025-02-18 [email protected] Roll Skia from 9147a9654043 to 6da10829d017 (1 revision) (flutter/flutter#163531) 2025-02-18 [email protected] Roll Skia from 92aaa4e20ea7 to 9147a9654043 (2 revisions) (flutter/flutter#163512) 2025-02-17 [email protected] Roll Skia from 71a160edc9d9 to 92aaa4e20ea7 (1 revision) (flutter/flutter#163488) 2025-02-17 [email protected] Roll Packages from 625023a to 8542af3 (21 revisions) (flutter/flutter#163484) 2025-02-17 [email protected] Roll Skia from 7e3129d5db11 to 71a160edc9d9 (1 revision) (flutter/flutter#163459) 2025-02-17 [email protected] Roll Skia from 40ce5ef20d22 to 7e3129d5db11 (1 revision) (flutter/flutter#163451) 2025-02-16 [email protected] Roll Skia from bb166c85957b to 40ce5ef20d22 (1 revision) (flutter/flutter#163403) 2025-02-15 [email protected] Roll Skia from ff94581f1f8a to bb166c85957b (1 revision) (flutter/flutter#163381) 2025-02-15 [email protected] Move DWDS initialization into the onLoadEndCallback for the DDC library bundle format (flutter/flutter#163338) 2025-02-14 [email protected] [canvaskit] Handle MakeGrContext returning null (flutter/flutter#163332) 2025-02-14 [email protected] Roll Skia from 13a3b6f34ee8 to ff94581f1f8a (1 revision) (flutter/flutter#163347) 2025-02-14 [email protected] Fix failing chrome_dev_mode tests (flutter/flutter#163346) 2025-02-14 [email protected] Adds all semantics roles (flutter/flutter#163075) 2025-02-14 [email protected] Roll Skia from 20924303cc25 to 13a3b6f34ee8 (1 revision) (flutter/flutter#163336) 2025-02-14 [email protected] [ Widget Preview ] Add experimental support for web-based widget preview environment (flutter/flutter#163154) 2025-02-14 [email protected] [Impeller] don't use glFramebufferBlit for onscreen restore. (flutter/flutter#163327) 2025-02-14 [email protected] Align web terminal messages with the VM (flutter/flutter#163268) 2025-02-14 [email protected] Manually roll customer_testing to enable rfw tests (flutter/flutter#163030) 2025-02-14 [email protected] Refactor SliverMainAxisGroup for reverse mode. (flutter/flutter#161849) 2025-02-14 [email protected] Tweaked TextContents math to avoid floating point errors (flutter/flutter#162480) 2025-02-14 [email protected] [release] Update cherry-pick CHANGELOG requirements (flutter/flutter#163318) 2025-02-14 [email protected] Roll Skia from 85722a1db585 to 20924303cc25 (2 revisions) (flutter/flutter#163293) 2025-02-14 [email protected] Roll Skia from 5a38d23ee247 to 85722a1db585 (1 revision) (flutter/flutter#163286) 2025-02-14 [email protected] Add `.flutter-plugins-dependencies` to `FlutterBuildSystem`; update logic, add tests. (flutter/flutter#163278) 2025-02-14 [email protected] Add table related semantics role (flutter/flutter#162339) 2025-02-14 [email protected] [Impeller] Call glDebugMessageControlKHR only if the KHR_debug extension is available (flutter/flutter#163273) 2025-02-14 [email protected] Roll Skia from 748415976ad1 to 5a38d23ee247 (3 revisions) (flutter/flutter#163271) 2025-02-14 [email protected] [canvaskit] Use `transferToImageBitmap` instead of `createImageBitmap` (flutter/flutter#163175) 2025-02-14 [email protected] [skwasm] Use `transferToImageBitmap` instead of `createImageBitmap` (flutter/flutter#163251) ...
…itmap` (flutter#163251)" This reverts commit 7d22606. It turns out that in many scenarios, resizing the OffscreenCanvas multiple times per frame is prohibitively expensive. It also turns out that neither API works well enough on non-Chrome browsers to make it viable anyway, so we should switch back to `createImageBitmap`.
…itmap` (#163251)" (#171238) This reverts commit 7d22606. It turns out that in many scenarios, resizing the OffscreenCanvas multiple times per frame is prohibitively expensive. It also turns out that neither API works well enough on non-Chrome browsers to make it viable anyway, so we should switch back to `createImageBitmap`.
…itmap` (flutter#163251)" (flutter#171238) This reverts commit 7d22606. It turns out that in many scenarios, resizing the OffscreenCanvas multiple times per frame is prohibitively expensive. It also turns out that neither API works well enough on non-Chrome browsers to make it viable anyway, so we should switch back to `createImageBitmap`.
…itmap` (flutter#163251)" (flutter#171238) This reverts commit 7d22606. It turns out that in many scenarios, resizing the OffscreenCanvas multiple times per frame is prohibitively expensive. It also turns out that neither API works well enough on non-Chrome browsers to make it viable anyway, so we should switch back to `createImageBitmap`.

Harry had investigated that on the CanvasKit side, that this was a bit a faster than the
createImageBitmapapproach when dealing with multiple DOM canvases. Also, it appears that Safari is significantly faster attransferToImageBitmapcompared tocreateImageBitmap, so this might make porting skwasm to Safari a bit more feasible. Either way, we should validate the performance and make sure this doesn't actually make anything slower.