We should definitely try this, but I'd be very careful to watch performance metrics after switching this on.
Do we know why this was ever disabled in the first place?
I can't remember but some guesses:
1) Didn't want to deal with layout test rebaselines
2) Bad performance
or
3) Bad quality
Adding Rob in case he remembers
Since it sounds like performance is pretty good, I agree that we should probably just turn this on. Definitely for low-end Android, which uses ARGB_4444, and benefits a lot from dithering.
This would be really great to get in for M61, which is when we plan a full roll-out of GPU raster on low-end Android (which uses RGBA_4444).
Does the dithering described here only impact gradients? Or other things as well (blurs for instance)?
AFAIK Ganesh will apply the dither effect to everything, when the paint flag is set, but Blink only ever sets the flag for gradients.
I'm working on the CL, and the diffs look good -- just need to clean up some canvas2s tests which assert exact pixel values: https://chromium-review.googlesource.com/c/535714/
Ah, perfect... so we could probably apply the dither more widely in CC if we decided it was appropriate (4444 color) by updating the paint flags. Thanks for looking at this!
I wasn't planning on it, but we could do this - I assume it will come at significant cost (but this is what SW does, so maybe it's ~equivalent)? I'll try some benchmarks.
Comment 1 by ericrk@chromium.org
, Jun 9 2017