Commit Graph

466 Commits

Author SHA1 Message Date
Doug Thayer
92c9cb3613 Bug 1538540 - Sanity check frames after TextureCache clears r=bholley
In trying to diagnose bug 1538540, I'm hitting my limits as far as
simply staring at the code and trying to work out possible ways to
hit the crash goes. This assertion will split the search space into
clear-related causes and non-clear-related causes to narrow things
down.

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

--HG--
extra : moz-landing-system : lando
2019-04-30 23:58:23 +00:00
Kartikaya Gupta
140fb1c366 Bug 1547097 - Remove ReadPixelsFormat. r=kvark
The Rgba8 enum value is redundant with the Standard(ImageFormat::RGBA8) value,
this patch collapses the former into the latter. Which then makes the entire
ReadPixelsFormat redundant, so we can get rid of it completely.

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

--HG--
extra : moz-landing-system : lando
2019-04-30 17:43:41 +00:00
Nicolas Silva
c55d3f681a Bug 1547290 - Mark CaptureConfig::file_path allow(dead_code) on a CLOSED TREE. r=me
--HG--
extra : histedit_source : 9188555b2ccaeb30a135ed4aecfb28b01cfd478f
2019-04-30 09:39:15 +02:00
Nicolas Silva
9008946909 Bug 1547290 - Dump the render graph in SVG format in frame captures. r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D29005

--HG--
extra : source : b4afebeb22461c276463a919880efdbe0126695d
2019-04-29 16:11:12 +02:00
Glenn Watson
3ba7bef4b0 Bug 1547632 - Remove unused local clip rect stored on WR picture primitives. r=emilio,kvark
Differential Revision: https://phabricator.services.mozilla.com/D29148

--HG--
extra : moz-landing-system : lando
2019-04-29 16:16:11 +00:00
Dzmitry Malyshau
3aa374797c Bug 1525641 - Revise WR backface visibility semantics, separate picture and primitive logic r=gw
This changes our backface visibility semantics to a slightly more complex rule,
as described by Matt (and reinterpret by me in the context of WR) in bug 1525641 during our work week.
We are now propagating is_backface_visible to pictures and evaluate it in the context of
the local transform for a picture if it's outside of preserve-3d context.
We also refactor get_relative_transform() a bit.

Note: this fixes all of the existing backface-visibility bugs: 1525641, 1546110, 1546818
It also passes the Wrench tests, but the try push is still pending for surprises.

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

--HG--
rename : gfx/wr/wrench/reftests/backface/backface-leaf.yaml => gfx/wr/wrench/reftests/backface/backface-3d-leaf.yaml
extra : moz-landing-system : lando
2019-04-29 16:45:38 +00:00
Nicolas Silva
8471eabd7f Bug 1546126 - Fix the max blob tile limit logic. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D28991

--HG--
extra : moz-landing-system : lando
2019-04-26 15:38:54 +00:00
Kartikaya Gupta
336a506446 Bug 1542826 - Add more debug flags to disable various things. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D28356

--HG--
extra : moz-landing-system : lando
2019-04-25 19:29:15 +00:00
Kartikaya Gupta
288d1e8e3e Bug 1542826 - Allow enabling/disabling the debug server at runtime. r=gw
This adds a RendererOption flag to control whether the debug server is
enabled. This allows the debug server feature to be built without
enabling the feature by default; it can then be enabled on a
per-renderer basis via the RendererOption.

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

--HG--
extra : moz-landing-system : lando
2019-04-25 19:28:32 +00:00
Kartikaya Gupta
9fc3672251 Bug 1542826 - Reduce featureset enabled on image crate. r=gw
The debugger in WebRender uses the image crate to generate PNGs, and so
it only really needs the png codec feature from the image crate.

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

--HG--
extra : moz-landing-system : lando
2019-04-25 19:28:23 +00:00
Dzmitry Malyshau
681ee8a0d0 Bug 1546371 - Switch render backend and API away from FramebufferPixel r=gw
The gist of the problem I introduced with the framebuffer coordinate system is that we provided the window rect (effectively) twice:
  1. when computing the document rectangle (and Y-inverting it)
  2. when rendering

If between these points the window got resized (during scene building), we end up with our document aligned to bottom left corner.
The user expects content to still be aligned to the top left, so that's what is visible as a bug.

The change here switched scene building to only care about device coordinate space, restraining the framebuffer coordinates to be mostly
an implementation detail of the renderer/device (the way it was originally meant to be, when introduced). This way the current window size
is only considered once during rendering.

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

--HG--
extra : moz-landing-system : lando
2019-04-25 13:02:47 +00:00
Lee Salzman
e7d7a7b122 Bug 1414961 - check for EXT_blend_func_extended when using GL ES. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D28569

--HG--
extra : moz-landing-system : lando
2019-04-24 05:15:04 +00:00
Razvan Maries
5f610a07b3 Backed out 8 changesets (bug 1542826) for build bustages. CLOSED TREE
Backed out changeset f3516e1416f0 (bug 1542826)
Backed out changeset 1dba743761b7 (bug 1542826)
Backed out changeset a02e469be7b3 (bug 1542826)
Backed out changeset 5118d628ec89 (bug 1542826)
Backed out changeset 5744891efeef (bug 1542826)
Backed out changeset e5af8cd01080 (bug 1542826)
Backed out changeset 314f9bc7dafe (bug 1542826)
Backed out changeset 7df230ea5122 (bug 1542826)
2019-04-23 23:14:06 +03:00
Kartikaya Gupta
d3c9a80c63 Bug 1542826 - Add more debug flags to disable various things. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D28356

--HG--
extra : moz-landing-system : lando
2019-04-23 19:56:23 +00:00
Kartikaya Gupta
6227460f41 Bug 1542826 - Allow enabling/disabling the debug server at runtime. r=gw
This adds a RendererOption flag to control whether the debug server is
enabled. This allows the debug server feature to be built without
enabling the feature by default; it can then be enabled on a
per-renderer basis via the RendererOption.

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

--HG--
extra : moz-landing-system : lando
2019-04-23 19:55:11 +00:00
Kartikaya Gupta
343a8913bf Bug 1542826 - Reduce featureset enabled on image crate. r=gw
The debugger in WebRender uses the image crate to generate PNGs, and so
it only really needs the png codec feature from the image crate.

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

--HG--
extra : moz-landing-system : lando
2019-04-23 19:55:06 +00:00
Alexis Beingessner
8289701d8c Bug 1536121 - rearchitect the webrender display-list. r=gw
disclaimer: this isn't an *amazing* cleanup, but more of a major step that
unlocks the ability to do more minor cleanups and refinements. There's some
messy things and inconsistencies here and there, but we can hopefully iron
them out over time.

1. The primary change here is to move from
    struct { common_fields, enum(specific_fields) }
to
    enum (maybe_common_fields, specific_fields)

most notably this drops the common fields from a ton of things
that don't need them PopXXX, SetXXX, ClipChain, etc.

2. Additionally some types have had some redundant states shaved off,
for instance, rect no longer has *both* bounds and a clip_rect, as
the intersection of the two can be used. This was done a bit conservatively
as some adjustments will need to be done to the backend to fully eliminate
some states, and this can be done more incrementally.

2.5. As a minor side-effect of 2, we now early-reject some primitives whose
bounds and clip_rect are disjoint.

3. A HitTest display item has been added, which is just a Rect without
color. In addition to the minor space wins from this, this makes it much
easier to debug display lists

4. Adds a bunch of comments to the display list, making it easier to understand
things.

The end result of all these changes is a significantly smaller and easier to
understand display list. Especially on pages like gmail which have so many
clip chains. However this ultimately just makes text an even greater percentage
of pages (often 70-80%).

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

--HG--
extra : moz-landing-system : lando
2019-04-23 17:29:58 +00:00
Alexis Beingessner
bd5e102438 Bug 1536121 - cleanup display list code a little bit to prep for refactor. r=gw
* make all enums repr(u8) (compiler bug blocking this long fixed)
* add display list stats feature
* remove cache markers (abandoned design)
* don't always push empty SetFilters before PushStackingContext
* remove dead pub methods

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

--HG--
extra : moz-landing-system : lando
2019-04-23 17:29:38 +00:00
Glenn Watson
aad259b402 Bug 1546286 - Fix external scroll offset handling for perspective elements. r=emilio
External scroll offsets are not propagated across reference frames.

When a perspective element scrolls relative to an ancestor scroll
frame, remove the effect of any external scroll offset during that
offset calculation.

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

--HG--
extra : moz-landing-system : lando
2019-04-23 09:25:39 +00:00
Dorel Luca
0caaab0f1e Backed out 2 changesets (bug 1536121) for Reftest failures
Backed out changeset 0fc395a2ac71 (bug 1536121)
Backed out changeset 430032511561 (bug 1536121)

--HG--
extra : rebase_source : 95c710b24ec5b76da20ddb5573036c8c73873e9e
2019-04-23 10:05:14 +03:00
Alexis Beingessner
ee4e394f45 Bug 1536121 - rearchitect the webrender display-list. r=gw
disclaimer: this isn't an *amazing* cleanup, but more of a major step that
unlocks the ability to do more minor cleanups and refinements. There's some
messy things and inconsistencies here and there, but we can hopefully iron
them out over time.

1. The primary change here is to move from
    struct { common_fields, enum(specific_fields) }
to
    enum (maybe_common_fields, specific_fields)

most notably this drops the common fields from a ton of things
that don't need them PopXXX, SetXXX, ClipChain, etc.

2. Additionally some types have had some redundant states shaved off,
for instance, rect no longer has *both* bounds and a clip_rect, as
the intersection of the two can be used. This was done a bit conservatively
as some adjustments will need to be done to the backend to fully eliminate
some states, and this can be done more incrementally.

2.5. As a minor side-effect of 2, we now early-reject some primitives whose
bounds and clip_rect are disjoint.

3. A HitTest display item has been added, which is just a Rect without
color. In addition to the minor space wins from this, this makes it much
easier to debug display lists

4. Adds a bunch of comments to the display list, making it easier to understand
things.

The end result of all these changes is a significantly smaller and easier to
understand display list. Especially on pages like gmail which have so many
clip chains. However this ultimately just makes text an even greater percentage
of pages (often 70-80%).

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

--HG--
extra : moz-landing-system : lando
2019-04-23 02:32:50 +00:00
Alexis Beingessner
e16f06e3b9 Bug 1536121 - cleanup display list code a little bit to prep for refactor. r=gw
* make all enums repr(u8) (compiler bug blocking this long fixed)
* add display list stats feature
* remove cache markers (abandoned design)
* don't always push empty SetFilters before PushStackingContext
* remove dead pub methods

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

--HG--
extra : moz-landing-system : lando
2019-04-23 02:32:48 +00:00
Glenn Watson
160bd46b0d Bug 1543356 - Visual glitches on resizing the browser with WebRender. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D27978

--HG--
extra : moz-landing-system : lando
2019-04-18 15:28:39 +00:00
Glenn Watson
d8c42a8290 Bug 1545006 - Use external scroll offsets to move primitives and clips into local space. r=kats
Use the external scroll offsets provided by Gecko to:
 (a) Offset primitives and clips by accumulated scroll offset.
 (b) Adjust the scroll transforms and hit test results.

This allows primitives and clips to be stored in a true local space,
that is consistent between display lists, even if scrolling has
occurred. This is a step towards planned picture caching improvements.

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

--HG--
extra : moz-landing-system : lando
2019-04-17 21:06:19 +00:00
Nicolas Silva
ddb01e5eb8 Bug 1519106 - Converge towards the max number of tiles faster. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D27728

--HG--
extra : moz-landing-system : lando
2019-04-17 14:41:47 +00:00
Nicolas Silva
d64ddb564e Bug 1519106 - Increase the maximum number of rasterized blob images per transaction. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D16190

--HG--
extra : moz-landing-system : lando
2019-04-17 14:43:37 +00:00
Doug Thayer
a632894d10 Bug 1539629 - Fix WR capture for multi-document use r=kvark
We fail the assertion at the beginning of GpuCache::begin_frame
right now because we run the extract_updates call after building
frames for every document. This just moves the extract_updates
work to be per-document.

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

--HG--
extra : moz-landing-system : lando
2019-04-15 18:33:17 +00:00
Nicolas Silva
bd2c8b86cd Bug 1544374 - Make FilterOp not copy. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D27480

--HG--
extra : moz-landing-system : lando
2019-04-16 07:43:04 +00:00
Barret Rennie
96b41444c7 Bug 1444434 - Bind pixel pack buffer before trying to map it for readback r=gw
Differential Revision: https://phabricator.services.mozilla.com/D26946

--HG--
extra : moz-landing-system : lando
2019-04-15 23:39:10 +00:00
Doug Thayer
56b32c7614 Bug 1538710 - Remove disable-shrink pref r=bholley
Differential Revision: https://phabricator.services.mozilla.com/D25134

--HG--
extra : moz-landing-system : lando
2019-04-15 22:34:51 +00:00
Doug Thayer
452bc370df Bug 1538710 - Move texture_cache cleanup to beginning of all frames r=bholley
... and ensure that, if we do cleanup, we generate frames for every document.

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

--HG--
extra : moz-landing-system : lando
2019-04-15 22:34:43 +00:00
Doug Thayer
066df32bb7 Bug 1538710 - Add WR API endpoint for sending multiple transactions r=nical
We discussed this a bit in Orlando. Essentially, we want to run cleanup
operations in texture_cache before all documents' frames, and then be
able to ensure that every document generates a frame, because otherwise
we will run into problems with evicted cache items used by non-updating-
but-still-rendering documents. Accordingly, we need an endpoint to
lump all of the transactions that generate frames together. This adds
that and builds out all of the plumbing necessary.

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

--HG--
extra : moz-landing-system : lando
2019-04-15 22:34:13 +00:00
Daniel Varga
bf8c3286c2 Backed out 4 changesets (bug 1538710) for webrender-lint
Backed out changeset 6f3f506c7740 (bug 1538710)
Backed out changeset 1a529f967061 (bug 1538710)
Backed out changeset afa5cc2c6032 (bug 1538710)
Backed out changeset ab2083ff97f4 (bug 1538710)
2019-04-15 23:18:19 +03:00
Doug Thayer
1bcffd5a5f Bug 1538710 - Remove disable-shrink pref r=bholley
Differential Revision: https://phabricator.services.mozilla.com/D25134

--HG--
extra : moz-landing-system : lando
2019-04-15 18:09:10 +00:00
Doug Thayer
20361c4f24 Bug 1538710 - Move texture_cache cleanup to beginning of all frames r=bholley
... and ensure that, if we do cleanup, we generate frames for every document.

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

--HG--
extra : moz-landing-system : lando
2019-04-15 18:08:47 +00:00
Doug Thayer
3efeb79ae5 Bug 1538710 - Add WR API endpoint for sending multiple transactions r=nical
We discussed this a bit in Orlando. Essentially, we want to run cleanup
operations in texture_cache before all documents' frames, and then be
able to ensure that every document generates a frame, because otherwise
we will run into problems with evicted cache items used by non-updating-
but-still-rendering documents. Accordingly, we need an endpoint to
lump all of the transactions that generate frames together. This adds
that and builds out all of the plumbing necessary.

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

--HG--
extra : moz-landing-system : lando
2019-04-15 18:56:04 +00:00
Glenn Watson
cb4bba0e06 Bug 1513019 - Fix plane splitting with complex, axis-aligned transforms. r=emilio,kats
Differential Revision: https://phabricator.services.mozilla.com/D27462

--HG--
extra : moz-landing-system : lando
2019-04-15 14:00:23 +00:00
shindli
ed9c6ae936 Merge mozilla-central to inbound. a=merge CLOSED TREE 2019-04-12 19:19:43 +03:00
Nicolas Silva
c341b17328 Bug 1535273 - Remove webrender::util::rect_from_points. r=kats 2019-04-12 16:08:39 +02:00
Glenn Watson
6348da8082 Bug 1543844 - Fix incorrect max scale detection in WR border rendering. r=emilio
The local rect for border segments is not solely determined by
the widths and/or radius. Instead of determining the max scale
based on those parameters, use the calculated border segment
rects to determine an appropriate max scale factor.

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

--HG--
extra : moz-landing-system : lando
2019-04-12 09:58:24 +00:00
Jean-Yves Avenard
d91ea6eb87 Bug 1540581 - P9. Add R16G16 type and update of P010/P016 resource update. r=sotaro
Differential Revision: https://phabricator.services.mozilla.com/D26464

--HG--
extra : moz-landing-system : lando
2019-04-11 12:37:23 +00:00
Jean-Yves Avenard
c6e2001c75 Bug 1493898 - P1. Add preliminary BT2020 colorspace support. r=mattwoodrow
Only active with webrender and AL.

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

--HG--
extra : moz-landing-system : lando
2019-04-11 12:40:40 +00:00
Alexis Beingessner
57e741babc Bug 1525642 - ensure that w~=1 when assuming a transform is just a translation. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D27163

--HG--
extra : moz-landing-system : lando
2019-04-11 20:52:21 +00:00
Glenn Watson
2e71f94491 Bug 1542972 - Reduce use of world_content_transform in WR. r=emilio
The way that world content transform is calculated has some
inconsistencies related to transform flattening, compared to
the get_relative_transform implementation.

Reducing usage of this field will make it simpler to take
advantage of the external scroll offset, which is needed for
some of the planned picture caching improvements.

This patch removes the simple uses of world_content_transform,
but there are still a small number of more complicated uses that
need to be handled separately.

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

--HG--
extra : moz-landing-system : lando
2019-04-09 10:40:35 +00:00
Glenn Watson
f7a2dbd20e Bug 1542696 - WR crashes on debug_assert! with out-of-process iframes r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D26611

--HG--
extra : moz-landing-system : lando
2019-04-08 21:39:19 +00:00
Dorel Luca
d0e6f0880f Backed out 3 changesets (bug 1538710) for Wrench bustage. CLOSED TREE
Backed out changeset 9a80bc4d626a (bug 1538710)
Backed out changeset f5f916011032 (bug 1538710)
Backed out changeset 585b51bba30d (bug 1538710)
2019-04-08 19:09:49 +03:00
Doug Thayer
e096909f4c Bug 1538710 - Remove disable-shrink pref r=bholley
Differential Revision: https://phabricator.services.mozilla.com/D25134

--HG--
extra : moz-landing-system : lando
2019-04-08 15:25:47 +00:00
Doug Thayer
9225547960 Bug 1538710 - Move texture_cache cleanup to beginning of all frames r=bholley
... and ensure that, if we do cleanup, we generate frames for every document.

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

--HG--
extra : moz-landing-system : lando
2019-04-08 15:24:03 +00:00
Doug Thayer
33295b9e8b Bug 1538710 - Add WR API endpoint for sending multiple transactions r=nical
We discussed this a bit in Orlando. Essentially, we want to run cleanup
operations in texture_cache before all documents' frames, and then be
able to ensure that every document generates a frame, because otherwise
we will run into problems with evicted cache items used by non-updating-
but-still-rendering documents. Accordingly, we need an endpoint to
lump all of the transactions that generate frames together. This adds
that and builds out all of the plumbing necessary.

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

--HG--
extra : moz-landing-system : lando
2019-04-08 15:23:20 +00:00
Alexis Beingessner
432d3446dd Bug 1527751 - properly apply transformed clips in brush shader. r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D26332

--HG--
extra : moz-landing-system : lando
2019-04-05 17:16:55 +00:00