Skip to content

Commit 72ee26e

Browse files
authored
Initialize Flutter Beta (flutter-3.32-candidate.0) (flutter#166783)
Closes flutter#166811. ```sh $ dev/conductor/bin/conductor start \ --candidate-branch=flutter-3.32-candidate.0 \ --release-channel=beta \ --github-username=matanlurey \ --dart-revision=0d6811928830b87e36a0f49eb7fe554c308d3699 ```
1 parent e2dea95 commit 72ee26e

File tree

62 files changed

+1258
-631
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+1258
-631
lines changed

.ci.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5132,6 +5132,7 @@ targets:
51325132
- name: Mac_ios microbenchmarks_ios
51335133
recipe: devicelab/devicelab_drone
51345134
presubmit: false
5135+
bringup: true
51355136
timeout: 60
51365137
properties:
51375138
tags: >

DEPS

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ vars = {
1414
'flutter_git': 'https://flutter.googlesource.com',
1515
'skia_git': 'https://skia.googlesource.com',
1616
'llvm_git': 'https://llvm.googlesource.com',
17-
'skia_revision': '7b929584566c2c20f59d692301a40e55528a83a7',
17+
'skia_revision': 'ac01f9306a0c08acf128d37bbd7b3e199525cc40',
1818

1919
# WARNING: DO NOT EDIT canvaskit_cipd_instance MANUALLY
2020
# See `lib/web_ui/README.md` for how to roll CanvasKit to a new version.
@@ -56,24 +56,24 @@ vars = {
5656
# Dart is: https://github.com/dart-lang/sdk/blob/main/DEPS
5757
# You can use //tools/dart/create_updated_flutter_deps.py to produce
5858
# updated revision list of existing dependencies.
59-
'dart_revision': '87965ab4864e444c521023820eb06e569d007059',
59+
'dart_revision': '0d6811928830b87e36a0f49eb7fe554c308d3699',
6060

6161
# WARNING: DO NOT EDIT MANUALLY
6262
# The lines between blank lines above and below are generated by a script. See create_updated_flutter_deps.py
6363
'dart_binaryen_rev': 'b4bdcc33115b31758c56b83bb9de4642c411a042',
64-
'dart_boringssl_rev': 'e68438b863afaa3e81e1771b91819817780f3b60',
64+
'dart_boringssl_rev': '8d8df26fc54f6e5fb0bf404a76ce973c0413eafc',
6565
'dart_core_rev': '7a80178ca72b01b0efb99a9a9a654d83ca21d6b7',
66-
'dart_devtools_rev': 'f10e8df8c517fb0412b9a66c626581867c9c267d',
66+
'dart_devtools_rev': '1fb2f4ce5099042b7f2dfa93dec675a21861d21f',
6767
'dart_ecosystem_rev': '391a80ccb774cfebe4865bcd7e933d1ab016eea5',
68-
'dart_http_rev': '32d5ffcc8d0d5ce9a3a76a293230fa70ec2cc88f',
68+
'dart_http_rev': '6fabf06b90d962cf9a6c009bbe919902ff1a1471',
6969
'dart_i18n_rev': 'de1943629469719bf34269bf90fcdbe9334a73f3',
7070
'dart_libprotobuf_rev': '24487dd1045c7f3d64a21f38a3f0c06cc4cf2edb',
7171
'dart_perfetto_rev': '13ce0c9e13b0940d2476cd0cff2301708a9a2e2b',
7272
'dart_protobuf_gn_rev': 'ca669f79945418f6229e4fef89b666b2a88cbb10',
7373
'dart_protobuf_rev': '1aaa332af75c61ff32739821f7ec52186ff18d4c',
7474
'dart_pub_rev': 'b2c03b448a47fdd52800609b9222cd737be3a934',
7575
'dart_sync_http_rev': 'dc54465f07d9652875deeade643256dafa2fbc6c',
76-
'dart_tools_rev': '62bc13bc086a66ce9a6a3e64865c82d17a1379b3',
76+
'dart_tools_rev': '8d49319b95912a5dff3d7ba4cd861458c55c5608',
7777
'dart_vector_math_rev': 'f08d7d2652e9ecf7d8f8605d9983335174511c95',
7878
'dart_web_rev': '5a39fdc396ae40344308975140343c23b6863261',
7979
'dart_webdev_rev': '697f2f7f56517b0678c6256e0834778905acfc0d',
@@ -308,7 +308,7 @@ deps = {
308308
Var('chromium_git') + '/external/github.com/WebAssembly/binaryen.git@b4bdcc33115b31758c56b83bb9de4642c411a042',
309309

310310
'engine/src/flutter/third_party/dart/third_party/devtools':
311-
{'dep_type': 'cipd', 'packages': [{'package': 'dart/third_party/flutter/devtools', 'version': 'git_revision:f10e8df8c517fb0412b9a66c626581867c9c267d'}]},
311+
{'dep_type': 'cipd', 'packages': [{'package': 'dart/third_party/flutter/devtools', 'version': 'git_revision:1fb2f4ce5099042b7f2dfa93dec675a21861d21f'}]},
312312

313313
'engine/src/flutter/third_party/dart/third_party/pkg/core':
314314
Var('dart_git') + '/core.git' + '@' + Var('dart_core_rev'),
@@ -332,7 +332,7 @@ deps = {
332332
Var('dart_git') + '/leak_tracker.git@f5620600a5ce1c44f65ddaa02001e200b096e14c',
333333

334334
'engine/src/flutter/third_party/dart/third_party/pkg/native':
335-
Var('dart_git') + '/native.git@75f3408cd72c1e217f162fb5e43f4cdf1d34e71d',
335+
Var('dart_git') + '/native.git@4928765d7681ad8a4211c5977afd2f93f50b3f65',
336336

337337
'engine/src/flutter/third_party/dart/third_party/pkg/protobuf':
338338
Var('dart_git') + '/protobuf.git' + '@' + Var('dart_protobuf_rev'),

bin/internal/flutter_packages.version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
267ac7b66308ad34b6ce14c1f5399ab0691f9ede
1+
2405f6a2b7e1664e2779030c6b651676ecbe7651
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
flutter-3.32-candidate.0

dev/integration_tests/flutter_gallery/pubspec.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ dependencies:
2222
characters: 1.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
2323
clock: 1.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
2424
csslib: 1.0.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
25-
html: 0.15.5 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
25+
html: 0.15.5+1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
2626
material_color_utilities: 0.11.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
2727
meta: 1.16.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
2828
path: 1.9.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
@@ -272,4 +272,4 @@ flutter:
272272
- asset: packages/flutter_gallery_assets/fonts/merriweather/Merriweather-Regular.ttf
273273
- asset: packages/flutter_gallery_assets/fonts/merriweather/Merriweather-Light.ttf
274274

275-
# PUBSPEC CHECKSUM: deed
275+
# PUBSPEC CHECKSUM: 054a

dev/integration_tests/link_hook/pubspec.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ dependencies:
2626

2727
dev_dependencies:
2828
ffi: 2.1.4
29-
ffigen: 18.0.0
29+
ffigen: 18.1.0
3030
flutter_lints: 5.0.0
3131
test: 1.25.15
3232

@@ -68,4 +68,4 @@ dev_dependencies:
6868
webkit_inspection_protocol: 1.2.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
6969
yaml_edit: 2.2.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
7070

71-
# PUBSPEC CHECKSUM: a861
71+
# PUBSPEC CHECKSUM: bf62

docs/roadmap/Roadmap.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ In the interest of transparency, we want to share high-level details of our road
22

33
Our plans will evolve over time based on customer feedback and new market opportunities. We will use our surveys and feedback on GitHub issues to prioritize work. The list here shouldn't be viewed either as exhaustive nor a promise that we will complete all this work. If you have feedback about what you think we should work on, we encourage you to get in touch by [filing an issue](https://github.com/flutter/flutter/issues/new/choose), or using the "thumbs-up" emoji reaction on an issue's first comment. Because Flutter is an open source project, we invite contributions both towards the themes presented below and in other areas.
44

5-
_If you are a contributor or team of contributors with long-term plans for [contributing to Flutter](../../CONTRIBUTING.md), and would like your planned efforts reflected in the roadmap, please reach out to Hixie (ian@hixie.ch)._
5+
_If you are a contributor or team of contributors with long-term plans for [contributing to Flutter](../../CONTRIBUTING.md), and would like your planned efforts reflected in the roadmap, please reach via email to `roadmap-input@flutter.dev`._
66

77
# 2025
88

engine/src/flutter/ci/licenses_golden/licenses_dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
Signature: 7582ce3fcdf2e515db0132d7c32bf1b3
1+
Signature: c96f6439e1d3cadfbb6adc790efdcc37
22

33
====================================================================================================
44
LIBRARY: dart
@@ -4862,7 +4862,7 @@ Exhibit B - "Incompatible With Secondary Licenses" Notice
48624862
This Source Code Form is "Incompatible With Secondary Licenses", as
48634863
defined by the Mozilla Public License, v. 2.0.
48644864

4865-
You may obtain a copy of this library's Source Code Form from: https://dart.googlesource.com/sdk/+/4293d50dd30d5469fac05af7470148977327bbe8
4865+
You may obtain a copy of this library's Source Code Form from: https://dart.googlesource.com/sdk/+/0d6811928830b87e36a0f49eb7fe554c308d3699
48664866
/third_party/fallback_root_certificates/
48674867

48684868
====================================================================================================

engine/src/flutter/ci/licenses_golden/licenses_skia

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
Signature: cc16851918508797c4c52f81aeae260a
1+
Signature: 6385fd7cd2f7be2e7ceee9d4b05eaf04
22

33
====================================================================================================
44
LIBRARY: etc1

engine/src/flutter/impeller/display_list/aiks_dl_basic_unittests.cc

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -938,6 +938,7 @@ TEST_P(AiksTest, ImageColorSourceEffectTransform) {
938938

939939
// Scale
940940
{
941+
builder.Save();
941942
builder.Translate(100, 0);
942943
builder.Scale(100, 100);
943944
DlPaint paint;
@@ -948,6 +949,23 @@ TEST_P(AiksTest, ImageColorSourceEffectTransform) {
948949
DlImageSampling::kNearestNeighbor, &matrix));
949950

950951
builder.DrawRect(DlRect::MakeLTRB(0, 0, 1, 1), paint);
952+
builder.Restore();
953+
}
954+
955+
// Perspective
956+
{
957+
builder.Save();
958+
builder.Translate(150, 150);
959+
DlPaint paint;
960+
961+
DlMatrix matrix =
962+
DlMatrix::MakePerspective(Radians{0.5}, ISize{200, 200}, 0.05, 1);
963+
paint.setColorSource(DlColorSource::MakeImage(
964+
texture, DlTileMode::kRepeat, DlTileMode::kRepeat,
965+
DlImageSampling::kNearestNeighbor, &matrix));
966+
967+
builder.DrawRect(DlRect::MakeLTRB(0, 0, 200, 200), paint);
968+
builder.Restore();
951969
}
952970

953971
ASSERT_TRUE(OpenPlaygroundHere(builder.Build()));

engine/src/flutter/impeller/display_list/aiks_dl_blur_unittests.cc

Lines changed: 0 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1253,57 +1253,6 @@ TEST_P(AiksTest, BlurredRectangleWithShader) {
12531253
ASSERT_TRUE(OpenPlaygroundHere(builder.Build()));
12541254
}
12551255

1256-
TEST_P(AiksTest, GaussianBlurWithoutDecalSupport) {
1257-
if (GetParam() != PlaygroundBackend::kMetal) {
1258-
GTEST_SKIP()
1259-
<< "This backend doesn't yet support setting device capabilities.";
1260-
}
1261-
if (!WillRenderSomething()) {
1262-
// Sometimes these tests are run without playgrounds enabled which is
1263-
// pointless for this test since we are asserting that
1264-
// `SupportsDecalSamplerAddressMode` is called.
1265-
GTEST_SKIP() << "This test requires playgrounds.";
1266-
}
1267-
1268-
std::shared_ptr<const Capabilities> old_capabilities =
1269-
GetContext()->GetCapabilities();
1270-
auto mock_capabilities = std::make_shared<MockCapabilities>();
1271-
EXPECT_CALL(*mock_capabilities, SupportsDecalSamplerAddressMode())
1272-
.Times(::testing::AtLeast(1))
1273-
.WillRepeatedly(::testing::Return(false));
1274-
FLT_FORWARD(mock_capabilities, old_capabilities, GetDefaultColorFormat);
1275-
FLT_FORWARD(mock_capabilities, old_capabilities, GetDefaultStencilFormat);
1276-
FLT_FORWARD(mock_capabilities, old_capabilities,
1277-
GetDefaultDepthStencilFormat);
1278-
FLT_FORWARD(mock_capabilities, old_capabilities, SupportsOffscreenMSAA);
1279-
FLT_FORWARD(mock_capabilities, old_capabilities,
1280-
SupportsImplicitResolvingMSAA);
1281-
FLT_FORWARD(mock_capabilities, old_capabilities, SupportsReadFromResolve);
1282-
FLT_FORWARD(mock_capabilities, old_capabilities, SupportsFramebufferFetch);
1283-
FLT_FORWARD(mock_capabilities, old_capabilities, SupportsSSBO);
1284-
FLT_FORWARD(mock_capabilities, old_capabilities, SupportsCompute);
1285-
FLT_FORWARD(mock_capabilities, old_capabilities,
1286-
SupportsTextureToTextureBlits);
1287-
FLT_FORWARD(mock_capabilities, old_capabilities, GetDefaultGlyphAtlasFormat);
1288-
FLT_FORWARD(mock_capabilities, old_capabilities, SupportsTriangleFan);
1289-
FLT_FORWARD(mock_capabilities, old_capabilities, SupportsPrimitiveRestart);
1290-
ASSERT_TRUE(SetCapabilities(mock_capabilities).ok());
1291-
1292-
auto texture = DlImageImpeller::Make(CreateTextureForFixture("boston.jpg"));
1293-
1294-
DisplayListBuilder builder;
1295-
builder.Scale(GetContentScale().x * 0.5, GetContentScale().y * 0.5);
1296-
1297-
DlPaint paint;
1298-
paint.setColor(DlColor::kBlack());
1299-
builder.DrawPaint(paint);
1300-
1301-
auto blur_filter = DlImageFilter::MakeBlur(20, 20, DlTileMode::kDecal);
1302-
paint.setImageFilter(blur_filter);
1303-
builder.DrawImage(texture, DlPoint(200, 200), {}, &paint);
1304-
ASSERT_TRUE(OpenPlaygroundHere(builder.Build()));
1305-
}
1306-
13071256
// This addresses a bug where tiny blurs could result in mip maps that beyond
13081257
// the limits for the textures used for blurring.
13091258
// See also: b/323402168

engine/src/flutter/impeller/display_list/paint.cc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,8 @@ std::shared_ptr<ColorSourceContents> Paint::CreateContents() const {
197197
image_color_source->vertical_tile_mode());
198198
auto sampler_descriptor =
199199
skia_conversions::ToSamplerDescriptor(image_color_source->sampling());
200-
auto effect_transform = image_color_source->matrix();
200+
// See https://github.com/flutter/flutter/issues/165205
201+
flutter::DlMatrix effect_transform = image_color_source->matrix().To3x3();
201202

202203
auto contents = std::make_shared<TiledTextureContents>();
203204
contents->SetOpacityFactor(color.alpha);

engine/src/flutter/impeller/geometry/matrix.h

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -247,6 +247,19 @@ struct Matrix {
247247
// clang-format on
248248
}
249249

250+
// Converts the second row/col to identity to make this an equivalent
251+
// to a Skia 3x3 Matrix.
252+
constexpr Matrix To3x3() const {
253+
// clang-format off
254+
return Matrix(
255+
m[0], m[1], 0, m[3],
256+
m[4], m[5], 0, m[7],
257+
0, 0, 1, 0,
258+
m[12], m[13], 0, m[15]
259+
);
260+
// clang-format on
261+
}
262+
250263
constexpr Matrix Translate(const Vector3& t) const {
251264
// clang-format off
252265
return Matrix(m[0], m[1], m[2], m[3],

engine/src/flutter/impeller/geometry/matrix_unittests.cc

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -313,5 +313,14 @@ TEST(MatrixTest, MakeScaleTranslate) {
313313
Matrix::MakeTranslation({0, 0, 0}) * Matrix::MakeScale({0, 0, 0})));
314314
}
315315

316+
TEST(MatrixTest, To3x3) {
317+
Matrix x(1.0, 0.0, 4.0, 0.0, //
318+
0.0, 1.0, 4.0, 0.0, //
319+
6.0, 5.0, 111.0, 7.0, //
320+
0.0, 0.0, 9.0, 1.0);
321+
322+
EXPECT_TRUE(MatrixNear(x.To3x3(), Matrix()));
323+
}
324+
316325
} // namespace testing
317326
} // namespace impeller

engine/src/flutter/impeller/renderer/backend/vulkan/allocator_vk.cc

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,15 @@
55
#include "impeller/renderer/backend/vulkan/allocator_vk.h"
66

77
#include <memory>
8+
#include <utility>
89

910
#include "flutter/fml/memory/ref_ptr.h"
1011
#include "flutter/fml/trace_event.h"
1112
#include "impeller/base/allocation_size.h"
1213
#include "impeller/core/formats.h"
1314
#include "impeller/renderer/backend/vulkan/capabilities_vk.h"
1415
#include "impeller/renderer/backend/vulkan/device_buffer_vk.h"
16+
#include "impeller/renderer/backend/vulkan/device_holder_vk.h"
1517
#include "impeller/renderer/backend/vulkan/formats_vk.h"
1618
#include "impeller/renderer/backend/vulkan/texture_vk.h"
1719
#include "vulkan/vulkan_enums.hpp"
@@ -405,9 +407,10 @@ class AllocatedTextureSourceVK final : public TextureSourceVK {
405407
return;
406408
}
407409

408-
resource_.Swap(ImageResource(ImageVMA{allocator, allocation, image},
409-
std::move(image_view),
410-
std::move(rt_image_view)));
410+
resource_.Swap(ImageResource(
411+
ImageVMA{allocator, allocation, image}, std::move(image_view),
412+
std::move(rt_image_view), context.GetResourceAllocator(),
413+
context.GetDeviceHolder()));
411414
is_valid_ = true;
412415
}
413416

@@ -429,6 +432,8 @@ class AllocatedTextureSourceVK final : public TextureSourceVK {
429432

430433
private:
431434
struct ImageResource {
435+
std::shared_ptr<DeviceHolderVK> device_holder;
436+
std::shared_ptr<Allocator> allocator;
432437
UniqueImageVMA image;
433438
vk::UniqueImageView image_view;
434439
vk::UniqueImageView rt_image_view;
@@ -437,8 +442,12 @@ class AllocatedTextureSourceVK final : public TextureSourceVK {
437442

438443
ImageResource(ImageVMA p_image,
439444
vk::UniqueImageView p_image_view,
440-
vk::UniqueImageView p_rt_image_view)
441-
: image(p_image),
445+
vk::UniqueImageView p_rt_image_view,
446+
std::shared_ptr<Allocator> allocator,
447+
std::shared_ptr<DeviceHolderVK> device_holder)
448+
: device_holder(std::move(device_holder)),
449+
allocator(std::move(allocator)),
450+
image(p_image),
442451
image_view(std::move(p_image_view)),
443452
rt_image_view(std::move(p_rt_image_view)) {}
444453

engine/src/flutter/impeller/renderer/backend/vulkan/allocator_vk_unittests.cc

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
#include "flutter/testing/testing.h" // IWYU pragma: keep
66
#include "gtest/gtest.h"
77
#include "impeller/base/allocation_size.h"
8+
#include "impeller/core/allocator.h"
89
#include "impeller/core/device_buffer.h"
910
#include "impeller/core/device_buffer_descriptor.h"
1011
#include "impeller/core/formats.h"
@@ -73,6 +74,25 @@ TEST(AllocatorVKTest, MemoryTypeSelectionTwoHeap) {
7374
EXPECT_EQ(AllocatorVK::FindMemoryTypeIndex(4, properties), -1);
7475
}
7576

77+
TEST(AllocatorVKTest, ImageResourceKeepsVulkanDeviceAlive) {
78+
std::shared_ptr<Texture> texture;
79+
std::weak_ptr<Allocator> weak_allocator;
80+
{
81+
auto const context = MockVulkanContextBuilder().Build();
82+
weak_allocator = context->GetResourceAllocator();
83+
auto allocator = context->GetResourceAllocator();
84+
85+
texture = allocator->CreateTexture(TextureDescriptor{
86+
.storage_mode = StorageMode::kDevicePrivate,
87+
.format = PixelFormat::kR8G8B8A8UNormInt,
88+
.size = {1, 1},
89+
});
90+
context->Shutdown();
91+
}
92+
93+
ASSERT_TRUE(weak_allocator.lock());
94+
}
95+
7696
#ifdef IMPELLER_DEBUG
7797

7898
TEST(AllocatorVKTest, RecreateSwapchainWhenSizeChanges) {

engine/src/flutter/impeller/renderer/backend/vulkan/texture_source_vk.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
#include "impeller/renderer/backend/vulkan/shared_object_vk.h"
1313
#include "impeller/renderer/backend/vulkan/vk.h"
1414
#include "impeller/renderer/backend/vulkan/yuv_conversion_vk.h"
15-
#include "vulkan/vulkan_handles.hpp"
1615

1716
namespace impeller {
1817

0 commit comments

Comments
 (0)