Roll Skia from dfb838747295 to 9e51c2c9e231 (26 revisions) (flutter/engine#38827)

* Roll Skia from dfb838747295 to 9e51c2c9e231 (26 revisions)

https://skia.googlesource.com/skia.git/+log/dfb838747295..9e51c2c9e231

2023-01-12 kjlubick@google.com Roll CanvasKit to 0.38.0
2023-01-12 jonahwilliams@google.com Allow clients to cache sample count and stencil params
2023-01-12 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 0a9529c8cd2d to 4053bc460f32 (6 revisions)
2023-01-12 herb@google.com Fix stack alignment for SkAutoSTArray
2023-01-12 kjlubick@google.com Remove SkBudgeted in favor of skgpu::Budgeted
2023-01-12 johnstiles@google.com Implement comma operator in RP codegen.
2023-01-12 johnstiles@google.com Allow cloning from another stack with an offset-from-top.
2023-01-12 fmalita@chromium.org [skottie] Initial text editing experiment
2023-01-12 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Dawn from 46e3e213b046 to 1f9e50edd4d4 (9 revisions)
2023-01-12 kjlubick@google.com [base] Fold GrConfig.h into SkTypes.h
2023-01-12 kjlubick@google.com Break out metal headers used by C++ and ObjC code
2023-01-12 skia-autoroll@skia-public.iam.gserviceaccount.com Roll SK Tool from 77e7d61086a2 to 65176286ea26
2023-01-12 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 154fb3872c36 to 0a9529c8cd2d (9 revisions)
2023-01-12 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from eab5947427ad to 410d8ba51f95 (17 revisions)
2023-01-12 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra from 8bedae1a44a2 to 77e7d61086a2 (4 revisions)
2023-01-12 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Dawn from 410b5acc7f3f to 46e3e213b046 (14 revisions)
2023-01-12 kyslov@google.com jpegr codec: get image origin from EXIF metadata
2023-01-12 ccameron@chromium.org Enable Jpeg gainmaps on Android
2023-01-11 johnstiles@google.com Add transpose support to RP codegen.
2023-01-11 johnstiles@google.com Add transpose support to the RP builder.
2023-01-11 jvanverth@google.com Some fixes to address null color attachment crash.
2023-01-11 johnstiles@google.com Create a RP transpose op, based on swizzle.
2023-01-11 kjlubick@google.com Remove two shim files
2023-01-11 kjlubick@google.com [canvaskit] Fix return value of Paragraph ranges
2023-01-11 kjlubick@google.com Disable JpegGainmapTest on WASM build
2023-01-11 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 93e4d1cd4725 to 154fb3872c36 (2 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 aaclarke@google.com,herb@google.com,jacksongardner@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://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

* Adjust to changes to CanvasKit getRectsForRange API.

* remove unused commit

* Roll CIPD CanvasKit and fix some unit tests.

* Adjustments to direction API and unit tests.

Co-authored-by: Jackson Gardner <jacksongardner@google.com>
Co-authored-by: jonahwilliams <jonahwilliams@google.com>
This commit is contained in:
skia-flutter-autoroll 2023-01-12 22:33:45 -05:00 committed by GitHub
parent 42fd13c246
commit 32ed4b3d69
7 changed files with 40 additions and 33 deletions

4
DEPS
View File

@ -18,11 +18,11 @@ vars = {
'llvm_git': 'https://llvm.googlesource.com',
# OCMock is for testing only so there is no google clone
'ocmock_git': 'https://github.com/erikdoe/ocmock.git',
'skia_revision': 'dfb838747295b9109343e6f536b25e9fa3fe933e',
'skia_revision': '9e51c2c9e231cf1350a476c2b1695066144593ce',
# WARNING: DO NOT EDIT canvaskit_cipd_instance MANUALLY
# See `lib/web_ui/README.md` for how to roll CanvasKit to a new version.
'canvaskit_cipd_instance': 'ztaLvbs5GPmlAwUosC7VVp7EQnNVknRpNuKdv7vmzaAC',
'canvaskit_cipd_instance': '61aeJQ9laGfEFF_Vlc_u0MCkqB6xb2hAYHRBxKH-Uw4C',
# Do not download the Emscripten SDK by default.
# This prevents us from downloading the Emscripten toolchain for builds

View File

@ -1,4 +1,4 @@
Signature: fa9e0cdd5cd2189db5a01faa94515a3d
Signature: 6fb22ea5d126038c1276ad346f1fb34b
====================================================================================================
LIBRARY: etc1
@ -1216,7 +1216,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
====================================================================================================
LIBRARY: skia
ORIGIN: ../../../third_party/skia/include/gpu/GrConfig.h + ../../../third_party/skia/LICENSE
ORIGIN: ../../../third_party/skia/include/gpu/GrTypes.h + ../../../third_party/skia/LICENSE
ORIGIN: ../../../third_party/skia/src/core/SkImageInfo.cpp + ../../../third_party/skia/LICENSE
ORIGIN: ../../../third_party/skia/src/core/SkRasterClip.cpp + ../../../third_party/skia/LICENSE
@ -1239,7 +1238,6 @@ ORIGIN: ../../../third_party/skia/src/gpu/ganesh/geometry/GrRect.h + ../../../th
ORIGIN: ../../../third_party/skia/src/ports/SkDebug_win.cpp + ../../../third_party/skia/LICENSE
ORIGIN: ../../../third_party/skia/src/text/gpu/Glyph.h + ../../../third_party/skia/LICENSE
TYPE: LicenseType.bsd
FILE: ../../../third_party/skia/include/gpu/GrConfig.h
FILE: ../../../third_party/skia/include/gpu/GrTypes.h
FILE: ../../../third_party/skia/src/core/SkImageInfo.cpp
FILE: ../../../third_party/skia/src/core/SkRasterClip.cpp
@ -8924,15 +8922,11 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
====================================================================================================
LIBRARY: skia
ORIGIN: ../../../third_party/skia/include/private/SkDeque.h + ../../../third_party/skia/LICENSE
ORIGIN: ../../../third_party/skia/include/private/SkMalloc.h + ../../../third_party/skia/LICENSE
ORIGIN: ../../../third_party/skia/include/private/SkTo.h + ../../../third_party/skia/LICENSE
ORIGIN: ../../../third_party/skia/src/core/SkDiscardableMemory.h + ../../../third_party/skia/LICENSE
ORIGIN: ../../../third_party/skia/src/core/SkFloatingPoint.cpp + ../../../third_party/skia/LICENSE
TYPE: LicenseType.bsd
FILE: ../../../third_party/skia/include/private/SkDeque.h
FILE: ../../../third_party/skia/include/private/SkMalloc.h
FILE: ../../../third_party/skia/include/private/SkTo.h
FILE: ../../../third_party/skia/src/core/SkDiscardableMemory.h
FILE: ../../../third_party/skia/src/core/SkFloatingPoint.cpp
----------------------------------------------------------------------------------------------------

View File

@ -1,4 +1,4 @@
# Specifies the version of CanvasKit to use for Flutter Web apps.
#
# See `lib/web_ui/README.md` for how to update this file.
canvaskit_version: "0.37.1"
canvaskit_version: "0.38.0"

View File

@ -2167,6 +2167,16 @@ extension SkLineMetricsExtension on SkLineMetrics {
external double get lineNumber;
}
@JS()
@anonymous
@staticInterop
class SkRectWithDirection {}
extension SkRectWithDirectionExtension on SkRectWithDirection {
external Float32List rect;
external SkTextDirection dir;
}
@JS()
@anonymous
@staticInterop
@ -2182,13 +2192,13 @@ extension SkParagraphExtension on SkParagraph {
external double getMaxIntrinsicWidth();
external double getMinIntrinsicWidth();
external double getMaxWidth();
external /* List<Float32List> */ List<Object?> getRectsForRange(
external /* List<SkRectWithDirection> */ List<Object?> getRectsForRange(
int start,
int end,
SkRectHeightStyle heightStyle,
SkRectWidthStyle widthStyle,
);
external /* List<Float32List> */ List<Object?> getRectsForPlaceholders();
external /* List<SkRectWithDirection> */ List<Object?> getRectsForPlaceholders();
external SkTextPosition getGlyphPositionAtCoordinate(
double x,
double y,

View File

@ -7,7 +7,6 @@ import 'dart:typed_data';
import 'package:meta/meta.dart';
import 'package:ui/ui.dart' as ui;
import '../safe_browser_api.dart';
import '../util.dart';
import 'canvaskit_api.dart';
import 'font_fallbacks.dart';
@ -631,7 +630,7 @@ class CkParagraph extends SkiaObject<SkParagraph> implements ui.Paragraph {
_width = paragraph.getMaxWidth();
_boxesForPlaceholders =
skRectsToTextBoxes(
paragraph.getRectsForPlaceholders().cast<Float32List>());
paragraph.getRectsForPlaceholders().cast<SkRectWithDirection>());
} catch (e) {
printWarning('CanvasKit threw an exception while laying '
'out the paragraph. The font was "${_paragraphStyle._fontFamily}". '
@ -732,23 +731,23 @@ class CkParagraph extends SkiaObject<SkParagraph> implements ui.Paragraph {
}
final SkParagraph paragraph = _ensureInitialized(_lastLayoutConstraints!);
final List<Float32List> skRects = paragraph.getRectsForRange(
final List<SkRectWithDirection> skRects = paragraph.getRectsForRange(
start,
end,
toSkRectHeightStyle(boxHeightStyle),
toSkRectWidthStyle(boxWidthStyle),
).cast<Float32List>();
).cast<SkRectWithDirection>();
return skRectsToTextBoxes(skRects);
}
List<ui.TextBox> skRectsToTextBoxes(List<Float32List> skRects) {
List<ui.TextBox> skRectsToTextBoxes(List<SkRectWithDirection> skRects) {
final List<ui.TextBox> result = <ui.TextBox>[];
for (int i = 0; i < skRects.length; i++) {
final Float32List rect = skRects[i];
final int skTextDirection =
getJsProperty(getJsProperty(rect, 'direction'), 'value');
final SkRectWithDirection skRect = skRects[i];
final Float32List rect = skRect.rect;
final int skTextDirection = skRect.dir.value.toInt();
result.add(ui.TextBox.fromLTRBD(
rect[0],
rect[1],

View File

@ -51,7 +51,7 @@ import 'dom.dart';
/// The version of CanvasKit used by the web engine by default.
// DO NOT EDIT THE NEXT LINE OF CODE MANUALLY
// See `lib/web_ui/README.md` for how to roll CanvasKit to a new version.
const String _canvaskitVersion = '0.37.1';
const String _canvaskitVersion = '0.38.0';
/// The Web Engine configuration for the current application.
FlutterConfiguration get configuration =>

View File

@ -1669,8 +1669,14 @@ void _paragraphTests() {
expectAlmost(paragraph.getMaxIntrinsicWidth(), 263);
expectAlmost(paragraph.getMinIntrinsicWidth(), 135);
expectAlmost(paragraph.getMaxWidth(), 500);
final SkRectWithDirection rectWithDirection =
paragraph.getRectsForRange(
1,
3,
canvasKit.RectHeightStyle.Tight,
canvasKit.RectWidthStyle.Max).single! as SkRectWithDirection;
expect(
paragraph.getRectsForRange(1, 3, canvasKit.RectHeightStyle.Tight, canvasKit.RectWidthStyle.Max).single,
rectWithDirection.rect,
hasLength(4),
);
expect(paragraph.getRectsForPlaceholders(), hasLength(1));
@ -1739,17 +1745,15 @@ void _paragraphTests() {
final SkParagraph paragraph = builder.build();
paragraph.layout(500);
expect(
paragraph.getRectsForRange(
0,
1,
canvasKit.RectHeightStyle.Strut,
canvasKit.RectWidthStyle.Tight,
),
<List<double>>[
<double>[0, 0, 13.770000457763672, 75],
],
);
final List<SkRectWithDirection> rects = paragraph.getRectsForRange(
0,
1,
canvasKit.RectHeightStyle.Strut,
canvasKit.RectWidthStyle.Tight,
).cast<SkRectWithDirection>();
expect(rects.length, 1);
final SkRectWithDirection rect = rects.first;
expect(rect.rect, <double>[0, 0, 13.770000457763672, 75]);
});
test('TextHeightBehavior', () {