mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
Fixes https://github.com/flutter/flutter/issues/116070 Fixes https://github.com/flutter/flutter/issues/126202 Introduces `DlRegion` class which implements subset of `SkRegion` required to get non-overlapping rectangles from region. The implementation is different and faster than `SkRegion` for this particular use-case (`display_list_region_benchmarks`): Edit: Updated benchmark to latest revision and natively (initial run went through rosetta) ``` ---------------------------------------------------------------------------- Benchmark Time CPU Iterations ---------------------------------------------------------------------------- BM_RegionBenchmarkDlRegion/Tiny 616 us 616 us 908 BM_RegionBenchmarkSkRegion/Tiny 70559 us 70557 us 10 BM_RegionBenchmarkDlRegion/Small 1315 us 1314 us 537 BM_RegionBenchmarkSkRegion/Small 121736 us 121717 us 6 BM_RegionBenchmarkDlRegion/Medium 1079 us 1079 us 650 BM_RegionBenchmarkSkRegion/Medium 22039 us 22035 us 32 BM_RegionBenchmarkDlRegion/Large 399 us 399 us 1763 BM_RegionBenchmarkSkRegion/Large 1510 us 1510 us 466 ``` ## 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 Hixie said 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/wiki/Tree-hygiene#overview [Tree Hygiene]: https://github.com/flutter/flutter/wiki/Tree-hygiene [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