Commit Graph

60 Commits

Author SHA1 Message Date
Kartikaya Gupta
c4fd192cd9 Bug 1376215 - Stop exposing the WrClipRegionToken in WebRenderAPI.h APIs. r=jrmuizel
No functional changes intended in this patch. It merely simplifies the
additional patch that we'll need to update gecko past WR cset 0bf6655,
and saves some potential manual rebasing work.

MozReview-Commit-ID: Km8dBotP3NQ
2017-06-26 07:49:52 -04:00
Carsten "Tomcat" Book
050bc3b644 Backed out changeset 504e5b1de987 (bug 1376215) for bustage 2017-06-26 13:07:09 +02:00
Kartikaya Gupta
44a6c1a913 Bug 1376215 - Stop exposing the WrClipRegionToken in WebRenderAPI.h APIs. r=jrmuizel
No functional changes intended in this patch. It merely simplifies the
additional patch that we'll need to update gecko past WR cset 0bf6655,
and saves some potential manual rebasing work.

MozReview-Commit-ID: AgMyNapY2Og
2017-06-25 14:45:54 -04:00
Kartikaya Gupta
9ad40e6fb9 Bug 1372603 - Push the layer's local clip rect outside the stacking context. r=jrmuizel
For various reasons, we want to be pushing the layer's local clip rect
outside of the stacking context rather than inside it. Not only is this
more correct with respect to the semantics of the layer tree, we also
need it in order to properly handle fixed-positioning of layers with
async scrolling.

This patch does the bulk of the work to make this happen. Most of the code
in the individual layer classes to process the layer's local clip rect
is removed, and instead a function in ScrollingLayersHelper is added to
deal with it. There are a couple of places that individual layer classes
still handle this but those will be removed in future patches. Note that
the individual layer classes still need to provide a clip rect of some
sort in order to push their display items, and now they simply use their
visible region bounds for this purpose.

MozReview-Commit-ID: IBmfUdJwYx1
2017-06-14 15:43:16 -04:00
Kartikaya Gupta
cc1457011b Bug 1361497 - Push scrolling clips for scrollable layers in the layer tree. r=jrmuizel
This adds an RAII helper and uses it in RenderLayer functions. When APZ
is enabled, the RAII helper pushes a scrolling clip for each scrollable
metrics on the layer. It also pops off the scrolling clips on
destruction. Note that this should happen before any other things are
pushed into the WR display list for the rendering of a layer, since
those things should be subjected to the enclosing scrolling clips.
If APZ is disabled, this skips pushing the scrolling clips.

MozReview-Commit-ID: 1qv9egKbbok
2017-05-12 13:58:15 -04:00
Alexis Beingessner
6ec49a9792 Bug 1361751 - Update gecko bindings to webrender to reflect changes in PR 1181. r=kats
MozReview-Commit-ID: Fxt4sNm4vxa
2017-05-08 13:52:16 -04:00
Kartikaya Gupta
41854dac48 Bug 1361356 - Properly unapply the stacking context transform and origin translation when building mask layers. r=ethlin
MozReview-Commit-ID: B5XzX6Tq4PZ
2017-05-05 11:44:49 -04:00
Kartikaya Gupta
f26d6d162e Bug 1360246 - Remove the RelativeToParent functions by propagating StackingContextHelper chains. r=nical
The only remaining callers of RelativeToParent() are in
StackingContextHelper itself, which we can remove now by having the SCH
take a parent SCH and use it instead of RelativeToParent(). This patch
implements this change.

This makes a failing test pass, because of how preserve-3d container
layers work. Specifically, preserve-3d container layers render their
descendants in z-order, not in tree order. If those children were assuming
that their parent had already pushed a stacking context, that assumption
may have been false because the parent might have not yet been rendered
because of z-ordering. By using the StackingContextHelper chain instead
of the layer tree ancestry, we fix the stacking-context-relative coordinates
being used in the descendant subtree of preserve-3d container layers.

MozReview-Commit-ID: HzZvBuAlMdB
2017-05-03 08:48:08 -04:00
Kartikaya Gupta
b87a58caed Bug 1360246 - Propagate a StackingContextHelper all the way through the RenderLayer traversal. r=nical
This is needed in part 3 to update WebRenderTextLayer::RenderLayer, so
that it no longer assumes the parent container layer has pushed a
stacking context, and instead explicitly uses the StackingContextHelper.

MozReview-Commit-ID: 9twUmDgUipX
2017-05-03 08:48:06 -04:00
Ethan Lin
77f467b84f Bug 1360449 - Remove duplicate WrManager functions. r=kats 2017-05-01 00:59:26 +08:00
Kartikaya Gupta
ed6e5a8d25 Bug 1359842 - Add a StackingContextHelper to reduce duplicated code. r=nical
This class is a RAII class that can be used to push a stacking context
with properties from a WebRenderLayer. It can also then be used to
convert rects in the layer coordinate system to be relative to the
stacking context, which is what we want for passing to WR.

MozReview-Commit-ID: 1WVrfRYqLqc
2017-04-27 12:04:25 -04:00
Kartikaya Gupta
52f3a8a0d9 Bug 1359842 - Convert RelativeToParent to deal with typed units. r=nical
As we are often converting from LayoutDevicePixel to LayerPixel types
in WebRenderDisplayItem code, I added a convenience overload of
RelativeToParent that takes a LayoutDeviceRect and returns a LayerRect,
even though this is a potential footgun if abused.

MozReview-Commit-ID: DABAWdOBsbV
2017-04-27 12:04:13 -04:00
Kartikaya Gupta
6af3a99399 Bug 1359842 - Convert some functions to deal in LayerRect instead of gfx::Rect. r=nical
MozReview-Commit-ID: LRXgYseBRzR
2017-04-27 12:04:12 -04:00
Kartikaya Gupta
23a6b280d3 Bug 1359748 - Remove commented-out code. r=jrmuizel
MozReview-Commit-ID: 2f67oNaa8Tk
2017-04-27 11:28:23 -04:00
sotaro
2f88c289f9 Bug 1357644 - Use wr::ExternalImageId instead of uint64_t for external image id r=nical 2017-04-19 18:59:53 +09:00
Ethan Lin
ea8636c2c0 Bug 1349500 - Add webrender support for BulletFrame path type. r=mchang 2017-04-18 14:26:41 +08:00
Ethan Lin
637a373447 Bug 1355012 - Add mask layer support for WebRenderDisplayItemLayer. r=kats 2017-04-13 15:13:51 +08:00
Jeff Muizelaar
57f7b86df9 Bug 1345142. Move Image discard back to child. r=nical
This gets rid of the implicit discard that happens on the parent side
when using external images.
2017-04-12 15:26:23 -04:00
Kartikaya Gupta
d0c75fa3fc Bug 1355791 - Instead of pushing a scroll layer, put the clip mask into the existing item clip. r=jrmuizel
MozReview-Commit-ID: jdKEkamSs4
2017-04-12 11:08:39 -04:00
Kartikaya Gupta
3cd9ae859b Bug 1355602 - Decouple pushing scroll layers from pushing stacking contexts. r=jrmuizel
This removes the call to push_scroll_layer in wr_push_stacking_context, so that
it's now possible to push a stacking context without necessarily pushing a
scroll layer. There is already a separate function to push a scroll layer so the
call sites can do that. This patch just changes all the call sites that were
pushing a stacking context to also push a scroll layer, so there should be no
functional change. Future patches can remove the spurious scroll layers.

MozReview-Commit-ID: FtCkc9JQd8l
2017-04-11 17:04:59 -04:00
David Anderson
7a44341bcc Improve pixel fill statistics in the D3D11 compositor overlay. (bug 1352151 part 6, r=bas)
This introduces two new statistics to the overlay. The first is the ratio of
pixel shader invocations (as determined by the GPU) to the number of pixels we
determined need to be redrawn. The ideal ratio is 1.0, indicating that we
filled every pixel exactly once. Anything over 1.0 indicates overdraw.

We also add the ratio of shaded pixels to window size. This indicates how well
we computed the invalid region, and whether or not we overfilled that
region.

Note that the OpenGL and Basic compositors do not yet query the GPU for
this statistic, so they will estimate shader invocations by the area of
DrawQuad calls.

Finally, we remove the feature where layout can request the most
recent overdraw statistic. It was not implemented on all compositors, and the
only test that used it was disabled.
2017-04-10 19:44:46 -07:00
Ryan Hunt
6ecc4704b8 Bug 1345975 - Clean up WebRenderLayer code r=kats
MozReview-Commit-ID: DWlAaJwuxlD
2017-03-09 12:35:33 -05:00
Ryan Hunt
d7f00f1fa2 Bug 1345907 - Use clip region instead of clip rect r=kats 2017-03-09 11:57:06 -05:00
Mason Chang
01aeb6725a Bug 1345523 - Clean up duplicated WebRenderLayer code. r=kats 2017-03-08 10:32:53 -08:00
Jeff Muizelaar
677ccdea94 Bug 1344396. Build the display lists directly. r=kats
This is a largely uninteresting patch that just uses the DisplayListBuilder
directly. A wonderful cleanup patch will come after this. One of the more
interesting pieces is the use of PushBuiltDisplayList. This is needed for
handling empty transactions. See https://github.com/servo/webrender/pull/934
for more info.
2017-03-06 23:16:30 -05:00
Jeff Muizelaar
250229ef91 Bug 1343770. Separate out Parent commands from Child commands. r=kats
This basically just splits the enum in two and does the necessary plumbing. The
worst part is that now DisplayItemLayers need to have two arrays of commands.
Fortunately, this will be going away in the future.

This makes it so we don't send the child side commands to the parent.
2017-03-02 16:33:25 -05:00
Ethan Lin
d55384bad0 Bug 1342356 - Remove validBufferRegion from OpAddExternalImage. r=sotaro 2017-03-01 14:11:13 +08:00
Jeff Muizelaar
e421e711ab Bug 1342246. Generate resource ids on the client side. r=lsalzman 2017-02-23 17:52:38 -05:00
Ryan Hunt
2c877fa601 Bug 1340908 - Include LayersLogging.h not WebRenderLayersLogging.h r=kats 2017-02-19 14:00:41 -05:00
Kartikaya Gupta
4979fd659f Merge m-c to graphics
MozReview-Commit-ID: IN2hMCjMHLL
2017-02-17 23:33:24 -05:00
Ethan Lin
63ff68e219 Bug 1332688 - Pass transform to webrender stacking context. r=jrmuizel 2017-02-17 14:57:43 +08:00
Nicolas Silva
1819922f47 Bug 1335799 - Update WR layers and FFI/bindings code for the webrender update. r=jrmuizel
MozReview-Commit-ID: Hv3MwSr97Op
2017-02-14 13:34:15 -05:00
Ethan Lin
9f2cf9d3c3 Bug 1330945 - Part1. Apply opacity to webrender stacking context as an opacity filter. r=jrmuizel 2017-02-02 15:09:09 +08:00
Ryan Hunt
b41e456e1e Bug 1335123 - Clean up layers logging for WebRenderLayers. r=kats 2017-01-30 12:48:01 -06:00
Ryan Hunt
e7c01364c4 Bug 1329739 - Specify a WrMixBlendMode for WebRenderLayer r=kats 2017-01-19 17:57:18 -06:00
Ryan Hunt
d94d55cac9 Bug 1328893 - Fix the WrTextureFilter used for WebRenderCanvasLayer r=kats? 2017-01-19 14:42:55 -06:00
peter chang
241bc68f10 Bug 1325022 - Pass layers::Animation data to WebRenderBridgeParent, r=gfx?
MozReview-Commit-ID: 7M3aXiEGCfL
2017-01-19 10:38:14 +08:00
Nicolas Silva
67c7d94680 Bug 1331515 - More WR to Wr prefix conversion. r=gfx? 2017-01-17 10:17:38 -05:00
Nicolas Silva
71ce50e60a Bug 1331515 - WR to Wr prefix conversion for more ffi types. r=gfx? 2017-01-17 09:53:57 -05:00
Nicolas Silva
171a41b90f Bug 1331515 - Rename WRRect into WrRect. r=gfx? 2017-01-17 09:32:16 -05:00
Nicolas Silva
e9678a4d84 Bug 1331515 - Move some types to the mozilla::wr namespace. r=gfx? 2017-01-16 19:22:09 -05:00
Nicolas Silva
15faee9666 Bug 1331515 - mozilla/webrender include path. r=gfx? 2017-01-16 19:21:52 -05:00
Ethan Lin
307f4c9f3b Bug 1322504 - Part2. Fix bound/format problem after using ContentClient. r=sotaro 2017-01-15 06:32:01 +08:00
Jeff Muizelaar
87f69cec24 Bug 1313735. Add mask layer support. r=gfx? 2017-01-13 22:12:15 -05:00
Ryan Hunt
f6243f02ff Bug 1328893 - Specify an ImageRendering for some WebRenderLayers r=kats 2017-01-13 11:59:07 -06:00
Kartikaya Gupta
54008a986b Back out 4 csets from bug 1322504 for introducing or exposing an intermittent debug reftest-e10s-4 failure. r=backout 2017-01-12 12:33:49 -05:00
Ethan Lin
56593bcc34 Bug 1322504 - Part2. Fix bound/format problem after using ContentClient. r=sotaro 2017-01-12 16:09:07 +08:00
Ryan Hunt
df78296ff3 Bug 1330480 - Move toWr* functions into WebRenderTypes.h r=gfx? 2017-01-11 19:53:28 -06:00
Nicolas Silva
87800d1c89 Bug 1328602 - Fix unified build bustage. r=gfx? 2017-01-10 14:19:19 +01:00
Jeff Muizelaar
c0120b1582 Bug 1329666. Add an ImageMask parameter to push_stacking_context(). r=gfx?
This will be used for implementing mask layers.
2017-01-09 10:48:45 -05:00