See comments in the bug for reasoning. macOS hasn't used subpixel AA for
quite a while.
Emulating this macOS AA on vibrant backgrounds was the only point of
this feature.
This allows to simplify the WebRender code quite a bit, too.
Differential Revision: https://phabricator.services.mozilla.com/D192311
This aims to avoid conflicts with user-installed fonts that shadow system fonts,
where there is a risk that different processes end up using different, incompatible
versions of "the same" font (i.e. they resolve the same font descriptor to different
resources).
Differential Revision: https://phabricator.services.mozilla.com/D170286
My fix for Bug 1836063 didn't take into account that there could be
clips between the old picture clip and the Lowest Common Ancestor (LCA)
clip. In this case, even when the pic clip and LCA clip are identical,
moving the clip root from the former to the latter would cause any clips
between these two to be ignored.
This commit checks that the pic clip is the direct parent of the LCA
clip, so we aren't accidentally skipping any clips between the two.
I've checked that the original optimisation still works in Firefox and
the invalidation reftest still passes.
I also add a new regression reftest for this specific bug, created from
the reported test case.
Differential Revision: https://phabricator.services.mozilla.com/D190040
This required a few changes to work under taskcluster's Python instead
of system one. Most dependencies are now explicit through
gfx/wr/ci-scripts/requirements.txt
Differential Revision: https://phabricator.services.mozilla.com/D188736
This required a few changes to work under taskcluster's Python instead
of system one. Most dependencies are now explicit through
gfx/wr/ci-scripts/requirements.txt
Differential Revision: https://phabricator.services.mozilla.com/D188736
Rather than selecting all clips to be drawn in the source or target space,
allow them to be separate masks when required. In the common case, the spaces
match and so all masks get drawn on to the picture surface. In the rare case
of a mask that requires drawing in source surface space, _and_ a mask in a
parent non-aligned space, support rendering and applying them as separate masks.
Differential Revision: https://phabricator.services.mozilla.com/D189885
This aims to avoid conflicts with user-installed fonts that shadow system fonts,
where there is a risk that different processes end up using different, incompatible
versions of "the same" font (i.e. they resolve the same font descriptor to different
resources).
Differential Revision: https://phabricator.services.mozilla.com/D170286
This varying's precision being reduced to mediump in bug bug 1823411
is causing rendering glitches on certain Mali devices. It should never
have been reduced in the first place, as calculations regarding
positions may require the extra precision. This patch therefore
reverts it to highp.
Differential Revision: https://phabricator.services.mozilla.com/D188984
The repeated if-statements in the existing shader code appear to be
miscompiled on certain Adreno 3xx devices. Replacing them with a mix()
statement appears to avoid the bug.
Depends on D188818
Differential Revision: https://phabricator.services.mozilla.com/D188819
Add support for drawing clip masks in the same reference frame as
the raster space without the perspective transform, which fixes
some complex edge cases with nested complex perspective transforms.
Differential Revision: https://phabricator.services.mozilla.com/D187864
This patch removes use of the legacy clip-mask paths for picture
primitives. It makes use of render task sub-pass functionality
to apply the mask directly on top of the picture primitive when
the coordinate systems match (the common case). In the case of
complex transforms it renders them to a screen-space mask which
can be applied by the old clip-mask sampling code. In future,
we'll likely apply these as a sub-pass too.
Differential Revision: https://phabricator.services.mozilla.com/D186638
This adds support for sub-passes to individual render tasks, which
allow subsequent rendering to be configured on top of an existing
render task.
This patch introduces no functional change, it's preparation for
follow up patches.
The follow up patches will make use of this to apply clip masks to
picture primitives directly, where applicable, rather than allocating
a screen-space clip mask and drawing to that.
Differential Revision: https://phabricator.services.mozilla.com/D186614
This switches mask rendering to use an exact local bounds when
the clip is the same coord system as the raster root, and a
conservative estimate when there is a complex transform.
This simplifies the next patch to allow using the new clip-mask
paths for picture rendering (which are always raster roots).
Differential Revision: https://phabricator.services.mozilla.com/D185520
In bug 1843749 we received reports of QCOM_tiled_rendering causing
glitches on Adreno 308 GPUs. As using this extension is a performance
win, especially on less powerful GPUs such as the Adreno 308, we
decided to block it only on the driver versions which we knew were
broken: V@331 and V@415.
However, we have now received a report that it is additionally broken
on version V@0502. As it now seems likely the bug affects all driver
versions, or at least more than originally hoped, this patch blocks
the extension on the Adreno 308 regardless of driver version.
Differential Revision: https://phabricator.services.mozilla.com/D185530