Page MenuHomePhabricator

Bug 1608741 - Part 2 - Disable dithering on gradient primitives.
ClosedPublic

Authored by gw on Jan 20 2020, 10:44 PM.

Details

Summary

There are a number of issues with the current gradient dithering
implementation, that cause many test failures and also fuzziness
rendering when enabling DirectComposition virtual surfaces. In
particular, the dither result is dependent on the offset of the
update rect within a render target.

For now, this patch disables gradient dithering by default. This
gives us:

  • A heap of new test PASS results (or reduced fuzziness).
  • Fixes a number of non-deterministic fuzziness bugs with DC.
  • Improves performance of gradient rendering by a reasonable amount.

We can fix gradient dithering as a follow up, and re-enable if/when
we find content that would benefit from it significantly (we may
be able to improve gradients in other ways than dithering too).

Diff Detail

Repository
rMOZILLACENTRAL mozilla-central
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

gw created this revision.Jan 20 2020, 10:44 PM
Herald added a project: Restricted Project. · View Herald TranscriptJan 20 2020, 10:44 PM
phab-bot requested review of this revision.Jan 20 2020, 10:44 PM
phab-bot changed the visibility from "Custom Policy" to "Public (No Login Required)".
phab-bot changed the edit policy from "Custom Policy" to "Restricted Project (Project)".
phab-bot removed a project: Restricted Project.

Each one of the test changes is either a new PASS or an _improvement_ in fuzziness (none of them are a regression in fuzziness).

sotaro accepted this revision.Jan 20 2020, 11:19 PM
This revision is now accepted and ready to land.Jan 20 2020, 11:19 PM
gw updated this revision to Diff 220028.Jan 21 2020, 12:24 AM
gw updated this revision to Diff 220038.Jan 21 2020, 2:21 AM
gw updated this revision to Diff 220043.Jan 21 2020, 4:28 AM
gw updated this revision to Diff 220053.Jan 21 2020, 6:35 AM
gw updated this revision to Diff 220060.Jan 21 2020, 6:46 AM
nical accepted this revision.Jan 21 2020, 11:02 AM
gw updated this revision to Diff 220460.Jan 21 2020, 8:52 PM
gw updated this revision to Diff 220550.Jan 21 2020, 10:43 PM
gw added a comment.Jan 21 2020, 10:49 PM

I confirmed that there is an intermittent failure in one of the newly enabled tests that also occurs on m-c, so I will mark that test as [FAIL,PASS] for now. Filed as https://bugzilla.mozilla.org/show_bug.cgi?id=1610662.

gw updated this revision to Diff 220639.Jan 22 2020, 1:24 AM