Commit Graph

187 Commits

Author SHA1 Message Date
Glenn Watson
511c44ac9f Bug 1572779 - Update test expectations for perspective-scrolling-1.html. r=kvark
This bug became an unexpected PASS on tier-2 android platform after
landing the fixes for bug 1572197. The fixes in that bug were
specifically to fix this test on windows platforms, so it's not
surprising that it also fixes it on android.

Differential Revision: https://phabricator.services.mozilla.com/D41493

--HG--
extra : moz-landing-system : lando
2019-08-12 01:11:17 +00:00
Kartikaya Gupta
ec2096ed3f Bug 1525314 - Update reftest annotations for WebRender on GeckoView. r=gbrown
Differential Revision: https://phabricator.services.mozilla.com/D36798

--HG--
extra : moz-landing-system : lando
2019-07-04 21:57:48 +00:00
Coroiu Cristina
3983fddf6d Backed out 6 changesets (bug 1525314) for reftest failures at reftests/svg/filters/css-filters/saturate-zero.html om a CLOSED TREE
Backed out changeset 0ed2509b7191 (bug 1525314)
Backed out changeset af72d1c4c107 (bug 1525314)
Backed out changeset ab21a3ff4ae4 (bug 1525314)
Backed out changeset 02399933ac4b (bug 1525314)
Backed out changeset 95790a07a93c (bug 1525314)
Backed out changeset 28f52fd3934e (bug 1525314)
2019-07-05 00:29:12 +03:00
Kartikaya Gupta
c08a0b6539 Bug 1525314 - Update reftest annotations for WebRender on GeckoView. r=gbrown
Depends on D36797

Differential Revision: https://phabricator.services.mozilla.com/D36798

--HG--
extra : moz-landing-system : lando
2019-07-03 17:13:33 +00:00
Geoff Brown
945ee0068f Bug 1556058 - Update test expectations for Android 7.0 reftests; r=kats
These changes are needed for consistently green runs with the new emulator with
"-gpu on".
Most changes are simple removal of fuzzy-if(geckoview) but I also needed to add
at least one new fuzzy-if.
In this configuration we can run reftests in just 2 chunks (20 minutes each on
opt/30 minutes on debug).

Differential Revision: https://phabricator.services.mozilla.com/D36258

--HG--
extra : moz-landing-system : lando
2019-06-28 17:30:48 +00:00
Glenn Watson
e22f19cf52 Bug 1558106 - Support picture caching for multiple scroll roots. r=kvark
This patch implements the majority of the planned picture caching
improvements. It supports most of the functionality required to
(as a follow up) support OS compositor integration. It also improves
on the robustness and functionality of the previous picture caching
implementation.

There are some expected temporary performance regressions in
some cases (such as content that is constantly invalidating) and
during initial page render when many render targets must be drawn
to. These performance regressions will be resolved in follow up
commits by supporting multi-resolution tiles.

The scene is split into a number of slices, determined by the scroll
root of each primitive, which can be found by the primitive's
spatial node indices. If a scene contains too many slices, then
picture caching is disabled on the page, to avoid excessive texture
memory usage, and rendering falls back to rasterizing each frame.

The specific changes in this patch are:
    * Support tile caches for multiple scroll roots, allowing the
      entire page (including fixed divs and the main UI bar) to be
      cached in most cases, in addition to the main content.
    * Remove requirement to read tiles back from the framebuffer.
      Instead, they are drawn into the picture cache target tiles,
      and blitted to the screen. This is slightly slower than the
      existing picture caching when content is constantly changing,
      however this cost will disappear / become irrelevant when
      the OS compositor integration work is complete.
    * Switch picture cache render targets to be nearest sampled (they
      are always rendered 1:1) and support depth buffer targets.
    * Make use of the external scroll offset support to allow removal
      of the primitive correlation hacks in the previous picture
      caching implementation. Also allows storing of primitive
      dependencies in picture space rather than world space, which
      reduces floating point inaccuracies.
    * Determine if each tile and picture cache can be considered
      opaque. This is used to determine whether subpixel AA text
      rendering is available on a slice, and for rendering optimizations
      related to disabling blending and/or tile clears.
    * Use the clip chain instance results from the recent visibility pass
      work to determine clip chain dependencies. This results in fewer
      clip item dependencies in tiles, which is faster to check validity
      and reduces redundant invalidations.
    * Remove extra overhead during batching related to batch lists,
      and region iteration, as they are no longer required.
    * Support PrimitiveVisibilityMask during batching. This allows a
      single traversal of a picture (surface) root during batching to
      efficiently construct multiple alpha batcher objects (typically
      one per invalida tile).
    * Picture caching is now handled implicitly by WR, depending on
      the content of the scene. There is no requirement for client
      code to manually select which stacking context should be cached.
    * Simplify how clip chain / transform dependencies are tracked by
      picture cache tiles.
    * Support pushing / popping enclosing clip chain roots without
      the need for a stacking context / picture in some cases. This
      simplifies the logic to split the scene into multiple slices.

The main remaining work in this area is (a) extend the code to
optionally provide each slice as an input to the OS compositor
rather than drawing the tiles in WR, and (b) support multi-resolution
tiles so that we reduce the draw call, batching and render target
overhead in cases where much of the page content is changing.

Differential Revision: https://phabricator.services.mozilla.com/D34319

--HG--
extra : moz-landing-system : lando
2019-06-13 04:43:56 +00:00
Kartikaya Gupta
97d708b2a2 Bug 1501582 - Mark geckoview failures. r=gbrown
There are a number of failures, for which I've filed separate bugs.
And then a lot of fuzziness. I manually inspected the reftest analyzer
results on try pushes to distinguish failures vs fuzziness.

Depends on D34537

Differential Revision: https://phabricator.services.mozilla.com/D34538

--HG--
extra : moz-landing-system : lando
2019-06-11 16:12:03 +00:00
Botond Ballo
c5c9ac1c49 Bug 1546139 - Add a reftest. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D28729

--HG--
extra : moz-landing-system : lando
2019-04-25 14:25:48 +00:00
Botond Ballo
27b218cb75 Bug 1519007 - Avoid using setAsyncScrollOffset() to scroll out of bounds in tests. r=kats
Depends on D24826

Differential Revision: https://phabricator.services.mozilla.com/D25483

--HG--
extra : moz-landing-system : lando
2019-04-01 15:39:27 +00:00
Edwin Gao
4b22eba76a Bug 1536365, 1536363 - fine tune expected outcome of reftests on windows10-aarch64 r=jmaher
Relocated the `fuzzy-if` conditions for windows10-aarch64 in the files listed below, as the fuzzy condition was being overridden by conditions that came later.

Also tuned some of the values for pixel differences to reduce oranges.

Differential Revision: https://phabricator.services.mozilla.com/D25113

--HG--
extra : moz-landing-system : lando
2019-03-27 18:30:38 +00:00
Edwin Gao
5b28c50d53 Bug 1536362, 1536363, 1536365, 1536355, 1537997, 1537993, 1538001, 1538005, 1538009, 1538012, 1538017, 1538022, 1534717 - add conditions to reftests, crashtests and wpt reftets that experience issues on windows10-aarch64 r=jmaher
Disable or change the expected outcomes of:

- reftests
- jsreftests
- crashtest
- web-platform-reftests

for windows10-aarch64.

Differential Revision: https://phabricator.services.mozilla.com/D24741

--HG--
extra : moz-landing-system : lando
2019-03-25 18:17:37 +00:00
Csoregi Natalia
56705678f5 Backed out changeset 54cb3fe39194 (bug 1536362) for spidermonkey bustage. 2019-03-24 07:43:42 +02:00
Edwin Gao
9bfb259a16 Bug 1536362, 1536363, 1536365, 1536355, 1537997, 1537993, 1538001, 1538005, 1538009, 1538012, 1538017, 1538022, 1534717 - add conditions to reftests, crashtests and wpt reftets that experience issues on windows10-aarch64 r=jmaher,gbrown
Disable or change the expected outcomes of:

- reftests
- jsreftests
- crashtest
- web-platform-reftests

Differential Revision: https://phabricator.services.mozilla.com/D24295

--HG--
extra : moz-landing-system : lando
2019-03-24 05:17:07 +00:00
Glenn Watson
9d856b1091 Bug 1535976 - Add a fast path for common rounded rect clips to WR. r=kvark
Most rounded rect clips in real content are (a) axis aligned and
(b) have uniform radii.

When these conditions are met, we can run a fast path for clip
mask generation that uses significantly fewer ALU shader ops.

This is not typically a bottleneck on desktop GPUs, but can have
a large performance impact on mobile GPUs (and perhaps low end
integrated GPUs).

The Mali shader analyzer reports the slow path for the rounded
rect clip shader to be 94 cycles per fragment, while the fast
path is 10 cycles.

Differential Revision: https://phabricator.services.mozilla.com/D23817

--HG--
extra : moz-landing-system : lando
2019-03-19 19:48:13 +00:00
Bogdan Tara
84581c394f Backed out changeset 70440f88051f (bug 1535976) for /reftests/transform-3d/mask-layer* failures CLOSED TREE 2019-03-19 06:02:09 +02:00
Glenn Watson
7e08c517ab Bug 1535976 - Add a fast path for common rounded rect clips to WR. r=kvark
Most rounded rect clips in real content are (a) axis aligned and
(b) have uniform radii.

When these conditions are met, we can run a fast path for clip
mask generation that uses significantly fewer ALU shader ops.

This is not typically a bottleneck on desktop GPUs, but can have
a large performance impact on mobile GPUs (and perhaps low end
integrated GPUs).

The Mali shader analyzer reports the slow path for the rounded
rect clip shader to be 94 cycles per fragment, while the fast
path is 10 cycles.

Differential Revision: https://phabricator.services.mozilla.com/D23817

--HG--
extra : moz-landing-system : lando
2019-03-18 16:15:45 +00:00
Glenn Watson
43dfba16ac Bug 1524385 - Set the current clip chain on the stacking context item. r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D18527

--HG--
extra : moz-landing-system : lando
2019-02-06 04:35:37 +00:00
Kartikaya Gupta
eaf27c9c98 Bug 1515310 - Eliminate antialiasing fuzz from reftests. r=emilio
The text in the <th> element was causing intermittent fuzz due to
antialiasing. This patch removes the text to eliminate the problem.

Differential Revision: https://phabricator.services.mozilla.com/D18092

--HG--
extra : moz-landing-system : lando
2019-01-30 17:18:02 +00:00
Emilio Cobos Álvarez
a2231bd95c Bug 1498639 - Give WR the id of the scroll frame perspective scrolls relative to, and compute the right transform based on that. r=kats,kvark
I think this is as clean as it can get.

Differential Revision: https://phabricator.services.mozilla.com/D17848

--HG--
extra : moz-landing-system : lando
2019-01-28 23:41:08 +00:00
Emilio Cobos Álvarez
58caeeaa0e Bug 1519073 - Add a reftest to avoid regressing this in webrender. r=kats,botond
Differential Revision: https://phabricator.services.mozilla.com/D16185

--HG--
extra : moz-landing-system : lando
2019-01-15 09:14:31 +00:00
Botond Ballo
219f191a40 Bug 1430787 - Handle position:sticky inside a transform in AsyncCompositionManager. r=kats
Also enable tests that were previously disabled due to this.

Differential Revision: https://phabricator.services.mozilla.com/D15025

--HG--
extra : moz-landing-system : lando
2018-12-20 05:13:45 +00:00
Botond Ballo
8d292b768a Bug 1484884 - Fix async zoom transform computation for layout viewport. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D14020

--HG--
extra : moz-landing-system : lando
2018-12-09 00:53:20 +00:00
Botond Ballo
10aa613485 Bug 1501342 - Add a reftest. r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D13347

--HG--
extra : moz-landing-system : lando
2018-11-30 02:03:03 +00:00
Kartikaya Gupta
cca0a66cf0 Bug 1510639 - Add reftests for various scenarios involving sticky items inside scrollframes and transforms. r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D13367

--HG--
extra : moz-landing-system : lando
2018-11-29 14:57:24 +00:00
Emilio Cobos Álvarez
9d8364e9b2 Bug 1498639 - Mark the reftest random-if since it passes sometimes.
CLOSED TREE
2018-11-28 21:25:21 +01:00
Emilio Cobos Álvarez
966d9cdd49 Bug 1498639 - Add a reftest (failing in WR). r=kats
Differential Revision: https://phabricator.services.mozilla.com/D12217

--HG--
extra : moz-landing-system : lando
2018-11-28 19:07:35 +00:00
Daniel Holbert
03a5bc2fc3 Bug 1494801: Don't add additional "contain:paint" clipping on scroll frames. r=mattwoodrow
The contain:paint clipping would be redundant and hence unnecessary in this
scenario, because:
- Scroll frames already clip their descendant frames.
- contain:paint has other (non-clipping-related) effects that prevent
descendant frames from escaping the scrollframe ancestor.

So, no further clipping is required.

This is a behavior change - it works around an issue that makes us fail to
repaint mousewheel-scrolled content inside of any scrollframe that returns true
from ShouldApplyOverflowClipping().

Differential Revision: https://phabricator.services.mozilla.com/D12056

--HG--
extra : moz-landing-system : lando
2018-11-19 23:45:19 +00:00
Joel Maher
65cec285ac Bug 1507161 - adjust fuzzy-if statements for win10 tests that are failing on new windows10 ami image. r=ahal
adjust fuzzy-if statements for win10 tests that are fialing on new windows 10 ami image

Differential Revision: https://phabricator.services.mozilla.com/D11914

--HG--
extra : moz-landing-system : lando
2018-11-14 18:37:30 +00:00
Jeff Muizelaar
7f2c241eb3 Bug 1496670. Update layout/reftests/async-scrolling/reftest.list for #3173 2018-10-09 23:20:26 -04:00
Kartikaya Gupta
fea196e2e1 Bug 1496416 - Add a reftest for async-scrolling content with 2D rotation transforms. r=mstange 2018-10-04 16:12:16 -04:00
Kartikaya Gupta
a91d1a5df9 Back out bug 1415272 for introducing bug 1496416. r=me
The WR change was backed out upstream in WR PR 3165, but I'm landing it
here out-of-band so we don't have to wait for a regular WR update.
2018-10-04 12:13:13 -04:00
Kartikaya Gupta
cca06c782d Bug 1415272 - Enable perspective-scrolling-3 as it passes with WR PR 3154. r=jrmuizel
--HG--
extra : rebase_source : 42d14d3c930f4b9dd4b2e62101fddf4c0b646a7f
2018-10-03 11:39:18 -04:00
Matt Woodrow
a03f5b443d Bug 1492250 - Create a WebRender stacking context for nsDisplayStickyPosition to ensure that all descendants get the same positioning. r=mstange
MozReview-Commit-ID: 5JZo0z3LC7t

Differential Revision: https://phabricator.services.mozilla.com/D6354

--HG--
extra : moz-landing-system : lando
2018-09-21 00:53:19 +00:00
Gurzau Raul
2a3847037c Backed out changeset 471ccb1a377e (bug 1492250) for failing at /reftests/async-scrolling/reftest.list line 36 on a CLOSED TREE 2018-09-21 03:31:24 +03:00
Matt Woodrow
610b7fd423 Bug 1492250 - Create a WebRender stacking context for nsDisplayStickyPosition to ensure that all descendants get the same positioning. r=mstange
MozReview-Commit-ID: 5JZo0z3LC7t

Differential Revision: https://phabricator.services.mozilla.com/D6354

--HG--
extra : moz-landing-system : lando
2018-09-20 23:18:07 +00:00
Coroiu Cristina
fc2422e4c1 Backed out changeset a0179bdde496 (bug 1492250) for reftest failures at tests/layout/reftests/async-scrolling/sticky-pos-scrollable-7.html on a CLOSED TREE 2018-09-20 13:21:44 +03:00
Matt Woodrow
6ee20ff77d Bug 1492250 - Create a WebRender stacking context for nsDisplayStickyPosition to ensure that all descendants get the same positioning. r=mstange
MozReview-Commit-ID: 5JZo0z3LC7t

Differential Revision: https://phabricator.services.mozilla.com/D6354

--HG--
extra : moz-landing-system : lando
2018-09-20 03:40:11 +00:00
Kashav Madan
a7079dd4cd Bug 1465616 - Add failing fixed-position async-zoom reftests. r=botond
When async-zooming, the compositor applies an invalid offset transformation to
position:fixed elements, causing them to be positioned incorrectly until a
repaint occurs.

MozReview-Commit-ID: IZEN1gtpbIA

--HG--
extra : rebase_source : c74df0ccdb44b4ad54c366eefbac1e46bab9dc7b
2018-08-03 14:20:53 -04:00
Kashav Madan
98a6e0b59f Bug 1465616 - Add async-scroll reftests. r=botond
The first set of tests test that fixed/sticky position elements are no longer
attached to the visual viewport (i.e., that they go "out of view" when the
visual viewport is scrolled) and the second set of tests test that
fixed/sticky position elements are attached to the layout viewport (i.e., that
they "follow" the layout viewport when it's scrolled).

MozReview-Commit-ID: 6H2f0oz9lW7

--HG--
extra : rebase_source : c6e1beebe58883c0e500c28d579eb187c2cc8ea1
2018-07-20 17:48:30 -04:00
L. David Baron
1e88f0f003 Bug 1369941: Replace single integers N in fuzzy() and fuzzy-if() with 0-N ranges. r=dholbert
This patch was written entirely by the following script:

  #!/bin/bash

  if [ ! -d "./.hg" ]
  then
    echo "Not in a source tree." 1>&2
    exit 1
  fi

  find . -regex '.*\(ref\|crash\)test.*\.list' | while read FILENAME
  do
    echo "Processing ${FILENAME}."
    # The following has four substitutions:
    # * The first one replaces the *first* argument to fuzzy() when it doesn't
    #   have a - in it, by replacing it with an explicit 0-N range.
    # * The second one does the same for the *second* argument to fuzzy().
    # * The third does the same for the *second* argument to fuzzy-if().
    # * The fourth does the same for the *third* argument to fuzzy-if().
    #
    # Note that this is using perl rather than sed because perl doesn't
    # support non-greedy matching, which is needed for the first argument to
    # fuzzy-if.
    perl -pi -e 's/(fuzzy\()([^ ,()-]*)(,[^ ,()]*\))/${1}0-${2}${3}/g;s/(fuzzy\([^ ,()]*,)([^ ,()-]*)(\))/${1}0-${2}${3}/g;s/(fuzzy-if\([^ ]*?,)([^ ,()-]*)(,[^ ,()]*\))/${1}0-${2}${3}/g;s/(fuzzy-if\([^ ]*?,[^ ,()]*,)([^ ,()-]*)(\))/${1}0-${2}${3}/g' "${FILENAME}"
  done

Differential Revision: https://phabricator.services.mozilla.com/D2974

--HG--
extra : moz-landing-system : lando
2018-08-09 20:10:21 +00:00
Jonathan Kew
71787557ea Bug 1392147 - Test/expectation adjustments for the change in default font on Android. r=xidorn 2018-05-23 13:52:08 +01:00
Kartikaya Gupta
5cc1ce5338 Bug 1425565 - Add a reftest. r=mstange
MozReview-Commit-ID: 4LATDpITobv

--HG--
extra : rebase_source : 98d9cf068359bc2f58a06b45c7d37bbf13e1bda1
2018-05-18 15:19:47 -04:00
Kartikaya Gupta
32a1261d0d Bug 1322845 - Update reftest annotations for WebRender on macOS. r=Gankro
MozReview-Commit-ID: 6NufRyb41ia
2018-05-08 22:42:51 -04:00
Andreea Pavel
8daddd690f Backed out 2 changesets (bug 1322845) for failing reftest background-repeat-large-area.html == background-repeat-large-area-ref.html on a CLOSED TREE
Backed out changeset 4fd46cd822bf (bug 1322845)
Backed out changeset abd41b3e63e7 (bug 1322845)
2018-05-09 05:13:08 +03:00
Kartikaya Gupta
93650c1b04 Bug 1322845 - Update reftest annotations for WebRender on macOS. r=Gankro
MozReview-Commit-ID: 6NufRyb41ia
2018-05-08 20:39:51 -04:00
Kartikaya Gupta
b19c697041 Bug 1458598 - Override scrollframes with their descendant reference frames. r=mstange
The test case has a fixed item A inside a scrollframe B which is inside
a reference frame C which is inside the root scrollframe D. The
ClipManager code currently uses D's scrollid as the scrolling ancestor
for A, because the gecko display list's ASR is set up that way. However,
we really want to set C as the scrolling ancestor, because otherwise the
item A gets hoisted out of C and the transform from C doesn't get
applied to it. This patch ensures that when we enter C, we install an
override so that anything that would have used D's scrollid ends up
using C's, which results in the correct behaviour.

MozReview-Commit-ID: 31tscfT4xWW

--HG--
extra : rebase_source : 03df2fa5519b2592a2c9f598af0f3f1500773718
2018-05-08 09:16:29 -04:00
Kartikaya Gupta
1eb717ccf5 Bug 1377187 - Rewrite the clipping code to use the new clipchain API. r=mstange
The clip chain API in webrender allows us to build the clip state in WR
so that it matches the gecko display list more closely. This patch throws
away ScrollingLayersHelper.* and introduces ClipManager.* which pushes
the clip state to WR using the new method. A quick summary of the new
method is below.

Each display item in gecko has a DisplayItemClipChain which is a chain
of individual clips. The individual clips are defined in WR, and the
clip ids for those clips are put into a WR clip chain using the new
define_clip_chain API. Furthermore, each clip chain can also have a
parent chain, which is used to link a DisplayItemClipChain to the parent
display item's DisplayItemClipChain. This allows the WR clip state to
closely match the structure of the gecko display list clip state,
resulting in more correct behaviour.

There are a few other major changes that are lumped into this patch and
that were tricky to separate into their own patches:
- The collapsing of WrScrollId and WrStickyId into WrClipId. On the WR
  side all the clip ids are treated the same anyway. Trying to preserve
  the arbitrary distinction on the gecko side was resulting in
  increasingly convoluted code, with different kinds of Variant<..>
  types in the method signatures. It was much simpler and resulted in a
  bunch of code deletion to just collapse the types.
- Moving the "override" mechanism from WebRenderAPI to ClipManager. The
  override mechanism (explained in ClipManager.h) was simplified by
  moving it into ClipManager, because it removed the need for tracking
  additional clip stack state in WebRenderAPI.

MozReview-Commit-ID: GGbdFyJGprK

--HG--
extra : rebase_source : baa56ff179e917b0ab5a5c186a3a415761f8050a
2018-05-08 09:08:39 -04:00
Kartikaya Gupta
690111347c Bug 1456340 - Increase fuzz slightly for webrender. r=me
DONTBUILD because this is trivial
2018-04-26 10:40:11 -04:00
Kartikaya Gupta
81285aa764 Bug 1454817 - Fuzz an intermittent failure introduced by WR PR 2651. r=kats
MozReview-Commit-ID: 4AGjRKvl5lU

--HG--
extra : rebase_source : c1d890d85d46c1501077264ff2fd11a55cdfb408
2018-04-23 09:24:47 -04:00
Kartikaya Gupta
cdf40babd0 Bug 1454794 - Fuzz an intermittent failure introduced by WR PR 2651. r=me 2018-04-19 14:31:59 -04:00