skia-flutter-autoroll
d32d2ec609
Roll Dart SDK from 838ed940b056 to c7e47c6c5df6 (1 revision) ( flutter/engine#57038 )
...
https://dart.googlesource.com/sdk.git/+log/838ed940b056..c7e47c6c5df6
2024-12-07 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-224.0.dev
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dart-sdk-flutter-engine
Please CC bdero@google.com ,dart-vm-team@google.com on the revert to ensure that a human
is aware of the problem.
To file a bug in Flutter Engine: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-12-07 06:19:28 +00:00
skia-flutter-autoroll
99c5f6e7f2
Roll Dart SDK from 67ce49b905f7 to 838ed940b056 (2 revisions) ( flutter/engine#57037 )
...
https://dart.googlesource.com/sdk.git/+log/67ce49b905f7..838ed940b056
2024-12-07 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-223.0.dev
2024-12-06 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-222.0.dev
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dart-sdk-flutter-engine
Please CC bdero@google.com ,dart-vm-team@google.com on the revert to ensure that a human
is aware of the problem.
To file a bug in Flutter Engine: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-12-07 02:05:05 +00:00
skia-flutter-autoroll
897529e800
Roll Fuchsia Linux SDK from DDdLABVLcqOv_axv-... to __h1RRphItwU5H0tL... ( flutter/engine#57028 )
...
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/fuchsia-linux-sdk-flutter-engine
Please CC bdero@google.com ,zra@google.com on the revert to ensure that a human
is aware of the problem.
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-12-07 00:19:14 +00:00
Brandon DeRosier
83d36af187
Cover offset+bounds wrapping in the APNG frame region check. ( flutter/engine#57025 )
...
The `offset + bounds` calculation in the bounds checks could wrap around, bypassing the check.
(Follow up to https://github.com/flutter/engine/pull/56928 )
2024-12-06 23:26:31 +00:00
skia-flutter-autoroll
849bf8bd37
Roll Skia from 0d94e966268b to c9e9ce277b80 (3 revisions) ( flutter/engine#57024 )
...
https://skia.googlesource.com/skia.git/+log/0d94e966268b..c9e9ce277b80
2024-12-06 lokokung@google.com [dawn][headers] Update uses to new APIs and enums in buffer/queue.
2024-12-06 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 11d17e6bd029 to 94052ee8a2fb (2 revisions)
2024-12-06 danieldilan@google.com Reland "Initialize decompress struct with libjpeg-turbo's API"
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skia-flutter-autoroll
Please CC bdero@google.com ,jvanverth@google.com,kjlubick@google.com on the revert to ensure that a human
is aware of the problem.
To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-12-06 23:06:47 +00:00
Jonah Williams
ebd057a46f
[Impeller] store vertex buffers in render pass for gles. ( flutter/engine#56991 )
...
Move vertex buffer storage off of the command object. Because we can bind up to 16 (but usually 1) vertex buffers per cmd, storing it on the command requires allocating storage for the full 16 buffers. MOving this to a secondary vector decreases the size of the command object from ~800 bytes to ~200 bytes.
2024-12-06 22:03:11 +00:00
Jonah Williams
d58cd98b8c
[Impeller] Add keep alive for 4 frames in render target cache. ( flutter/engine#57020 )
...
Improve cache usage by keeping textures alive for 4 frames after the last usage. This improves cache usage in scenarios such as repeatidly dragging the android overscroll functionality.
THis isn't expected to have a negative impact on memory, because a texture cannot be _immediately_ deleted anyway.
2024-12-06 21:43:56 +00:00
hellohuanlin
13c0f5ad58
[ios][platform_view] workaround for non-tappable webview ( flutter/engine#56804 )
...
This is pretty tricky bug - I suspect that because Apple's internal recognizer caching an outdated state of our delaying recognizer.
The conflict happens between WebKit and platform view's recognizers. It happens to all plugins that uses a WKWebView, or any view that has a similar (unknown) gesture setup.
This fix has to be in the engine (rather than the plugin), because the plugin itself knows nothing about the existence of our delaying recognizer.
Here are the steps of my research for future reference:
1. The bug only happens when the overlay flutter widgets blocks the gestures for the platform view (e.g. tap on the platform view area when a flutter context menu is displayed). When the bug happens, WKWebView's link doesn't work anymore, however, the link can still be highlighted when tapped.
2. When I remove the delaying recognizer from platform view, the link became clickable again. This means that the bug is related to some conflict between WKWebView's internal recognizers and our delaying recognizer. This also means that it is not possible to fix this issue at plugin level, which knows nothing about the delaying recognizer.
3. When we tap on the web view when context menu is displayed, `blockGesture` will be called, which simply toggles delaying recognizer's state from `possible` to `ended` state, meaning it should block all recognizers from the current gesture (and it correctly did so). Then I use `dispatch_async` and check the state again, and confirmed the state is correctly reset to `possible` state.
4. Subsequent tap on web view triggers `acceptGesture`, which turns the `possible` state into `failed` state. This subsequent tap only highlights the link, but not activate the link. This suggests that some internal web kit recognizer that handles the highlight sees the `failed` state of delaying recognizer (which is correct), but the recognizer that handles the link activation probably sees the stale state of `possible` or `ended` (which is outdated old state).
5. So the solution is trying to make the recognizer "see" the updated state rather than the cached old state.
6. I tried recreating a new delaying recognizer when `blockGesture` is called:
```
- blockGesture {
delayingRecognizer.state = .ended
dispatch_async {
// force re-create the delaying recognizer
}
}
```
This fixed the link activation bug, however, when opening the context menu again, the gesture is not blocked anymore. This means web kit internal recognizers likely cache the old delaying recognizer for state update, thus the new instance of delaying recognizer won't work anymore. So we can't change the instance. However, it's a good experiment that confirms my hypothesis that some internal webkit recognizer caches the outdated state of delaying recognizer.
7. For the above code, rather than using `dispatch_async`, I also tried `dispatch_after`, and it turns out that it only works if the dispatch_after delay is `0` - even if the delay is much smaller than 1 frame's time (16.7ms), it doesn't work. This means the state checking happens either at the end of the current run loop, or beginning of the next run loop. (not too important information, but it helps me better understand how UIKit works).
8. So from 6, we know that we have to keep the original instance of delaying recognizer. I tried toggling `recognizer.enabled`, it didn't work. I also tried inserting a dummy recognizer, it didn't work. Neither approach triggers the state "refresh" for those webkit internal recognizers.
9. I tried removing and adding back the delaying recognizer, and it just worked! This means that removing and adding back the delaying recognizer probably triggered UIKit to refresh the states for all its related recognizers (i.e. those recognizers either blocking or being blocked by the delaying recognizer), hence getting the updated state.
*List which issues are fixed by this PR. You must list at least one issue.*
Fixes https://github.com/flutter/flutter/issues/158961
*If you had to change anything in the [flutter/tests] repo, include a link to the migration guide as per the [breaking change policy].*
[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-12-06 21:43:54 +00:00
gaaclarke
592ceb7326
Reland: Replaces bespoke call captures from mock gles with gmock ( flutter/engine#57019 )
...
relands https://github.com/flutter/engine/pull/56995
It previously landed with stale presubmits, this should be up to date now. I have the fix in a separate commit.
[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-12-06 21:38:40 +00:00
skia-flutter-autoroll
0e4fafd629
Roll Skia from c9647f13cded to 0d94e966268b (36 revisions) ( flutter/engine#57023 )
...
Roll Skia from c9647f13cded to 0d94e966268b (36 revisions)
https://skia.googlesource.com/skia.git/+log/c9647f13cded..0d94e966268b
2024-12-06 alecmouri@google.com Support PNG gainmaps
2024-12-06 danieldilan@google.com Revert "Initialize decompress struct with libjpeg-turbo's API"
2024-12-06 danieldilan@google.com Initialize decompress struct with libjpeg-turbo's API
2024-12-06 skia-autoroll@skia-public.iam.gserviceaccount.com Manual roll Dawn from 1e61e82b1b7a to 92c3ee90cfff (9 revisions)
2024-12-06 lukasza@chromium.org Reapply "[rust png] Extract `SkPngEncoderBase::onEncodeRows`."
2024-12-06 jvanverth@google.com Revert "Remove JSON output from public API of SkSLDebugTrace"
2024-12-06 jvanverth@google.com Revert "Move SkJSON.h to //modules/jsonreader"
2024-12-06 jvanverth@google.com Revert "[rust png] Extract `SkPngEncoderBase::onEncodeRows`."
2024-12-06 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Dawn from 38268c8df30d to 1e61e82b1b7a (6 revisions)
2024-12-06 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra from 73c103d87739 to 48b61740d60f (9 revisions)
2024-12-06 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 0846b50db6b1 to 11d17e6bd029 (6 revisions)
2024-12-05 kjlubick@google.com Move SkJSON.h to //modules/jsonreader
2024-12-05 kjlubick@google.com Remove JSON output from public API of SkSLDebugTrace
2024-12-05 skia-autoroll@skia-public.iam.gserviceaccount.com Manual roll Dawn from 3ee07d9e3ba7 to 38268c8df30d (12 revisions)
2024-12-05 jamesgk@google.com [graphite] Add a test for unused target surface on replay
2024-12-05 jamesgk@google.com [graphite] Allow providing unused target surface on replay
2024-12-05 jamesgk@google.com Ignore all deferred canvas tests in Protected configs
2024-12-05 lukasza@chromium.org [rust png] Integrate Rust `png` crate into `SkPngRustEncoderImpl`.
2024-12-05 lukasza@chromium.org [rust png] Extract `SkPngEncoderBase::onEncodeRows`.
2024-12-05 briansalomon@gmail.com Show timer queries for Graphite/Dawn in Viewer stats
2024-12-05 lukasza@chromium.org [rust png] Extract `SkPngEncoderBase::getTargetInfo`.
2024-12-05 lukasza@chromium.org [rust png] Test that can detect encoding RGB vs RGBA mismatch.
2024-12-05 michaelludwig@google.com [ganesh] Check index count for overflow for good measure
2024-12-05 robertphillips@google.com Address some numerical instability in SkRRect::transform
2024-12-05 jamesgk@google.com [graphite] Support mipmapped deferred canvases
2024-12-05 kjlubick@google.com Add graphite-specific version of tools/DisplayParams
2024-12-05 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 0bb109aa3311 to e42047f0bbac (16 revisions)
2024-12-05 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from ef19ac786024 to 0846b50db6b1 (6 revisions)
2024-12-05 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra from 2d420a4dcfc4 to 73c103d87739 (7 revisions)
2024-12-05 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Dawn from e0d7445de8cd to 3ee07d9e3ba7 (18 revisions)
2024-12-04 kjlubick@google.com Slightly improve readability of SkSwizzler_opts
2024-12-04 kjlubick@google.com Help type deduction for old compilers
2024-12-04 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 7adbb3e81110 to 0bb109aa3311 (14 revisions)
2024-12-04 jvanverth@google.com Catch some excessive loop cases in GrTriangulator.
2024-12-04 skia-autoroll@skia-public.iam.gserviceaccount.com Roll skottie-base from 04ad645c0403 to 32e4afed6d80
2024-12-04 fmalita@chromium.org [svg] Conditional debugging
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skia-flutter-autoroll
Please CC bdero@google.com ,jvanverth@google.com,kjlubick@google.com on the revert to ensure that a human
is aware of the problem.
To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose
...
2024-12-06 21:38:39 +00:00
Chris Bracken
f5db949a32
iOS: add null check on create impeller context ( flutter/engine#56952 )
...
In the case where `CreateImpellerContext` encounters an error while creating an `impeller::ContextMTL`, we logged an error, returned nullptr, then immediately dereferenced the null pointer. Now, rather than crash due to a segfault, we now intentionally abort with an appropriate error message.
This adds checks in the `FlutterDarwinContextMetalImpeller` initialiser that aborts with an appropriate error message if impeller context creation fails, Metal device creation fails, or texture cache creation fails.
Rather than bailing out and returning nil from the initialiser to pass the buck to the caller, we terminate since without a graphics context, the app won't be able to render anything to begin with.
Issue: https://github.com/flutter/flutter/issues/157489
Issue: [b/378790930](http://b/378790930 )
No test changes since this just changes an accidental crash to an intentional crash.
[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-12-06 19:32:25 +00:00
skia-flutter-autoroll
87af85b89c
Roll Dart SDK from 9c9a333c496c to 67ce49b905f7 (2 revisions) ( flutter/engine#57013 )
...
https://dart.googlesource.com/sdk.git/+log/9c9a333c496c..67ce49b905f7
2024-12-06 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-221.0.dev
2024-12-06 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-220.0.dev
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dart-sdk-flutter-engine
Please CC bdero@google.com ,dart-vm-team@google.com on the revert to ensure that a human
is aware of the problem.
To file a bug in Flutter Engine: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-12-06 19:32:24 +00:00
auto-submit[bot]
3e5e7086d5
Reverts "Replaces bespoke call captures from mock gles with gmock ( #56995 )" ( flutter/engine#57016 )
...
Reverts: flutter/engine#56995
Initiated by: jonahwilliams
Reason for reverting: compilation error at head.
Original PR Author: gaaclarke
Reviewed By: {jonahwilliams}
This change reverts the following previous change:
test exempt: test only code
[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-12-06 18:01:35 +00:00
gaaclarke
afb249fd2b
Replaces bespoke call captures from mock gles with gmock ( flutter/engine#56995 )
...
test exempt: test only code
## Pre-launch Checklist
- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide] and the [C++,
Objective-C, Java style guides].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I added new tests to check the change I am making or feature I am
adding, or the PR is [test-exempt]. See [testing the engine] for
instructions on writing and running engine tests.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I signed the [CLA].
- [x] All existing and new tests are passing.
If you need help, consider asking for advice on the #hackers-new channel
on [Discord].
<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/master/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/master/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/master/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/master/docs/contributing/Style-guide-for-Flutter-repo.md
[C++, Objective-C, Java style guides]:
https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
[testing the engine]:
https://github.com/flutter/engine/blob/main/docs/testing/Testing-the-engine.md
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/master/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/master/docs/contributing/Chat.md
2024-12-06 09:17:57 -08:00
Jason Simmons
30289be8ba
[Impeller] Require the GLES multisampled_render_to_texture2 extension for offscreen MSAA ( flutter/engine#56997 )
...
Offscreen MSAA needs the ability to create multisample depth and stencil attachments.
2024-12-06 15:43:23 +00:00
skia-flutter-autoroll
e9540f935e
Roll Dart SDK from d7903a0fedc5 to 9c9a333c496c (1 revision) ( flutter/engine#57006 )
...
https://dart.googlesource.com/sdk.git/+log/d7903a0fedc5..9c9a333c496c
2024-12-06 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-219.0.dev
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dart-sdk-flutter-engine
Please CC bdero@google.com ,dart-vm-team@google.com on the revert to ensure that a human
is aware of the problem.
To file a bug in Flutter Engine: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-12-06 10:03:22 +00:00
skia-flutter-autoroll
2c5c35afe6
Roll Dart SDK from 56bbedca60f9 to d7903a0fedc5 (2 revisions) ( flutter/engine#56998 )
...
https://dart.googlesource.com/sdk.git/+log/56bbedca60f9..d7903a0fedc5
2024-12-06 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-218.0.dev
2024-12-05 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-217.0.dev
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dart-sdk-flutter-engine
Please CC bdero@google.com ,dart-vm-team@google.com on the revert to ensure that a human
is aware of the problem.
To file a bug in Flutter Engine: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-12-06 02:03:22 +00:00
Michael Goderbauer
75f9549553
Bump Dart SDK to 3.7 ( flutter/engine#56989 )
2024-12-06 01:41:03 +00:00
skia-flutter-autoroll
0773b06391
Roll Fuchsia Linux SDK from CCKZcL47N_2_vxAtS... to DDdLABVLcqOv_axv-... ( flutter/engine#56988 )
...
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/fuchsia-linux-sdk-flutter-engine
Please CC bdero@google.com ,zra@google.com on the revert to ensure that a human
is aware of the problem.
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-12-05 22:14:05 +00:00
Michael Goderbauer
a8c8d2f15e
Configure Page Width ( flutter/engine#56987 )
2024-12-05 22:12:03 +00:00
Jim Graham
1c2cd45f88
[DisplayList] Disable group opacity when a RuntimeEffect is in use ( flutter/engine#56936 )
...
Fixes https://github.com/flutter/flutter/issues/158500
Impeller does not support group opacity for RuntimeEffects so we disable the optimization with a flag when it is detected.
2024-12-05 21:39:50 +00:00
gaaclarke
72d1c2fea6
Removes ReactorGLES::Ref ( flutter/engine#56981 )
...
This typedef really wasn't making the codebase any easier to work with. We don't do this for other std::shared_ptr's
test-exempt: just removes typedef
[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-12-05 21:06:11 +00:00
Jonah Williams
2e80dbea2c
[Impeller] create a 300 es variant of all GLES shaders to support UBO binding. ( flutter/engine#56960 )
...
Create a GLES3 "backend" by compiling a second set of GLES shaders to 300 es. This allows the usage of UBOs and SSBOs.
2024-12-05 20:56:16 +00:00
Tong Mu
f5325bf597
[Impeller] Add rounded superellipse ( flutter/engine#56726 )
...
Support rounded superellipse.
Part of https://github.com/flutter/flutter/issues/139321 and
https://github.com/flutter/flutter/issues/13914 , also related to
https://github.com/flutter/flutter/issues/91523 .
### Open questions
* Alternative names:
* Round**ed**Superellipse
* Squircle
* ContinuousBorderRectangle (or something like this...)
* I chose rounded superellipse because this name, albeit its length,
precisely describe this shape. "Squircle" is not strictly defined but
generally refers any shape intermediate between a rectangle and a
circle.
* Alternative definition for `corner_radius`:
* Currently the `corner_radius` corresponds to SwiftUI parameters. To
make the shape definition more generalized, we can instead define the
`corner_radius` to be the radius of the corner circles, and make the
framework do a look up table.
* The down side is, not only the work to re-calculate the table, but
also that it doesn't completely eliminates the relationship with
SwiftUI, since currently the degree of the superellipse (`n`) is also
mapped from the SwiftUI `cornerRadius`, which is not necessary for the
shape per se.
* To some extent it boils down to the question of whether we'd like this
shape to support anything beyond SwiftUI.
### Demo
https://github.com/user-attachments/assets/806ac0e9-d62f-4b04-ab6a-83436a11f6f3
Low ratio: (900, 900, 445)
<img width="520" alt="image"
src="https://github.com/user-attachments/assets/54087467-85cd-4021-91cc-a948866ab5a8 ">
Mid ratio: (900, 650, 180)
<img width="508" alt="image"
src="https://github.com/user-attachments/assets/460a4927-0396-462b-948d-0846a781c92c ">
High ratio: (900, 650, 17)
<img width="490" alt="image"
src="https://github.com/user-attachments/assets/8d7f625d-8a3b-4aba-b3f9-f292b874b606 ">
## Pre-launch Checklist
- [ ] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [ ] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [ ] I read and followed the [Flutter Style Guide] and the [C++,
Objective-C, Java style guides].
- [ ] I listed at least one issue that this PR fixes in the description
above.
- [ ] I added new tests to check the change I am making or feature I am
adding, or the PR is [test-exempt]. See [testing the engine] for
instructions on writing and running engine tests.
- [ ] I updated/added relevant documentation (doc comments with `///`).
- [ ] I signed the [CLA].
- [ ] All existing and new tests are passing.
If you need help, consider asking for advice on the #hackers-new channel
on [Discord].
<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#overview
[Tree Hygiene]: https://github.com/flutter/flutter/wiki/Tree-hygiene
[test-exempt]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo
[C++, Objective-C, Java style guides]:
https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
[testing the engine]:
https://github.com/flutter/flutter/wiki/Testing-the-engine
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#handling-breaking-changes
[Discord]: https://github.com/flutter/flutter/wiki/Chat
2024-12-05 11:27:20 -08:00
gaaclarke
4931dd81fb
Moved gles pipelines to untracked handles. ( flutter/engine#56955 )
...
issue: https://github.com/flutter/flutter/issues/159745
[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-12-05 19:21:18 +00:00
skia-flutter-autoroll
5cb8e71fd5
Roll Dart SDK from a2a9428e761f to 56bbedca60f9 (7 revisions) ( flutter/engine#56980 )
...
https://dart.googlesource.com/sdk.git/+log/a2a9428e761f..56bbedca60f9
2024-12-05 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-216.0.dev
2024-12-05 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-215.0.dev
2024-12-05 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-214.0.dev
2024-12-05 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-213.0.dev
2024-12-05 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-212.0.dev
2024-12-04 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-211.0.dev
2024-12-04 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-210.0.dev
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dart-sdk-flutter-engine
Please CC bdero@google.com ,dart-vm-team@google.com on the revert to ensure that a human
is aware of the problem.
To file a bug in Flutter Engine: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-12-05 18:41:21 +00:00
Mouad Debbar
a3ed100995
[web] Use eventTarget
when computing pointer offset ( flutter/engine#56949 )
...
These changes are mainly things I missed in https://github.com/flutter/engine/pull/56719
Fixes https://github.com/flutter/flutter/issues/159804
2024-12-05 18:07:20 +00:00
Brandon DeRosier
ba21393f49
Drop APNG frames that don't fit entirely within the destination surface. ( flutter/engine#56928 )
...
As per the [spec](https://www.w3.org/TR/png/#fcTL-chunk ):
> The frame must be rendered within the region defined by x_offset, y_offset, width, and height. This region may not fall outside of the default image; thus x_offset plus width must not be greater than the [IHDR](https://www.w3.org/TR/png/#11IHDR ) width; similarly y_offset plus height must not be greater than the [IHDR](https://www.w3.org/TR/png/#11IHDR ) height.
2024-12-05 09:34:32 +00:00
Jonah Williams
7b1b6d13f2
[Impeller] store GLES bindings on render pass w/ offsets instead of per-command. ( flutter/engine#56910 )
...
To reduce heap fragmentation from tons of little vectors.
2024-12-05 06:13:30 +00:00
Jonah Williams
4453a2b85b
[Impeller] avoid re-binding winding order and cull mode. ( flutter/engine#56943 )
...
Winding order and cull mode almost never change, so avoid re-binding them over and over again. Minor performance improvement.
2024-12-05 03:26:05 +00:00
gaaclarke
8c736f4144
Implements the naming of untracked gles handles ( flutter/engine#56948 )
...
issue: https://github.com/flutter/flutter/issues/159745
https://github.com/flutter/engine/pull/56927 introduced untracked handles, but naming them didn't work. This adds a test to make sure they work. I kept naming thread-safe since it isn't happening often anyways.
[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-12-05 02:06:44 +00:00
Jonah Williams
ae6555d5a9
[Impeller] remove extra validation checks in GLES backend. ( flutter/engine#56944 )
...
We're already doing a check if the pipeline is valid in RenderPass::AddCommand. The index checks are validated during binding, and the check for instancing is unecessary given that we don't expose.
While I'm at it do some minor cleanups.
2024-12-04 23:24:09 +00:00
Robert Ancell
fd12f3489c
Remove LSAN supressions for Linux embedder ( flutter/engine#56913 )
...
Fixes https://github.com/flutter/flutter/issues/90155
2024-12-05 11:44:08 +13:00
Mouad Debbar
111ba5aae9
[web] Start with a smaller memory allocation for CanvasKit ( flutter/engine#56900 )
...
Confirmed that a sample Flutter app starts with a 32MB memory allocation for CanvasKit instead of 128MB.
| Before | After|
|-|-|
|  |  |
Fixes https://github.com/flutter/flutter/issues/159499
<hr>
Relevant emscripten settings:
- [`INITIAL_MEMORY`](https://emscripten.org/docs/tools_reference/settings_reference.html#initial-memory )
- [`ALLOW_MEMORY_GROWTH`](https://emscripten.org/docs/tools_reference/settings_reference.html#allow-memory-growth )
- [`MEMORY_GROWTH_GEOMETRIC_STEP`](https://emscripten.org/docs/tools_reference/settings_reference.html#memory-growth-geometric-step )
- [`MEMORY_GROWTH_GEOMETRIC_CAP`](https://emscripten.org/docs/tools_reference/settings_reference.html#memory-growth-geometric-cap )
- [`ABORTING_MALLOC`](https://emscripten.org/docs/tools_reference/settings_reference.html#aborting-malloc )
Relevant emscripten code:
- 58889f9f20/src/library.js (L290)
- Emscripten tries to grow memory by the provided growth factor. If it fails, it tries to grow by 50% of that amount. If it fails, it tries 25%. Then it gives up and fails gracefully.
2024-12-04 21:41:50 +00:00
skia-flutter-autoroll
f5c2897a70
Manual roll Dart SDK from 470117150f34 to a2a9428e761f (1 revision) ( flutter/engine#56939 )
...
Manual roll requested by kevinjchisholm@google.com
https://dart.googlesource.com/sdk.git/+log/470117150f34..a2a9428e761f
2024-12-03 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-209.0.dev
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dart-sdk-flutter-engine
Please CC bdero@google.com ,dart-vm-team@google.com,kevinjchisholm@google.com on the revert to ensure that a human
is aware of the problem.
To file a bug in Flutter Engine: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-12-04 19:08:21 +00:00
gaaclarke
16f5821cc4
Added the ability to make untracked opengles handles (migrated textures) ( flutter/engine#56927 )
...
issue: https://github.com/flutter/flutter/issues/159745
This tweaks ReactorGLES so that one can easily opt out of it's
mutex/hash map for cases where we can statically reason about the safety
of doing so. The goal here was to make migration of existing code really
easy to do. It may be in the future that everything is an untracked
handle? We can move there in baby steps.
Potential follow up PRs:
- Move `Pipeline` to use untracked handles
- Move `DeviceBufferGLES` to use untracked handles
- Add a new method to synchronously delete untracked handles
- Start storing handles to be deleted in its own vector, so handles_
doesn't need to be used for deleting untracked handles
## Pre-launch Checklist
- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide] and the [C++,
Objective-C, Java style guides].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I added new tests to check the change I am making or feature I am
adding, or the PR is [test-exempt]. See [testing the engine] for
instructions on writing and running engine tests.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I signed the [CLA].
- [x] All existing and new tests are passing.
If you need help, consider asking for advice on the #hackers-new channel
on [Discord].
<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/master/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/master/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/master/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/master/docs/contributing/Style-guide-for-Flutter-repo.md
[C++, Objective-C, Java style guides]:
https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
[testing the engine]:
https://github.com/flutter/engine/blob/main/docs/testing/Testing-the-engine.md
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/master/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/master/docs/contributing/Chat.md
2024-12-04 10:51:10 -08:00
Jonah Williams
240ce64b1f
[Impeller] avoid heap allocation in RenderTarget object. ( flutter/engine#56829 )
...
All render targets created by flutter have a single color attachment. Lets specialize that case in impeller::RenderTarget by creating a field for that attachment description instead of placing it in a hashmap.
2024-12-04 17:28:13 +00:00
Alexander Aprelev
e05a44277f
Manual roll dart to 470117150f34d712ee6d8c4558b3c656d973f656 ( flutter/engine#56915 )
...
Roll dart to 470117150f34d712ee6d8c4558b3c656d973f656
Changes since last roll
```
470117150f3 Version 3.7.0-208.0.dev
10867627709 CHANGELOG: move AOT invocation bits to the end of the 3.7 section
83863711d3b Migrate NotImportedCompletionPass.
e01bbdfd1f4 Deprecate completions from plugins api.
2a2905228fb Add extension on Completer to simplify code.
05696d50ccf Migrate postfix_completion.dart, statement_completion.dart.
ed49d04e2e0 [analysis_server] Extract some shared code from editableArguments to be used by editArgument
c54255fe9db [element model] migrate `prefer_asserts_in_initializer_lists`
eaf3912b5d6 [deps] rev core, ecosystem, glob, http_multi_server, lints, markdown, package_config, pool, protobuf, pub_semver, shelf, source_maps, source_span, stack_trace, stream_channel, string_scanner, sync_http, term_glyph, test, test_descriptor, test_process, test_reflective_loader, tools, vector_math, watcher, web, web_socket_channel, webdriver, webkit_inspection_protocol, yaml, yaml_edit
11a11259724 Switch boringssl to the pre-generated GN source list.
a635ccf2f57 [analysis_server] Only mark positional arguments as editable if they wouldn't require inserting additional values
619c8511aba [analysis_server] Add tests for formatter language version for legacy protocol
a8f5e64a330 Roll Fuchsia Test Scripts from 6FgM4KTbxxmyYoiOs... to VilXq4eGH5A24wRWA...
623c574b817 [vm] Clean up few isolate fields.
bfb507a3af9 Migrate utilities.dart
06caa3fa11e [DAS] Adds new import with show option
0197beaa8e0 [flow analysis] Remove _typeContains method.
56b6e5b9f60 Json codable no type assumption in custom fromJson
e013a4c9bfa [analysis_server] Add some notes on how to use the CPU Profiler for the analysis server hosted by VS Code
0f723b3ef3c [vm] Fix build on gcc 14.2.0.
```
This is manual roll because dart_boringssl_gen_rev is no longer present
in dart sdk DEPS has to be removed from flutter engine DEPS manually.
2024-12-04 17:03:02 +00:00
skia-flutter-autoroll
97585bd038
Roll Skia from 4ad05fb042c5 to c9647f13cded (2 revisions) ( flutter/engine#56933 )
...
https://skia.googlesource.com/skia.git/+log/4ad05fb042c5..c9647f13cded
2024-12-04 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra from 667c4e94b4a5 to 2d420a4dcfc4 (3 revisions)
2024-12-04 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Dawn from ecd0b68434f4 to e0d7445de8cd (17 revisions)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skia-flutter-autoroll
Please CC bdero@google.com ,jvanverth@google.com,kjlubick@google.com on the revert to ensure that a human
is aware of the problem.
To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-12-04 07:45:06 +00:00
Robert Ancell
4bcd6a93a1
Remove unused constant ( flutter/engine#56929 )
2024-12-04 15:21:48 +13:00
Gray Mackall
ec896de5c4
[Android] Save back handling state in Activity/Fragment bundle ( flutter/engine#56715 )
...
Fixes https://github.com/flutter/flutter/issues/159158 , and fixes b/355556397
[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-12-04 01:07:27 +00:00
Robert Ancell
dcc250c8a5
Split keyevent channel into own class ( flutter/engine#56911 )
...
Split the channel messaging out of the system channels to make them
simpler to understand and refactor.
The new channel classes could be automatically generated in a second
phase, e.g. using Pigeon to reduce code usage.
The new classes don't have tests as they will already be covered by the
existing code.
2024-12-04 11:57:05 +13:00
Robert Ancell
d1777a3abd
Add tests for errors encoding message channel request and method calls. ( flutter/engine#56914 )
...
Fix error not being copied in this case.
Follow up to https://github.com/flutter/engine/pull/56856
2024-12-04 10:39:46 +13:00
skia-flutter-autoroll
ffeb7d4629
Roll Skia from 8dc8bdc364f5 to e02d856f86fb (3 revisions) ( flutter/engine#56926 )
...
https://skia.googlesource.com/skia.git/+log/8dc8bdc364f5..e02d856f86fb
2024-12-03 kjlubick@google.com Reland "Minor cleanups with AutoSTArray and AutoSTMalloc"
2024-12-03 jlavrova@google.com SkFontMgr_Android refactoring
2024-12-03 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from f7cac0bb8d2f to 7adbb3e81110 (7 revisions)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skia-flutter-autoroll
Please CC bdero@google.com ,jvanverth@google.com,kjlubick@google.com on the revert to ensure that a human
is aware of the problem.
To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-12-03 20:56:06 +00:00
Jonah Williams
7dbe2f50a8
[Impeller] invalidate cached atlas data, take 2. ( flutter/engine#56925 )
...
Fixes https://github.com/flutter/flutter/issues/159704 , but for real this time.
2024-12-03 19:09:53 +00:00
Jason Simmons
6f6e5611c2
Add typeface_proxy dependency to the Skia build script for the Android font manager ( flutter/engine#56924 )
...
This is required by the refactoring in https://skia.googlesource.com/skia/+/eb9fc76e302f873de982cefa7690443e7a2cede5
2024-12-03 18:58:04 +00:00
skia-flutter-autoroll
4b8d901453
Roll Fuchsia Linux SDK from j424tGVlulTUzBtPj... to CCKZcL47N_2_vxAtS... ( flutter/engine#56921 )
...
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/fuchsia-linux-sdk-flutter-engine
Please CC bdero@google.com ,zra@google.com on the revert to ensure that a human
is aware of the problem.
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-12-03 17:32:36 +00:00
skia-flutter-autoroll
32443d0305
Roll Skia from 3db026d62805 to d6d1feba94d9 (2 revisions) ( flutter/engine#56917 )
...
https://skia.googlesource.com/skia.git/+log/3db026d62805..d6d1feba94d9
2024-12-03 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra from 963fb6511438 to 667c4e94b4a5 (4 revisions)
2024-12-03 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Dawn from dbff5894310b to ecd0b68434f4 (18 revisions)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skia-flutter-autoroll
Please CC jvanverth@google.com ,kjlubick@google.com,zra@google.com on the revert to ensure that a human
is aware of the problem.
To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-12-03 07:07:41 +00:00
gaaclarke
6d390bfaed
Moved font glyph atlas to flat_hash_map ( flutter/engine#56847 )
...
In https://github.com/flutter/engine/pull/56844 we saw a 15% increase in performance by switching to absl::flat_hash_map. I suspect we say see even better results ([source](https://martin.ankerl.com/2022/08/27/hashmap-bench-01 )). The absl guidance is to default to using this.
test exempt: no intentional functional change, just performance
[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-12-03 03:04:17 +00:00
Jonah Williams
52504d1d77
[Impeller] set GLES viewport once, remove extra unbind/validation. ( flutter/engine#56902 )
...
Small cleanups to render_pass_gles to only set the viewport once or when it cahnges, instead of each draw. Removes scissor validation and pipeline unbind (which is slow due to hash table lookup).
2024-12-03 01:19:18 +00:00