Skip to content
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

[web] Implement ulps for path ops #19711

Merged
merged 4 commits into from
Jul 13, 2020
Merged

[web] Implement ulps for path ops #19711

merged 4 commits into from
Jul 13, 2020

Conversation

ferhatb
Copy link
Contributor

@ferhatb ferhatb commented Jul 13, 2020

Description

Add library for floating point stability of path ops.

Related Issues

Related: flutter/flutter#44572

Tests

I added the following tests:

ulps_test.dart

Checklist

Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]). This will ensure a smooth and quick review process.

  • I read the [contributor guide] and followed the process outlined there for submitting PRs.
  • I signed the [CLA].
  • I read and followed the [C++, Objective-C, Java style guides] for the engine.
  • I read the [tree hygiene] wiki page, which explains my responsibilities.
  • I updated/added relevant documentation.
  • All existing and new tests are passing.
  • I am willing to follow-up on review comments in a timely manner.

Breaking Change

Did any tests fail when you ran them? Please read [handling breaking changes].

/// Converts a sign-bit int (float interpreted as int) into a 2s complement
/// int. Also converts 0x80000000 to 0. Allows result to be compared using
/// int comparison.
int signBitTo2sCompliment(int x) => (x & 0x80000000) != 0 ? (-(x & 0x7fffffff)) : x;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

compliment => complement (applies throughout the file)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

int signBitTo2sCompliment(int x) => (x & 0x80000000) != 0 ? (-(x & 0x7fffffff)) : x;

/// Convert a 2s compliment int to a sign-bit (i.e. int interpreted as float).
int twosComplimentToSignBit(int x) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this work on arbitrary ranges of values? Same question for signBitTo2sCompliment.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added tests to cover ranges.

final Float32List float32List = Float32List(1);
late Int32List int32List;
_FloatBitConverter() {
int32List = float32List.buffer.asInt32List(0, 1);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

late has some cost, because it is compiled into a function. If you move the initialization into the initializer list, you can make it final, which is free. You may need to use a factory though, because the two fields are backed by the same buffer.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

}

// Singleton bit converter to prevent typed array allocations.
_FloatBitConverter _floatBitConverter = _FloatBitConverter();
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

final?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

_FloatBitConverter _floatBitConverter = _FloatBitConverter();

// Converts float to bits.
int float2Bits(Float32List source, int index) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why not take a double?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will pass pathRef.points array directly to this api. See toBits that uses double as input.

float32List[0] = x;
return int32List[0];
}
double toFloat(int bits) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

toDouble or toFloat64? "Float" implies 32 bits, but this returns a 64-bit value.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

return aBits < bBits + epsilon && bBits < aBits + epsilon;
}

bool almostEqualUlps(double a, double b) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Docs? (applies here and other undocumented functions)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

return equalUlps(a, b, kUlpsEpsilon, kUlpsEpsilon);
}

// Equality using the same error term as between
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this doc comment need an ending?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

}

bool almostDequalUlpsDouble(double a, double b) {
if (a.abs() < kScalarMax && b.abs() < kScalarMax) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe cache a.abs() and b.abs()? They are also used below on line 170.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

part of engine;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a Skia file(s) we can point to where this was ported from?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added link.

Copy link
Member

@ditman ditman left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My only suggestion would be to make this code a separate library that you can import '...' as ulps; or similar (instead of part of engine;) in order not to add a lot of ulp-related methods to the API of the engine itself, but if this is how things are normally done in the engine, ship it!

lib/web_ui/lib/src/engine/ulps.dart Outdated Show resolved Hide resolved
lib/web_ui/lib/src/engine/ulps.dart Show resolved Hide resolved
@ferhatb ferhatb merged commit df23044 into flutter:master Jul 13, 2020
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jul 13, 2020
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jul 14, 2020
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jul 14, 2020
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jul 14, 2020
GaryQian pushed a commit to flutter/flutter that referenced this pull request Jul 14, 2020
* 160b268 Set locale in Linux shell (flutter/engine#19470)

* c479b93 Fix documentation of unset platform view ID (flutter/engine#19320)

* f3ab78d Fix clipboard paste functionality not working (flutter/engine#19489)

* 9345347 Added the ability to set properties in interface builder for FlutterViewController. (flutter/engine#19458)

* 69fdf6d Use identical in hashValues instead of operator== (flutter/engine#19615)

* 3dc8163 [android] Pass synthesized eventType to VirtualDisplay platform views and fix memory leak (flutter/engine#19620)

* b16c47d using text capitalization value in web (flutter/engine#19564)

* 49c0161 Roll Skia from 16bf7d31c819 to 4d48bb35972f (32 revisions) (flutter/engine#19635)

* 2d6afa7 Roll Skia from 4d48bb35972f to 9f821489c9f3 (4 revisions) (flutter/engine#19638)

* 35f59b9 Roll Fuchsia Linux SDK from NC9pp... to 5R9a0... (flutter/engine#19639)

* 53038e2 Roll Fuchsia Mac SDK from iwQCA... to Wym-S... (flutter/engine#19640)

* d9e68f4 Roll Skia from 9f821489c9f3 to f8a6b5b4b0d0 (1 revision) (flutter/engine#19643)

* d329617 Changes to fix build errors in google3. (flutter/engine#19616)

* dd0a6c4 Roll Skia from f8a6b5b4b0d0 to 5160e8caa226 (9 revisions) (flutter/engine#19647)

* d98d539 Manual Roll of Dart dfdc7e45c5...06cb010247 (flutter/engine#19649)

* dfd0727 don't throw error for the new autofill request (flutter/engine#19633)

* 39e98d2 Manual Skia roll to c91db040ad18b9cc3236e342e9acca020eaafd10 (flutter/engine#19650)

* f9acd08 Avoid a copy in EncodeImage (flutter/engine#19504)

* 7e101f1 Roll Fuchsia Linux SDK from 5R9a0... to GOf1K... (flutter/engine#19656)

* f3be9f1 Incorporate compat info changes into flutter engine (flutter/engine#19606)

* 9188ff6 Manual Roll of Dart 707c6404f9...dfdc7e45c5 (flutter/engine#19657)

* cbdd3e2 Roll Fuchsia Mac SDK from Wym-S... to -v4bL... (flutter/engine#19661)

* 6efb152 Roll Dart SDK from 707c6404f969 to 0e25306d3f78 (4 revisions) (flutter/engine#19666)

* 22a440c Roll Dart SDK from 0e25306d3f78 to 6d06476bae6b (1 revision) (flutter/engine#19669)

* 8063923 Roll Fuchsia Linux SDK from GOf1K... to QWI76... (flutter/engine#19671)

* c99deb0 CkPaint uses SkPaint (flutter/engine#19562)

* 015f2ea Use the main bundle if the App bundle is not found (flutter/engine#18749)

* f82d30b Roll Dart SDK from 6d06476bae6b to a9e67d81941a (3 revisions) (flutter/engine#19677)

* 61b2fd2 Roll Fuchsia Mac SDK from -v4bL... to phQJt... (flutter/engine#19681)

* 74b541d Roll Fuchsia Linux SDK from QWI76... to mrlGt... (flutter/engine#19682)

* 25ce3db Roll Skia from c91db040ad18 to e4f36d7ac8f5 (20 revisions) (flutter/engine#19686)

* 162dba1 Roll Skia from e4f36d7ac8f5 to ed15b1c39b8b (1 revision) (flutter/engine#19687)

* f97c38b Roll Fuchsia Mac SDK from phQJt... to kEVc6... (flutter/engine#19688)

* 40c4ee8 Roll Fuchsia Linux SDK from mrlGt... to YfVT0... (flutter/engine#19690)

* ec944b0 Roll Skia from ed15b1c39b8b to 1434ce1aa94d (1 revision) (flutter/engine#19692)

* 7ce988a Roll Skia from 1434ce1aa94d to f64be13cbf84 (2 revisions) (flutter/engine#19695)

* 5f7ca41 Roll Fuchsia Mac SDK from kEVc6... to hRul_... (flutter/engine#19696)

* d24549c Roll Skia from f64be13cbf84 to 041796e60364 (3 revisions) (flutter/engine#19697)

* 617bd88 Roll Dart SDK from a9e67d81941a to fecc8163afc7 (3 revisions) (flutter/engine#19703)

* 8d241e4 [Android] Prevent FlutterRenderer listener from calling JNI after detach (flutter/engine#19558)

* 309e514 Roll Skia from 041796e60364 to d1ce4cb2beb8 (2 revisions) (flutter/engine#19704)

* 211f18e Roll Skia from d1ce4cb2beb8 to 7c1967700b44 (6 revisions) (flutter/engine#19707)

* 0532227 Roll Skia from 7c1967700b44 to 439709a97dfd (8 revisions) (flutter/engine#19712)

* 1e02bfd Support decimal information on the TextInputType (flutter/engine#19664)

* 7a95e32 Linux: Use a hash table to map cursors (flutter/engine#19561)

* df23044 [web] Implement ulps for path ops (flutter/engine#19711)

* 4a3aa4d Fixes typo in android_context_gl.h (flutter/engine#19700)

* 5b966eb Roll Skia from 439709a97dfd to 2604a89d3353 (3 revisions) (flutter/engine#19715)

* d024ae4 [fuchsia] Use memory_requirements_2 extension. (flutter/engine#19678)

* 4392fbf Roll Fuchsia Linux SDK from YfVT0... to 2ct5j... (flutter/engine#19720)

* ab05c79 Roll Fuchsia Mac SDK from hRul_... to ZXLvD... (flutter/engine#19721)

* c05ca7e Roll Dart SDK from fecc8163afc7 to f997d62a6d29 (13 revisions) (flutter/engine#19722)

* ae37971 Remove xcpretty from unit tests to see full output on test failures (flutter/engine#19667)

* 91f80ef Moved to RMSE for image comparison to account for slight variations in golden image tests (flutter/engine#19658)

* 1e23309 Wait for platform view to appear in iOS UI tests (flutter/engine#19725)
@ferhatb ferhatb deleted the ulps1 branch August 10, 2020 20:35
Pragya007 pushed a commit to Pragya007/flutter that referenced this pull request Aug 11, 2020
* 160b268 Set locale in Linux shell (flutter/engine#19470)

* c479b93 Fix documentation of unset platform view ID (flutter/engine#19320)

* f3ab78d Fix clipboard paste functionality not working (flutter/engine#19489)

* 9345347 Added the ability to set properties in interface builder for FlutterViewController. (flutter/engine#19458)

* 69fdf6d Use identical in hashValues instead of operator== (flutter/engine#19615)

* 3dc8163 [android] Pass synthesized eventType to VirtualDisplay platform views and fix memory leak (flutter/engine#19620)

* b16c47d using text capitalization value in web (flutter/engine#19564)

* 49c0161 Roll Skia from 16bf7d31c819 to 4d48bb35972f (32 revisions) (flutter/engine#19635)

* 2d6afa7 Roll Skia from 4d48bb35972f to 9f821489c9f3 (4 revisions) (flutter/engine#19638)

* 35f59b9 Roll Fuchsia Linux SDK from NC9pp... to 5R9a0... (flutter/engine#19639)

* 53038e2 Roll Fuchsia Mac SDK from iwQCA... to Wym-S... (flutter/engine#19640)

* d9e68f4 Roll Skia from 9f821489c9f3 to f8a6b5b4b0d0 (1 revision) (flutter/engine#19643)

* d329617 Changes to fix build errors in google3. (flutter/engine#19616)

* dd0a6c4 Roll Skia from f8a6b5b4b0d0 to 5160e8caa226 (9 revisions) (flutter/engine#19647)

* d98d539 Manual Roll of Dart dfdc7e45c5...06cb010247 (flutter/engine#19649)

* dfd0727 don't throw error for the new autofill request (flutter/engine#19633)

* 39e98d2 Manual Skia roll to c91db040ad18b9cc3236e342e9acca020eaafd10 (flutter/engine#19650)

* f9acd08 Avoid a copy in EncodeImage (flutter/engine#19504)

* 7e101f1 Roll Fuchsia Linux SDK from 5R9a0... to GOf1K... (flutter/engine#19656)

* f3be9f1 Incorporate compat info changes into flutter engine (flutter/engine#19606)

* 9188ff6 Manual Roll of Dart 707c6404f9...dfdc7e45c5 (flutter/engine#19657)

* cbdd3e2 Roll Fuchsia Mac SDK from Wym-S... to -v4bL... (flutter/engine#19661)

* 6efb152 Roll Dart SDK from 707c6404f969 to 0e25306d3f78 (4 revisions) (flutter/engine#19666)

* 22a440c Roll Dart SDK from 0e25306d3f78 to 6d06476bae6b (1 revision) (flutter/engine#19669)

* 8063923 Roll Fuchsia Linux SDK from GOf1K... to QWI76... (flutter/engine#19671)

* c99deb0 CkPaint uses SkPaint (flutter/engine#19562)

* 015f2ea Use the main bundle if the App bundle is not found (flutter/engine#18749)

* f82d30b Roll Dart SDK from 6d06476bae6b to a9e67d81941a (3 revisions) (flutter/engine#19677)

* 61b2fd2 Roll Fuchsia Mac SDK from -v4bL... to phQJt... (flutter/engine#19681)

* 74b541d Roll Fuchsia Linux SDK from QWI76... to mrlGt... (flutter/engine#19682)

* 25ce3db Roll Skia from c91db040ad18 to e4f36d7ac8f5 (20 revisions) (flutter/engine#19686)

* 162dba1 Roll Skia from e4f36d7ac8f5 to ed15b1c39b8b (1 revision) (flutter/engine#19687)

* f97c38b Roll Fuchsia Mac SDK from phQJt... to kEVc6... (flutter/engine#19688)

* 40c4ee8 Roll Fuchsia Linux SDK from mrlGt... to YfVT0... (flutter/engine#19690)

* ec944b0 Roll Skia from ed15b1c39b8b to 1434ce1aa94d (1 revision) (flutter/engine#19692)

* 7ce988a Roll Skia from 1434ce1aa94d to f64be13cbf84 (2 revisions) (flutter/engine#19695)

* 5f7ca41 Roll Fuchsia Mac SDK from kEVc6... to hRul_... (flutter/engine#19696)

* d24549c Roll Skia from f64be13cbf84 to 041796e60364 (3 revisions) (flutter/engine#19697)

* 617bd88 Roll Dart SDK from a9e67d81941a to fecc8163afc7 (3 revisions) (flutter/engine#19703)

* 8d241e4 [Android] Prevent FlutterRenderer listener from calling JNI after detach (flutter/engine#19558)

* 309e514 Roll Skia from 041796e60364 to d1ce4cb2beb8 (2 revisions) (flutter/engine#19704)

* 211f18e Roll Skia from d1ce4cb2beb8 to 7c1967700b44 (6 revisions) (flutter/engine#19707)

* 0532227 Roll Skia from 7c1967700b44 to 439709a97dfd (8 revisions) (flutter/engine#19712)

* 1e02bfd Support decimal information on the TextInputType (flutter/engine#19664)

* 7a95e32 Linux: Use a hash table to map cursors (flutter/engine#19561)

* df23044 [web] Implement ulps for path ops (flutter/engine#19711)

* 4a3aa4d Fixes typo in android_context_gl.h (flutter/engine#19700)

* 5b966eb Roll Skia from 439709a97dfd to 2604a89d3353 (3 revisions) (flutter/engine#19715)

* d024ae4 [fuchsia] Use memory_requirements_2 extension. (flutter/engine#19678)

* 4392fbf Roll Fuchsia Linux SDK from YfVT0... to 2ct5j... (flutter/engine#19720)

* ab05c79 Roll Fuchsia Mac SDK from hRul_... to ZXLvD... (flutter/engine#19721)

* c05ca7e Roll Dart SDK from fecc8163afc7 to f997d62a6d29 (13 revisions) (flutter/engine#19722)

* ae37971 Remove xcpretty from unit tests to see full output on test failures (flutter/engine#19667)

* 91f80ef Moved to RMSE for image comparison to account for slight variations in golden image tests (flutter/engine#19658)

* 1e23309 Wait for platform view to appear in iOS UI tests (flutter/engine#19725)
mingwandroid pushed a commit to mingwandroid/flutter that referenced this pull request Sep 6, 2020
* 160b268 Set locale in Linux shell (flutter/engine#19470)

* c479b93 Fix documentation of unset platform view ID (flutter/engine#19320)

* f3ab78d Fix clipboard paste functionality not working (flutter/engine#19489)

* 9345347 Added the ability to set properties in interface builder for FlutterViewController. (flutter/engine#19458)

* 69fdf6d Use identical in hashValues instead of operator== (flutter/engine#19615)

* 3dc8163 [android] Pass synthesized eventType to VirtualDisplay platform views and fix memory leak (flutter/engine#19620)

* b16c47d using text capitalization value in web (flutter/engine#19564)

* 49c0161 Roll Skia from 16bf7d31c819 to 4d48bb35972f (32 revisions) (flutter/engine#19635)

* 2d6afa7 Roll Skia from 4d48bb35972f to 9f821489c9f3 (4 revisions) (flutter/engine#19638)

* 35f59b9 Roll Fuchsia Linux SDK from NC9pp... to 5R9a0... (flutter/engine#19639)

* 53038e2 Roll Fuchsia Mac SDK from iwQCA... to Wym-S... (flutter/engine#19640)

* d9e68f4 Roll Skia from 9f821489c9f3 to f8a6b5b4b0d0 (1 revision) (flutter/engine#19643)

* d329617 Changes to fix build errors in google3. (flutter/engine#19616)

* dd0a6c4 Roll Skia from f8a6b5b4b0d0 to 5160e8caa226 (9 revisions) (flutter/engine#19647)

* d98d539 Manual Roll of Dart dfdc7e45c5...06cb010247 (flutter/engine#19649)

* dfd0727 don't throw error for the new autofill request (flutter/engine#19633)

* 39e98d2 Manual Skia roll to c91db040ad18b9cc3236e342e9acca020eaafd10 (flutter/engine#19650)

* f9acd08 Avoid a copy in EncodeImage (flutter/engine#19504)

* 7e101f1 Roll Fuchsia Linux SDK from 5R9a0... to GOf1K... (flutter/engine#19656)

* f3be9f1 Incorporate compat info changes into flutter engine (flutter/engine#19606)

* 9188ff6 Manual Roll of Dart 707c6404f9...dfdc7e45c5 (flutter/engine#19657)

* cbdd3e2 Roll Fuchsia Mac SDK from Wym-S... to -v4bL... (flutter/engine#19661)

* 6efb152 Roll Dart SDK from 707c6404f969 to 0e25306d3f78 (4 revisions) (flutter/engine#19666)

* 22a440c Roll Dart SDK from 0e25306d3f78 to 6d06476bae6b (1 revision) (flutter/engine#19669)

* 8063923 Roll Fuchsia Linux SDK from GOf1K... to QWI76... (flutter/engine#19671)

* c99deb0 CkPaint uses SkPaint (flutter/engine#19562)

* 015f2ea Use the main bundle if the App bundle is not found (flutter/engine#18749)

* f82d30b Roll Dart SDK from 6d06476bae6b to a9e67d81941a (3 revisions) (flutter/engine#19677)

* 61b2fd2 Roll Fuchsia Mac SDK from -v4bL... to phQJt... (flutter/engine#19681)

* 74b541d Roll Fuchsia Linux SDK from QWI76... to mrlGt... (flutter/engine#19682)

* 25ce3db Roll Skia from c91db040ad18 to e4f36d7ac8f5 (20 revisions) (flutter/engine#19686)

* 162dba1 Roll Skia from e4f36d7ac8f5 to ed15b1c39b8b (1 revision) (flutter/engine#19687)

* f97c38b Roll Fuchsia Mac SDK from phQJt... to kEVc6... (flutter/engine#19688)

* 40c4ee8 Roll Fuchsia Linux SDK from mrlGt... to YfVT0... (flutter/engine#19690)

* ec944b0 Roll Skia from ed15b1c39b8b to 1434ce1aa94d (1 revision) (flutter/engine#19692)

* 7ce988a Roll Skia from 1434ce1aa94d to f64be13cbf84 (2 revisions) (flutter/engine#19695)

* 5f7ca41 Roll Fuchsia Mac SDK from kEVc6... to hRul_... (flutter/engine#19696)

* d24549c Roll Skia from f64be13cbf84 to 041796e60364 (3 revisions) (flutter/engine#19697)

* 617bd88 Roll Dart SDK from a9e67d81941a to fecc8163afc7 (3 revisions) (flutter/engine#19703)

* 8d241e4 [Android] Prevent FlutterRenderer listener from calling JNI after detach (flutter/engine#19558)

* 309e514 Roll Skia from 041796e60364 to d1ce4cb2beb8 (2 revisions) (flutter/engine#19704)

* 211f18e Roll Skia from d1ce4cb2beb8 to 7c1967700b44 (6 revisions) (flutter/engine#19707)

* 0532227 Roll Skia from 7c1967700b44 to 439709a97dfd (8 revisions) (flutter/engine#19712)

* 1e02bfd Support decimal information on the TextInputType (flutter/engine#19664)

* 7a95e32 Linux: Use a hash table to map cursors (flutter/engine#19561)

* df23044 [web] Implement ulps for path ops (flutter/engine#19711)

* 4a3aa4d Fixes typo in android_context_gl.h (flutter/engine#19700)

* 5b966eb Roll Skia from 439709a97dfd to 2604a89d3353 (3 revisions) (flutter/engine#19715)

* d024ae4 [fuchsia] Use memory_requirements_2 extension. (flutter/engine#19678)

* 4392fbf Roll Fuchsia Linux SDK from YfVT0... to 2ct5j... (flutter/engine#19720)

* ab05c79 Roll Fuchsia Mac SDK from hRul_... to ZXLvD... (flutter/engine#19721)

* c05ca7e Roll Dart SDK from fecc8163afc7 to f997d62a6d29 (13 revisions) (flutter/engine#19722)

* ae37971 Remove xcpretty from unit tests to see full output on test failures (flutter/engine#19667)

* 91f80ef Moved to RMSE for image comparison to account for slight variations in golden image tests (flutter/engine#19658)

* 1e23309 Wait for platform view to appear in iOS UI tests (flutter/engine#19725)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants