33948 Commits

Author SHA1 Message Date
gaaclarke
10c52df4fb [Impeller] blur: hold on to 1/8 downsample until the kernel overflows (flutter/engine#50363)
issue: https://github.com/flutter/flutter/issues/142753

After https://github.com/flutter/engine/pull/50262 there were still some
sigmas that could show shimmering around the sigma [50, 100] range which
had a downsample amount of 1/16. This makes those ranges hang on to 1/8
for as long as possible. I'm unable to see any shimmering with
`AiksTest.GaussianBlurAnimatedBackdrop` after this PR. I've also
expanded that test so the clip region could be scaled to make sure that
there aren't sizes which cause it to reappear.

Testing: Expanded on manual testing. Since the error only manifests when
evaluating multiple frames of rendering we don't have infrastructure to
test that.

Here is the graph of `GaussianBlurFilterContents::CalculateScale` after
this change:

<img width="903" alt="Screenshot 2024-02-05 at 2 10 41 PM"
src="https://github.com/flutter/engine/assets/30870216/ac3b735a-95f0-4d7b-af12-58e1ae75278e">

## 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/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-02-05 16:32:44 -08:00
skia-flutter-autoroll
78a1d58555 Manual roll Dart SDK from 5a5d4c262200 to b62066b42af0 (5 revisions) (flutter/engine#50366)
Manual roll requested by zra@google.com

https://dart.googlesource.com/sdk.git/+log/5a5d4c262200..b62066b42af0

2024-02-02 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.4.0-104.0.dev
2024-02-02 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.4.0-103.0.dev
2024-02-02 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.4.0-102.0.dev
2024-02-02 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.4.0-101.0.dev
2024-02-02 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.4.0-100.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 dart-vm-team@google.com,matanl@google.com,zra@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

---------

Co-authored-by: Zachary Anderson <zanderso@users.noreply.github.com>
2024-02-05 15:02:54 -08:00
Taha Tesser
5f93393312 Fix iOS password autofill prompt dismissal causes layout to resize (flutter/engine#50364)
fixes [Save password prompt dismiss is pushing UI up and down](https://github.com/flutter/flutter/issues/112281)

### Code sample

<details>
<summary>expand to view the code sample</summary> 

```dart
import 'package:flutter/material.dart';

void main() => runApp(const MyApp());

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      debugShowCheckedModeBanner: false,
      home: HomePage(),
    );
  }
}

class HomePage extends StatefulWidget {
  const HomePage({super.key});

  @override
  State<HomePage> createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  final TextEditingController controller1 = TextEditingController();
  final TextEditingController controller2 = TextEditingController();

  @override
  void dispose() {
    controller1.dispose();
    controller2.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold( // Replace Scaffold with Material to fix glitch.
      body: Center(
        child: Column(
          mainAxisSize: MainAxisSize.min,
          children: <Widget>[
            const Text('Login (Without Scaffold)'),
            AutofillGroup(
              child: Column(
                children: <Widget>[
                  TextField(
                    controller: controller1,
                    autofillHints: const <String>[AutofillHints.username],
                  ),
                  TextField(
                    controller: controller2,
                    autofillHints: const <String>[AutofillHints.password],
                  ),
                ],
              ),
            ),
          ],
        ),
      ),
    );
  }
}
```

</details>

### Before

https://github.com/flutter/engine/assets/48603081/dfe36616-e1dd-4c6c-95b0-e4bd89bd3a6a

### After

https://github.com/flutter/engine/assets/48603081/cfb15252-10cd-4521-a1ef-2cace0004588

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-02-05 21:53:03 +00:00
LongCatIsLooong
0c52de1fda visiblePassword uses ASCII keyboard on iOS (flutter/engine#50293)
Fixes https://github.com/flutter/flutter/issues/129113

The documentation states that the `visiblePassword` input type
> Requests a keyboard with ready access to both letters and numbers.

`UIKeyboardTypeASCIICapable` seems to be the closest match.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-02-05 21:34:09 +00:00
Dan Field
b763483b43 [Impeller] Do not reference this in the submit callback for Metal GPU Surfaces (flutter/engine#50361)
Fixes https://github.com/flutter/flutter/issues/141351 (speculatively - I have not directly reproduced this in an application, but without this change the added test crashes with a segfault in the submit callback).

If the rasterizer gets torn down, the surface gets released and the submit callback may fire on a collected object. Capturing `this` isn't safe. I'm not quite sure how that could happen from the linked stack trace though, since the draw call and the teardown call should be happening on the raster thread, and if the surface was reset then the draw call should've failed earlier...

The added test causes a segfault without the change.
2024-02-05 20:58:17 +00:00
gaaclarke
b3f6a88647 [Impeller] moved blur aiks tests to their own file (flutter/engine#50356)
issue: https://github.com/flutter/flutter/issues/140106

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-02-05 19:02:21 +00:00
Chinmay Garde
8ac86e0177 Delete fml::ThreadLocalUniquePtr. (flutter/engine#50310)
Fixes https://github.com/flutter/flutter/issues/141127
2024-02-04 03:04:07 +00:00
Jonah Williams
a0f6d53a3f [Impeller] fix flake in compute unittests. (flutter/engine#50308)
Locally I don't get a validation error about endEncoding.
2024-02-03 00:27:50 +00:00
Chinmay Garde
dc87eb6768 [Impeller] Fix blown stack due to always out of date window dimensions on high-dpi devices. (flutter/engine#50307)
This regression was introduced in 0682efb50f which made it so that the updated surface size would be provided to the swapchain impl out-of-band instead of being inferred from the surface properties (to avoid a lag between the reports of the two).

However, the playgrounds used the window size to report the updated size. This is fine where the window scale is 1. But fails on high-dpi devices. The patch replaces the call to get the window size with an equivalent call to get the framebuffer size.

The failure was a blown stack due to a new swapchain impl being created over and over again because the size was always out of date.

Fixes https://github.com/flutter/flutter/issues/142833
2024-02-03 00:06:36 +00:00
Jason Simmons
3928bcf361 [Impeller] In advanced blends, unpremultiply and apply src_input_alpha only if there is no foreground color (flutter/engine#50260)
See https://github.com/flutter/flutter/issues/142620
2024-02-02 23:54:41 +00:00
gaaclarke
0c357591a8 [Impeller] new blur: clamp downsample scalar to 1/16 (flutter/engine#50262)
fixes https://github.com/flutter/flutter/issues/142753

The theory here is that once you start throwing away more than 15/16th of the signal it's pretty noticable.  By looking at the blur under different circumstances that seems like a reasonable limit.

There is no automated test for this.  Doing so would be quite involved and would involve evaluating multiple rendered frames.  There is a manual test.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-02-02 23:47:20 +00:00
Chinmay Garde
959713ad30 [Impeller] Wire up Angle use to a command line flag and enable it by default on macOS. (flutter/engine#50304)
Similar to --use_swiftshader in https://github.com/flutter/engine/pull/50298.
2024-02-02 23:01:05 +00:00
Jason Simmons
d174418e2f Remove the skia_fontmgr_factory argument from the Web GN configuration (flutter/engine#50183)
This was removed in Skia (see https://skia.googlesource.com/skia/+/38e85e85079f4140158a8f83c7bbceb7a1ac5ca5)
2024-02-02 22:30:18 +00:00
Chinmay Garde
0c03fdf90c [Impeller] Allow playgrounds to use SwiftShader via a flag. (flutter/engine#50298)
Specifying the `--use_swiftshader` flag will find an setup the SwiftShader ICD in the process. Allows switching between two Vulkan implementation (system and SwiftShader) quickly using a flag.

Following up on https://github.com/flutter/flutter/issues/127070
2024-02-02 22:07:11 +00:00
gaaclarke
8a98a0be33 [Impeller] blur: removed ability to request out of bounds mip_counts (flutter/engine#50290)
b/323402168

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-02-02 20:44:54 +00:00
auto-submit[bot]
35ff8e9b9e Reverts "Move linux_fuchsia to staging" (flutter/engine#50294)
Reverts flutter/engine#50288
Initiated by: zanderso
This change reverts the following previous change:
Original Description:
For https://github.com/flutter/flutter/issues/142811
2024-02-02 19:41:45 +00:00
Zachary Anderson
c5eac677ca Revert "[Fuchsia] Execute most of the testing/fuchsia/test_suites.yaml on debug and release builds" (flutter/engine#50291)
Reverts flutter/engine#50058 for
https://github.com/flutter/flutter/issues/142811
2024-02-02 11:40:10 -08:00
Zachary Anderson
45c60db662 Move linux_fuchsia to staging (flutter/engine#50288)
For https://github.com/flutter/flutter/issues/142811
2024-02-02 18:23:05 +00:00
Juanjo Tugores
358d8b6229 Add the focus state related methods to the platform dispatcher (flutter/engine#50273)
These changes were originally landed on
https://github.com/flutter/engine/pull/49841 but reverted in
64fe7b86c3.
I fixed the offending dart snippets and (think) they now will work
without issues (I think I was able to verify them locally by manually
patching my bin/cache/... copy of these files with these changes).

Relevant Issues are:
* Design doc link:
https://github.com/flutter/website/actions/runs/7560898849/job/20588395967
* Design doc: https://github.com/flutter/flutter/issues/141711
* Focus in web multiview:
https://github.com/flutter/flutter/issues/137443

## 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/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-02-02 10:13:00 -08:00
Ricardo Amador
1b4b809bf3 Add a link the different possible Android virtual device configs (flutter/engine#50267)
*Replace this paragraph with a description of what this PR is changing or adding, and why. Consider including before/after screenshots.*

*List which issues are fixed by this PR. You must list at least one issue.*

*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-02-02 16:13:38 +00:00
Bart Cone
1b95fed6c0 [Android] Fix TextInputType.none for devices with physical keyboard (flutter/engine#49980)
## Description

This PR fixes an issue where keystrokes aren't received on Android
devices with physical keyboards (e.g. rugged Zebra devices) when
`keyboardType` is set to `TextInputType.none` on a `TextField`.

The logic in `setTextInputClient` and `canShowTextInput` created an
`inputTarget` with `InputTarget.Type.NO_TARGET` which caused the [input
connection to short
circuit](https://github.com/flutter/engine/blob/main/shell/platform/android/io/flutter/plugin/editing/TextInputPlugin.java#L296)
and not be established.

Bug introduction PR: https://github.com/flutter/engine/pull/26585

## Related Issue

https://github.com/flutter/flutter/issues/89983

## Unit Test Notes

- The existing `showTextInput_textInputTypeNone()` stays green after
update.
- `inputConnection_textInputTypeNone()` updated to `assertNotNull`. I
would make this more specific, but this is my first venture into the
Flutter engine and don't know enough about those connection attributes.

## Demo

Video below with Zebra MC9300 device. This issue can also be reproduced
in a standard android emulator. Simply add a `TextField`, configure
`keyboardType` to be `TextInputType.none` and attempt to enter text
after running and giving focus to textfield.

Before


https://github.com/flutter/engine/assets/1988098/348ca061-b8b9-4483-956e-0732c1238207

After


https://github.com/flutter/engine/assets/1988098/b65c7251-59b4-4c73-9b85-7ac03f47a7e4

## 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.
- [ ] 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 `///`).
- [x] I signed the [CLA].
- [x] All existing and new tests are passing.
2024-02-01 23:24:39 -08:00
auto-submit[bot]
64fe7b86c3 Reverts "Add the focus state related methods to the platform dispatcher" (flutter/engine#50268)
Reverts flutter/engine#49841
Initiated by: zanderso
This change reverts the following previous change:
Original Description:
This change augments the platform dispatcher to allow the engine <===> framework to communicate flutter and platform focus changes.

Relevant Issues are:
* Design doc link: https://github.com/flutter/website/actions/runs/7560898849/job/20588395967
* Design doc: https://github.com/flutter/flutter/issues/141711
* Focus in web multiview: https://github.com/flutter/flutter/issues/137443

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-02-02 02:59:26 +00:00
skia-flutter-autoroll
0b311bcbdc Manual roll Dart SDK from 82936dcdaf4f to 5a5d4c262200 (2 revisions) (flutter/engine#50264)
Manual roll requested by kevinjchisholm@google.com

https://dart.googlesource.com/sdk.git/+log/82936dcdaf4f..5a5d4c262200

2024-02-01 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.4.0-99.0.dev
2024-02-01 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.4.0-98.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 dart-vm-team@google.com,kevinjchisholm@google.com,matanl@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-02-02 01:56:09 +00:00
Tong Mu
be6209e136 Remove number of arguments from defining Dart FFI (flutter/engine#50153)
The number of arguments are not used. 

And also, even if we need it in the future, they can be derived at compile time:

```cpp
template <typename T>
struct function_traits;

template <typename Ret, typename... Args>
struct function_traits<Ret(Args...)>
{
    using params = std::tuple<Args...>;
};

template <typename T>
constexpr std::size_t get_parameter_count() {
    return std::tuple_size<typename function_traits<T>::params>::value;
}

template <typename T>
struct member_function_traits;

template <typename C, typename Ret, typename... Args>
struct member_function_traits<Ret(C::*)(Args...)>
{
    using params = std::tuple<Args...>;
};

template <typename T>
constexpr std::size_t get_member_function_parameter_count() {
    return std::tuple_size<typename member_function_traits<T>::params>::value;
}

```

(I got the code above with ChatGPT but I verified that they work)

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-02-01 23:58:31 +00:00
Ricardo Amador
0946672e54 Refactor the linux_android targets to make use of recent changes to android virtual device params (flutter/engine#50099)
Changes to use the proto.textpb config file as the version of the emulator device and show the cipd dependency version in the dependencies so devs know it can be updated.

This will not pass until recipe changes have landed.

*List which issues are fixed by this PR. You must list at least one issue.*
Fixes https://github.com/flutter/flutter/issues/142261

*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-02-01 23:52:29 +00:00
Michael Goderbauer
2134c852b4 Re-add tests deleted on accident (flutter/engine#50223)
This re-adds the tests from https://github.com/flutter/engine/pull/41998/files that were accidentally deleted in https://github.com/flutter/engine/pull/42418/files#diff-2cce780ae0f93b9230cbf44030048dbf9ef4c6e0fdb959a47cae440fac0350faL808, probably because of a bad merge.
2024-02-01 21:51:51 +00:00
gaaclarke
5d0859ada0 [Impeller] updated todos from opengles golden work (flutter/engine#50218)
followup from https://github.com/flutter/engine/pull/50146

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-02-01 21:36:52 +00:00
Jim Graham
50968b0324 Get bounds from RTree in DLBuilder::Build() (flutter/engine#50253)
This optimization was discovered when reviewing the bounds accumulation code in DisplayListBuilder. There is trivially wasted work in the `Build()` method that can be easily avoided.

When a Builder is preparing an RTree, it accumulates a list of bounds for every rendering op, but doesn't union them up front. If you ask the Builder for the bounds of the accumulated ops, it will have to union all of the rectangles to produce an answer. But, if you ask the Builder to produce an RTree, that process will implicitly combine all of the rectangles as a side effect of creating the tree structure - and that RTree object has a bounds method that can return the result directly.

This change leverages the construction of the RTree to avoid having to union all of the rects twice which can only save time when constructing the majority of DisplayList objects used in a scene.
2024-02-01 21:31:26 +00:00
Chinmay Garde
a018aebbe9 [Impeller] Remove unused define. (flutter/engine#50250)
This define isn't used in a C++ TU. Only the build scripts (in `//flutter/shell/platform/android/BUILD.gn`) use the flag to decide whether to package the validation layers.

Remove the define that no one uses.
2024-02-01 21:30:18 +00:00
Juanjo Tugores
9858aa35c2 Add the focus state related methods to the platform dispatcher (flutter/engine#49841)
This change augments the platform dispatcher to allow the engine <===>
framework to communicate flutter and platform focus changes.

Relevant Issues are:
* Design doc link:
https://github.com/flutter/website/actions/runs/7560898849/job/20588395967
* Design doc: https://github.com/flutter/flutter/issues/141711
* Focus in web multiview:
https://github.com/flutter/flutter/issues/137443

## 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/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-02-01 13:20:30 -08:00
Jason Simmons
a337919d34 Fix the output paths of the Web esbuild GN template (flutter/engine#50188) 2024-02-01 21:17:32 +00:00
Chinmay Garde
336c5ca450 [Impeller] Delete unnecessary special casing for Vulkan in framebuffer fetch. (flutter/engine#50251)
The code generated is functionally identical (http://tinyurl.com/yov6m8ac).
2024-02-01 21:12:34 +00:00
Brandon DeRosier
5d6ea1d82f [Impeller] Replace stencil pipeline ops with enum. (flutter/engine#50231)
Depends on https://github.com/flutter/engine/pull/49828.

No semantic change.

Also adds/documents stencil configurations that are needed for StC. Operations for the current stencil stack are labeled as "legacy".
2024-02-01 19:13:41 +00:00
gaaclarke
ec74b5fbef [Impeller] new blur: round downsample to power of two (flutter/engine#50245)
This makes the downsampling step of the new blur round to the nearest power of 2.  This makes the changes in downsampling less frequent and the output of downsampling hypothetically higher quality since downsampling by a power of 2 is easier.

issue: https://github.com/flutter/flutter/issues/141510

## before
https://github.com/flutter/engine/assets/30870216/73e78f02-1346-4dde-ad6e-8aaa7c910bac

## after
https://github.com/flutter/engine/assets/30870216/b4153ada-6a82-4d0a-a4c2-158134c7b74f

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-02-01 19:12:43 +00:00
John McCutchan
7c04b55f07 Provide a more helpful error message in the case of UnsatisfiedLinkError (flutter/engine#50247)
Related https://github.com/flutter/flutter/issues/83596
2024-02-01 11:04:45 -08:00
Jonah Williams
eff9aac24a Update expected golden number. (flutter/engine#50249)
My patching removing drawPicture might have landed before syncing to the
patch that added the golden # check.
2024-02-01 10:48:40 -08:00
Jonah Williams
abfdf7ed0b [Impeller] remove drawPicture from Aiks Canvas. (flutter/engine#50242)
These interfaces were added to allow experimentation with the AiksLayer in the framework. Since our current approach is focused on aligning display list and impeller, we don't need these anymore.
2024-02-01 18:07:46 +00:00
Loïc Sharma
5251e0048f Reland "[Windows] Introduce egl::Surface and egl::WindowSurface" (flutter/engine#50148)
# Original pull request description

This introduces the `egl::Surface` and `egl::WindowSurface` types to abstract a raw `EGLSurface`. This also removes some - but not all - EGL surface logic out from `EGLManager`.

Subsequent pull requests will be necessary to:

1. Move ownership of the `egl::WindowSurface` from `egl::Manager` to `FlutterWindowsView`
2. Refactor external texture's off-screen EGL surface to use `egl::Surface`

Part of https://github.com/flutter/flutter/issues/141996

# Reland

https://github.com/flutter/engine/pull/49983 was reverted as it introduced a crash if the render surface fails to be created even though EGL was initialized successfully.

This pull request is split into the following commits:

1. c0b11be79f is the original pull request unchanged
2. 1dc7813845 is the fix: it checks a surface is valid before using it. This also adds several tests to prevent this kind of regression.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-02-01 17:08:15 +00:00
gaaclarke
110583e248 [Impeller] added an assert that goldens are generated (flutter/engine#50222)
fixes https://github.com/flutter/flutter/issues/142657

## 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/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-02-01 08:45:41 -08:00
Zachary Anderson
55d79af527 Moves impeller/golden_tests_harvester to tools/golden_tests_harvester (flutter/engine#50211)
The tool is not Impeller specific, so moving it to the `tools/`
directory.
2024-02-01 08:38:52 -08:00
skia-flutter-autoroll
9d9bba1eba Roll Skia from 2386d5077ec5 to cdf214adfb4d (2 revisions) (flutter/engine#50239)
https://skia.googlesource.com/skia.git/+log/2386d5077ec5..cdf214adfb4d

2024-02-01 brianosman@google.com Remove most HD7770 jobs
2024-02-01 johnstiles@google.com Disable new warning -Wswitch-default.

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 brianosman@google.com,jmbetancourt@google.com,matanl@google.com,rmistry@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-02-01 16:37:21 +00:00
skia-flutter-autoroll
b4ab89cc65 Roll Skia from 20578fecfc37 to 2386d5077ec5 (2 revisions) (flutter/engine#50238)
https://skia.googlesource.com/skia.git/+log/20578fecfc37..2386d5077ec5

2024-02-01 borenet@google.com Temporarily remove Pixel7 jobs
2024-02-01 bungeman@google.com Roll libpng from v1.6.37-6 to v1.6.40-61

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 brianosman@google.com,jmbetancourt@google.com,matanl@google.com,rmistry@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-02-01 15:46:15 +00:00
skia-flutter-autoroll
708e3e60ee Roll Skia from 756276a133b1 to 20578fecfc37 (1 revision) (flutter/engine#50236)
https://skia.googlesource.com/skia.git/+log/756276a133b1..20578fecfc37

2024-02-01 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 0ada0b7f1fd1 to 1abfdc37320f (6 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 brianosman@google.com,jmbetancourt@google.com,matanl@google.com,rmistry@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-02-01 13:27:35 +00:00
skia-flutter-autoroll
a3d0f22332 Roll Fuchsia Linux SDK from nymRxHV9Shod7cyLe... to kvEXgoydRYnW3UvX2... (flutter/engine#50235)
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 matanl@google.com,rmistry@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-02-01 12:00:20 +00:00
Brandon DeRosier
2bf0ce66c5 [Impeller] Assign incremental clip depth to all entities. (flutter/engine#49828)
- Add depth settings to pipeline variant hash.
- Assign new clip depth to all entities.
- Punt the final depth to all the vertex shaders.
- Add validations to assert all clip depths are resolved.
2024-02-01 02:56:16 -08:00
skia-flutter-autoroll
cdec42a288 Roll Skia from 505d22d0ecdc to 756276a133b1 (3 revisions) (flutter/engine#50232)
https://skia.googlesource.com/skia.git/+log/505d22d0ecdc..756276a133b1

2024-02-01 skia-autoroll@skia-public.iam.gserviceaccount.com Roll SK Tool from 6e97526ab534 to 3f8e049193be
2024-02-01 skia-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 2cc2b392c9ef to 78d1799ee43e (1 revision)
2024-02-01 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra from 3c9b934fc33b to 6e97526ab534 (9 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 brianosman@google.com,jmbetancourt@google.com,matanl@google.com,rmistry@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-02-01 07:36:16 +00:00
skia-flutter-autoroll
bf10edaa4d Roll Skia from bcbc172f74da to 505d22d0ecdc (1 revision) (flutter/engine#50230)
https://skia.googlesource.com/skia.git/+log/bcbc172f74da..505d22d0ecdc

2024-02-01 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Dawn from deb32c4a0943 to e2be33f0b421 (15 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 brianosman@google.com,jmbetancourt@google.com,matanl@google.com,rmistry@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-02-01 06:29:55 +00:00
Jason Simmons
cc9b60836e [Impeller] Clear the GPUTracerVK in_frame flag when ending a frame even if the tracer is disabled (flutter/engine#50228)
Without this an assertion in GPUTracerVK::MarkFrameStart will fail on the next frame.
2024-02-01 04:22:34 +00:00
auto-submit[bot]
90b6db8915 Reverts "Remove migration flag and unused header files" (flutter/engine#50229)
Reverts flutter/engine#50216
Initiated by: zanderso
This change reverts the following previous change:
Original Description:
The `applyRoundingHack` flag is no longer used by the framework. This also removes the [lib/ui/text/line_metrics.h](https://github.com/flutter/engine/pull/50216/files#diff-9175619f2b114dffef67eba38511b34afe6abefd4f697f4758647133895b34f5) file which doesn't seem to be referenced anywhere.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-02-01 03:47:16 +00:00
Jonah Williams
0682efb50f [Impeller] size vk swapchain to window size. (flutter/engine#50205)
The size the engine recieves from the `AndroidSurfaceVulkanImpeller::OnScreenSurfaceResize` appears to be correct in the case of window rotation. Use this instead of physical surface properties to set the swapchain image size.

Querying the physical surface properties seems to have some additional non-deterministic delay. This means that querying the properties during a window rotation will frequently return old values.

Fixes https://github.com/flutter/flutter/issues/138780
Fixes https://github.com/flutter/flutter/issues/132708
2024-02-01 03:45:07 +00:00