-
Notifications
You must be signed in to change notification settings - Fork 29.7k
Roll Flutter Engine from e7d7edab98ad to 1a8888b5170b (33 revisions) #114997
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
Conversation
|
I was looking at whether or not this could be an easy fix, but I'm having a heck of a time getting this running locally. if I try and run via @DanTup do you have a specific workflow that needs to be followed to get these goldens to show up locally? |
@bsalomon I made this change and it didn't seem to alter the goldens on my Mac. Trying on Windows, the results seem much fuzzier (although the docs suggest Low is better quality than None): Is this expected? @jonahwilliams all I'm doing is running |
|
Yeah, I was trying to run on an actual device in order to see what a device with a GPU outputs. To make this work, I had to change all of the loader calls to use rootBundle.load, to avoid the flutter_test specifici overriden asset manager. i will file a bug for this later on. I'm unblocked for now |
|
I've pushed the changes. It does seem like there's no difference now between master and this PR, so (as long as I tested it correctly), I think it should be unblocked now (fixes are DanTup/tiler@380769c and DanTup/tiler-test-maps@6010729). I'm not around too much longer today (it's getting late here) but if any failures relating to this seem like just issues with Tiler's tests and not Flutter, feel free to remove it from the Flutter customer testing (we can add it back if useful later). Otherwise, Jonah and Jason both have access to the repos and are welcome to commit changes/goldens as required to fix. (I'll try to check back shortly before I vanish for the night though) |
|
I'm surprised on mac you get the issue on mac and then it doesn't get blurry when you make the change. I'd expect if the sample point was near an integer you'd now get a ~50/50 blend of the two adjacent pixels. I can take a look if someone points me to the instructions for running. |
|
AFAIK all of the numbers should've been integers, so I wasn't expecting any scaling at all (I'm also not sure why things changed on Windows and not Mac.. both are just running You should be able to just clone https://github.com/DanTup/tiler (inc submodules) and run I just realised I didn't subit the new commit hash to flutter/tests, but as I type this I see @jonahwilliams has beaten me at flutter/tests#173 :) |
|
Thanks for the pointer. I'll take a look to confirm we haven't introduced a bug in Skia. |
|
By default I believe flutter_tester has a 3.0 device pixel ratio, so (if I did my math) right any integer device pixel should become an integer physical pixel. but if there are any parent transforms, offset layers, scrolling, then that can change whether or not that correspondance actually works for an app developer |
|
Ahh, actually that test in particular has a 0.25 scale applied to it. I think that will break the pixel alignment: unless that is acounted for elsewhere? |
|
The sampling works backwards from device space points at half values. That is the device space coords used to shade the top left device pixel are (0.5, 0.5). |
|
While looking at the code, I realised that I only ever committed Windows goldens (because I was using Windows at the time and couldn't easily create the goldens for other platforms). So when I said it didn't happen on Mac, I guess what I really meant was "the tests skip the golden checks on Mac" 🙈
Ah, good spot 😄 It's been a while since I did this. |
One difference between Windows and other platforms is that they fully embrace non-integer DPIs. Mac will pretty much always be 2.0 or 1.0. Many phones are integer DPI, but Windows is fond of 2.25 and 1.75 and other non-integer ratios because they've had to embrace a wide range of monitors designed by a wide range of manufacturers and wanted to achieve very consistent sizing across the board. |
|
I'm trying to double check that this change didn't do anything unanticipated. I'm on a Mac. I built the engine for desktop. And then I run: |
|
@bsalomon turns out I wasn't committing the goldens on mac. I'll create a branch now with the older goldens produced on a Mac so you can easily run this and verify the difference. |
|
@bsalomon if you checkout the Note: I changed the FilterQuality back to |
There are very specific circumstances in which |
I had confused myself in thinking the original issue was showing up on Mac but now I realize it was Windows. Now these results make perfect sense . Mac is sampling the image at image pixel center so |
|
@bsalomon I'm a little confused. The issue* does seem to show up on Mac for me - however Tiler's repo was skipping the golden checks for (host) platforms other than Windows (because I wasn't able to easily update the goldens on other platforms) so it only triggered on Windows when running the tests.
The branch I noted above removes the On |
|
The fuzziness is due to a 0.25 scale. As you scale down a picture, you'd expect the thin lines in the original to get fainter and harder to see. By the time it is scaled down by 4x you'd expect fuzzy lines. If this picture were rendered at full scale the lines would likely not be fuzzy at all. If it was intended to be rendered at this tiny scale, then the lines should have been larger to compensate. Can you imagine what a rendering would look like where as you scaled it down across 4x the lines stayed as bold as they were in the original rendering despite all of the other details of the image reducing in size? That would be a quality issue... |
I understand, but it was being scaled exactly the same before this change. It just feels like the quality become a lot worse. Here's a comparison (left is stable, right is master after this change landed - there are no changes at all in the Tiler code): There's also a slight artifact above the 3rd/clipped character which I think is pixels bled from the sprite above it in the spritesheet. To be clear, I'm not saying these are issues/bugs, and they may easily be fixed/improved by tweaking my code (although I'm not actively developing that package). I just wanted to make sure the differences are understood (and expected or acceptable) :-) |
|
The bleeding shouldn't be there, that is probably related to the rounding fix that Skia is landing. These results are to be expected for |
Sorry, by "issue" I was referring only to the row of undesired pixels above the one character with Are the characters coming from an image atlas? I'm wondering if you could keep the sharpness of |
Oh, I confused things above. The diff I posted was the change from
Yes, but the tileset is from an external source and the info about the sizes comes from the Tiled editor so not someting that can be changed (although to be clear, I'm not concerned here about specific issues relating to these tests - these are just tests, I only highlighted it in case it was unexpected behaviour that might affect others). |
|
In Skia we have a concept of a sampling "constraint" on drawImageRect. If it is "strict" then it guarantees that the image won't be sampled outside of the src rectangle. I'm not sure if that is exposed in flutter. I don't see an equivalent here: However, I do see references to it in the Flutter Engine code. |
Hard-coded to Fast here: |
|
Interesting - should I file an issue for exposing this? I'm not currently maintaining this library so it's not of importance to me, but perhaps it should be available in case others are trying to do something similar? |
|
|
Ah, nice - thanks! 😃 |



Roll Flutter Engine from e7d7edab98ad to 1a8888b5170b (33 revisions)
flutter/engine@e7d7eda...1a8888b
2022-11-09 [email protected] Roll Skia from fe143a0dc368 to 0854badd5783 (1 revision) (flutter/engine#37471)
2022-11-09 [email protected] [macOS] Remove OpenGL rendering backend (flutter/engine#37448)
2022-11-09 [email protected] Roll Dart SDK from 874a662f7507 to 4fcefaf03496 (1 revision) (flutter/engine#37470)
2022-11-09 [email protected] [Reland] Add rects to accumulator rather than bounds (#37435) (flutter/engine#37451)
2022-11-09 [email protected] Roll Fuchsia Mac SDK from d4l6A1aPw6Z0YjxmA... to vEw8iuSZYmlfk1JiE... (flutter/engine#37468)
2022-11-09 [email protected] Roll Dart SDK from c15cdb978761 to 874a662f7507 (3 revisions) (flutter/engine#37466)
2022-11-09 [email protected] Roll Skia from 790aedd91cd8 to fe143a0dc368 (3 revisions) (flutter/engine#37467)
2022-11-09 [email protected] Roll Skia from 511aa59461f3 to 790aedd91cd8 (2 revisions) (flutter/engine#37463)
2022-11-09 [email protected] [Impeller] Don't double-convert include path encodings in ImpellerC (flutter/engine#37408)
2022-11-09 [email protected] Roll Skia from 22526b55be02 to 511aa59461f3 (1 revision) (flutter/engine#37458)
2022-11-09 [email protected] Roll Skia from 94450cd1df4e to 22526b55be02 (6 revisions) (flutter/engine#37455)
2022-11-09 [email protected] Oops, accidentally compiled the non-null-safe platform file as null safe. (flutter/engine#37453)
2022-11-09 [email protected] Roll Skia from 3cecb22c5827 to 94450cd1df4e (4 revisions) (flutter/engine#37445)
2022-11-08 [email protected] Clang-tidy: Fixed math on shard-id validator. (flutter/engine#37433)
2022-11-08 [email protected] Revert "Add rects to accumulator rather than bounds (#37435)" (flutter/engine#37444)
2022-11-08 [email protected] Revert "Sdk roll failure - add facet to allowlist test_manager and other packages. (#37395)" (flutter/engine#37449)
2022-11-08 [email protected] Sdk roll failure - add facet to allowlist test_manager and other packages. (flutter/engine#37395)
2022-11-08 [email protected] Roll Skia from 6a056a26b3c5 to 3cecb22c5827 (1 revision) (flutter/engine#37439)
2022-11-08 [email protected] Roll Skia from 0c8127b3dd7d to 6a056a26b3c5 (16 revisions) (flutter/engine#37438)
2022-11-08 [email protected] Roll Dart SDK from b22b36c0f52e to c15cdb978761 (2 revisions) (flutter/engine#37437)
2022-11-08 [email protected] Add rects to accumulator rather than bounds (flutter/engine#37435)
2022-11-08 [email protected] [web] Use v8BreakIterator where possible (flutter/engine#37317)
2022-11-08 [email protected] Roll Fuchsia Mac SDK from sa5bVGimNo3JwLV27... to d4l6A1aPw6Z0YjxmA... (flutter/engine#37432)
2022-11-08 [email protected] Revert "Roll Skia from 0c8127b3dd7d to 8b19fb0f57d4 (1 revision) (#37409)" (flutter/engine#37430)
2022-11-08 [email protected] Pass the correct name for gclient variables in ci.yaml (flutter/engine#37429)
2022-11-08 [email protected] Roll Skia from 0c8127b3dd7d to 8b19fb0f57d4 (1 revision) (flutter/engine#37409)
2022-11-08 [email protected] Update display_list_image_filter_unittests to be permit Skia roll (flutter/engine#37327)
2022-11-08 [email protected] Add test for image readback (flutter/engine#37401)
2022-11-08 [email protected] Adding release_build:true property to windows builders. (flutter/engine#37397)
2022-11-08 [email protected] Fix boolean json property. (flutter/engine#37403)
2022-11-08 [email protected] Roll Skia from aef6d301c0b5 to 0c8127b3dd7d (6 revisions) (flutter/engine#37402)
2022-11-07 [email protected] Roll Dart SDK from d97d5ad98893 to b22b36c0f52e (1 revision) (flutter/engine#37400)
2022-11-07 [email protected] clang-tidy: added the ability to shard jobs (flutter/engine#37265)
Also rolling transitive DEPS:
fuchsia/sdk/core/mac-amd64 from sa5bVGimNo3J to vEw8iuSZYmlf
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC [email protected] 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:
...