-
Notifications
You must be signed in to change notification settings - Fork 6k
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
Update (flipping the default from false -> true) and deprecate Paint.enableDithering. #44705
Update (flipping the default from false -> true) and deprecate Paint.enableDithering. #44705
Conversation
It appears this will break at least 1 framework test:
... and a number of engine tests will need to be updated. One example:
A couple of options:
Thoughts? |
#44730) In the Impeller backend, we **only** support dithering of _gradients_. In addition, it will be the default (and only option). In the [process of enabling dithering by default](#44705), i.e. ```diff class Paint { - static bool enableDithering = false; + static bool enableDithering = true; } ``` ... we realized with internal Google testing this will now apply dithering on more than just gradients, i.e. images in the Skia backend. Since we won't support dithering of images in the Impeller backend, this PR gives a "hint" on whether the `colorSource` (if one is set) can be dithered by the contrived rules we've created.
This will definitely blow up Scubas. But if we think this is the right change, we shouldn't let the pain of updating Scubas stop us. @CaseyHillers indicated that he has a workflow for dealing with a lot of Scubas. And it makes sense to exercise that playbook on a non-on-fire change. |
Preferably, can we update this outside of the roll process? @LongCatIsLooong recently did this with a build flag, and was able to update all the scubas without blocking the roll. |
After disabling Skia image diffing, I'm actually not sure it will anymore. There are virtually no gradients internally.
Yes. I'm going to make sure google3 looks green (or at least, 99% green) before I land this. |
Looks like there was a blocker that is progressing. Just wanted to unblock this. |
Blocked by flutter/flutter#133375. |
flutter#44730) In the Impeller backend, we **only** support dithering of _gradients_. In addition, it will be the default (and only option). In the [process of enabling dithering by default](flutter#44705), i.e. ```diff class Paint { - static bool enableDithering = false; + static bool enableDithering = true; } ``` ... we realized with internal Google testing this will now apply dithering on more than just gradients, i.e. images in the Skia backend. Since we won't support dithering of images in the Impeller backend, this PR gives a "hint" on whether the `colorSource` (if one is set) can be dithered by the contrived rules we've created.
See flutter/engine#44705 where it fails a framework smoke test. Partial work towards #112498.
…ate Paint.enableDithering. (flutter/engine#44705)
…133879) flutter/engine@d00b69a...489c399 2023-09-01 [email protected] Update (flipping the default from false -> true) and deprecate Paint.enableDithering. (flutter/engine#44705) 2023-09-01 [email protected] [Impeller] EntityPass::Clone needs to clone harder (flutter/engine#45313) 2023-09-01 [email protected] Reland "ios: remove shared_application and support app extension build #44732" (flutter/engine#45351) 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],[email protected],[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: 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
Update: Blocked on #44912 landing, and merging into google3.
Partial work towards flutter/flutter#112498.
tl;dr: In Impeller's backend we intend to always dither gradients, and never allow any changes long-term (i.e., write your own shader if you want different behavior) with the assumption that dithered gradients look better most of the time, and don't typically hurt elsewhere.
Note that, at the time of this writing, I couldn't find a single case of this being set explicitly to
true
inside Google, and there are between 100 and 200 publicly accessible on GitHub, of which virtually all are setting it explicitly totrue
.There are some (valid) concerns this would cause a lot of golden-file image diffs, so I'm going to seek explicit approval from the Google testing team as well as someone from the framework team before landing this commit.