Граф коммитов

634 Коммитов

Автор SHA1 Сообщение Дата
Nicolas Silva 70528e34f1 Bug 1393031 - Apply external image commands in webrender transactions. r=sotaro 2017-09-04 13:59:47 +02:00
Nicolas Silva 38b33aa593 Bug 1393031 - Separate WebRenderAPI and ResourceUpdateQueue. r=sotaro 2017-09-04 13:59:42 +02:00
Nicolas Silva 4b7b1e5992 Bug 1393031 - Use the ResourceUpdateQueue API on the content side. r=jrmuizel 2017-09-04 13:59:36 +02:00
Nicolas Silva 09e43ac029 Bug 1393031 - Expose webrender transactions at the ipc boundary. r=jrmuizel, r=kanru 2017-09-04 13:59:26 +02:00
Nicolas Silva b4671ccb28 Bug 1393031 - Stop tracking active resource keys on the parent side. r=sotaro 2017-09-04 13:59:21 +02:00
Nicolas Silva b067cea354 Bug 1393031 - Expose webrender resource updates in the C++ wrapper. r=sotaro 2017-09-04 13:59:12 +02:00
Wes Kocher 5f157c17dc Merge inbound to central, a=merge
MozReview-Commit-ID: 3JxUEFuinHY
2017-09-01 16:29:10 -07:00
Kartikaya Gupta f397e9054a Bug 1395670 - In webrender layers-free mode, don't add a root scroll metadata if we already have it elsewhere in the tree. r=mstange
MozReview-Commit-ID: B9LY4v9t11Y

--HG--
extra : rebase_source : e6ffb4c7a54e0584a3a4939a3bca34276b69478b
2017-08-31 17:07:41 -04:00
vincentliu 97c34bd232 Bug 1391458 - Make sure WrBridge is ready in the head of BeginTransaction. r=kats 2017-09-01 18:05:53 +08:00
Wes Kocher 6472928439 Merge m-c to inbound, a=merge
MozReview-Commit-ID: 77Uz3uceUmk
2017-08-31 16:56:23 -07:00
Wes Kocher e9c837e8b6 Merge inbound to central, a=merge
MozReview-Commit-ID: FBt5lm2sDFe
2017-08-31 16:26:40 -07:00
Lee Salzman 251cd46deb Bug 1393055 - map ScaledFonts to WebRender FontInstanceKeys. r=jrmuizel
MozReview-Commit-ID: AadEI5CnTZ1
2017-08-30 13:45:11 -04:00
Kartikaya Gupta 21ac463b1b Bug 1395212 - Avoid computing the entire ScrollMetadata for cases where we just need the scroll id. r=mstange
MozReview-Commit-ID: BEYfq2EqIel

--HG--
extra : rebase_source : 7315123162b80758be347c243375e28462352e06
2017-08-30 14:51:19 -04:00
Kartikaya Gupta 543988e106 Bug 1395212 - Update wr::DisplayListBuilder to expose separate APIs for defining and pushing scroll layers. r=mstange
This makes the DisplayListBuilder scrolling API more consistent with the
clipping API, and allows for more optimization at the call site (in the next
patch).

MozReview-Commit-ID: LdCA7wkXDwF

--HG--
extra : rebase_source : 1fe934e778c597f6a639ad2ecbda46995f8fd09e
2017-08-30 14:51:19 -04:00
Kartikaya Gupta b8355b02c7 Bug 1395212 - Hoist the scroll layer deduplication code out of bindings.rs into wr::DisplayListBuilder. r=mstange
This also splits the wr_dp_push_scroll_layer function in bindings.rs into two
separate functions. This makes the API consistent with clipping, and also allows
for optimizations in the upcoming patches.

MozReview-Commit-ID: IXnOZK0dZm

--HG--
extra : rebase_source : aa28875433a03ee9d6c388750f022958958d05e9
2017-08-30 14:51:19 -04:00
Andrew Osmond c19bc09ecd Bug 1391793 - Save the given ImageContainer in WebRenderImageData so that it is not recreated. r=jrmuizel
A RasterImage's ImageContainer is only retained as a weak pointer in the
RasterImage itself. With WebRender and display items, we no longer kept
a strong reference to said image container, and as such it got recreated
every time it had to repaint (e.g. after a scroll). This would
unnecessarily reset/update the generation counter such that the
ImageClient would decide it needs to retransmit the image data to the
GPU process. By keeping a strong reference to the container that we
don't otherwise use, we avoid this situation.
2017-08-31 05:30:36 -04:00
Sebastian Hengst a56d428b1f merge mozilla-inbound to mozilla-central. r=merge a=merge
MozReview-Commit-ID: Gf0QPFp52Bj
2017-08-30 11:05:16 +02:00
Kartikaya Gupta 2f2f47ee81 Bug 1394011 - Place the root ScrollMetadata on the tree we send to APZ in layers-free webrender mode. r=mstange
MozReview-Commit-ID: i6BDSDgKiu

--HG--
extra : rebase_source : c6de7e75ff054a17df5a45f17f88025be3ffd3dc
2017-08-28 17:17:37 -04:00
sotaro 11c145a7c1 Bug 1394338 - Add WebRender error handling to RendererOGL r=nical 2017-08-30 09:10:22 +09:00
Sebastian Hengst 2a9cc8e3be merge mozilla-inbound to mozilla-central. r=merge a=merge
MozReview-Commit-ID: BQuBmVtsdki
2017-08-29 20:30:41 +02:00
sotaro 6814d355af Bug 1394337 - Fix uninitialized mPipelineId by WebRenderBridgeParent::CreateDestroyed() r=kats
WebRenderBridgeParent holds uninitialized mPipelineId when it was created by WebRenderBridgeParent::CreateDestroyed(). Then when CrossProcessCompositorBridgeParent::DeallocPWebRenderBridgeParent is called for the WebRenderBridgeParent, it will call EraseLayerState with some garbage uninitialized value, and so it will erase some random layer state entry.
2017-08-29 22:41:53 +09:00
Sebastian Hengst c46e62224e merge mozilla-central zo mouilla-inbound. r=merge a=merge on a CLOSED TREE 2017-08-28 17:10:37 +02:00
Sebastian Hengst 80cced1397 Backed out changeset 22d7763100aa (bug 1391499) for build bustage on Windows at gfx/layers/wr/StackingContextHelper.cpp(105): 'Size': undeclared identifier. r=backout 2017-08-28 12:28:55 +02:00
Jeff Muizelaar 4e3ef825a9 Bug 1391841: Clip fallback display items using WebRender clips instead of doing the clip internally. r=ethlin
This gives a huge performance improvement when scrolling mozilla.org.
It's only used when we have blob images which now support tiling.
2017-08-28 10:25:00 -04:00
peter chang 834299eb19 Bug 1391499 - Apply the inherited scale from ancestors, r=kats
To render the nested transforms properly, we need to store the inherited scale from ancestors for children.
Then apply the inherited scale for children's bounds

MozReview-Commit-ID: KYyibUD8J2j

--HG--
extra : rebase_source : 82c2695990e23eb47a4f185e0a53a865f3d1ff0f
2017-08-18 21:51:19 +08:00
Ethan Lin 7675f794c1 Bug 1393706 - Compute display item's visibility when creating fallback data in layers-free mode. r=jrmuizel
MozReview-Commit-ID: 6eUnABLce2Z

--HG--
extra : rebase_source : 1a1b462897ef838c70eb8613501b940c06dd0f99
2017-08-25 16:36:15 +08:00
peter chang f68e87377c Bug 1391499 - Apply the inherited scale from ancestors, r=kats
To render the nested transforms properly, we need to store the inherited scale from ancestors for children.
Then apply the inherited scale for children's bounds

MozReview-Commit-ID: KYyibUD8J2j

--HG--
extra : rebase_source : fe2aeb842af477475767d0cf22c780c36b2487f0
2017-08-18 21:51:19 +08:00
Ethan Lin f0d8375feb Bug 1391202 - Add NotifyInvalidation mechanism for layers-free mode. r=kats
MozReview-Commit-ID: G82DgErNTRq

--HG--
extra : rebase_source : 3cd74f1b10758ddb796d3dc254f9bde03fb9f7b8
2017-08-23 23:03:43 +08:00
Ethan Lin 376639c99a Bug 1392921 - In TopmostScrollId(), return FrameMetrics::NULL_SCROLL_ID when the scroll id stack is empty. r=kats
MozReview-Commit-ID: 3kmgsisMhW5

--HG--
extra : rebase_source : d9e20940fcc5c1790dbf4f3b6b2769b1fd054121
2017-08-23 14:46:38 +08:00
Ethan Lin d5901012b5 Bug 1391541 - Correct the transform for layers-free fallback. r=kats
MozReview-Commit-ID: v9hVeUmY3E

--HG--
extra : rebase_source : 11f63f57d083d9d464f81b54cb99c58aeed8119b
2017-08-22 13:55:49 +08:00
Nicolas Silva 9f6f1a7d88 Bug 1390840 - Add prefs to display the debugging view of webrender's texture cache and intermediate targets. r=jrmuizel 2017-08-23 12:00:37 +02:00
sotaro 0fdce34238 Bug 1390731 - Add pointer check to GetRootCompositorBridgeParent() r=kats 2017-08-23 13:44:22 +09:00
Wes Kocher 6dd42e2664 Merge inbound to central, a=merge
MozReview-Commit-ID: BMWuqvmTljV
2017-08-22 17:07:23 -07:00
Ethan Lin a5fdb1e628 Bug 1392502 - Fix 2d/3d transform check in StackingContextHelper. r=mtseng
MozReview-Commit-ID: DYY7wBWrrlv

--HG--
extra : rebase_source : 2a539f3c23cbe54f63c3e443db2cea6808b28277
2017-08-22 14:40:39 +08:00
Jeff Muizelaar fe9318a51b Bug 1390290. Use default stride for blob images. r=kats
This lets tiled images work.
The bindings code turns 0 into None
2017-08-21 12:57:15 -04:00
Sebastian Hengst 441fc1a176 Backed out changeset b9c53ad8893b (bug 1390840) 2017-08-21 18:38:22 +02:00
Nicolas Silva 55bbef54aa Bug 1390840 - Add prefs to display the debugging view of webrender's texture cache and intermediate targets. r=jrmuizel 2017-08-21 18:22:56 +02:00
Wes Kocher c043502159 Merge m-c to autoland, a=merge
MozReview-Commit-ID: 7sFZmPUXSx6
2017-08-18 17:21:29 -07:00
Wes Kocher b1fc5e008c Merge inbound to central, a=merge
MozReview-Commit-ID: 4cWGBbMEU2x
2017-08-18 15:53:07 -07:00
Alexis Beingessner 9c4535798f Bug 1357545 - handle text-shadows/decorations with webrender (layers-free) r=jrmuizel
This replaces our DrawTargetCapture hack with a similar but more powerful TextDrawTarget
hack. The old design had several limitations:

* It couldn't handle shadows
* It couldn't handle selections
* It couldn't handle font/color changes in a single text-run
* It couldn't handle decorations (underline, overline, line-through)

Mostly this was a consequence of the fact that it only modified the start and end
of the rendering algorithm, and therefore couldn't distinguish draw calls for different
parts of the text.

This new design is based on a similar principle as DrawTargetCapture, but also passes
down the TextDrawTarget in the drawing arguments, so that the drawing algorithm can
notify us of changes in phase (e.g. "now we're doing underlines"). This also lets us
directly pass data to TextDrawTarget when possible (as is done for shadows and selections).

In doing this, I also improved the logic copied from ContainsOnlyColoredGlyphs to handle
changes in font/color mid-text-run (which can happen because of font fallback).

The end result is:

* We handle all shadows natively
* We handle all selections natively
* We handle all decorations natively
* We handle font/color changes in a single text-run
    * Although we still hackily intercept draw calls
    * But we don't need to buffer commands, reducing total memcopies

In addition, this change integrates webrender's PushTextShadow and PushLine APIs,
which were designed for this use case. This is only done in the layerless path;
WebrenderTextLayer continues to be semantically limited, as we aren't actively
maintaining non-layers-free webrender anymore.

This also doesn't modify TextLayers, to minimize churn. In theory they can be
augmented to support the richer semantics that TextDrawTarget has, but there's
little motivation since the API is largely unused with this change.

MozReview-Commit-ID: 4IjTsSW335h

--HG--
extra : rebase_source : d69f69648ade5c7a8e6bb756f4b8ab9e2543e576
2017-06-19 10:58:28 -04:00
Kartikaya Gupta 57563f2293 Bug 1389138 - Push scroll layers in layers-free WR. r=mstange
This patch takes the existing code (which allows recursively pushing the necessary
part of a clip chain) and folds it into another recursive function that
operates on the ASR chain. Now the ASR recursion is the primary one, and
clips are pushed for each ASR as needed.

This code was partly modelled after the code in
ContainerState::SetupScrollingMetadata, which also iterates over the
ASRs and clips.

MozReview-Commit-ID: 1qaFPY7Ja7

--HG--
extra : rebase_source : 623b116c293e86d063e5acfa4a01f5104719f560
2017-08-17 11:07:03 -04:00
Kartikaya Gupta 1155831470 Bug 1389138 - Introduce a variant type to allow unifying the clip and scroll ids. r=mstange
This allows us to keep a single stack where we track both clip ids and
scroll ids with the correct interleaving order that they were pushed in.

MozReview-Commit-ID: DHHfR8JnnBw

--HG--
extra : rebase_source : f2f80e89a400d5b9982d138b29e534701b247072
2017-08-17 11:06:31 -04:00
Kartikaya Gupta 9f20fdccff Bug 1389138 - Extract a helper PushScrollLayer method. r=mstange
MozReview-Commit-ID: CqKOvxWCWZE

--HG--
extra : rebase_source : 99f77b7629ab39e78316fc890ea3253ce51f8732
2017-08-17 11:06:12 -04:00
Sebastian Hengst 8b042b8f29 Backed out changeset 20c649cb4a21 (bug 1389138) for bustage at dist/include/mozilla/layers/ScrollingLayersHelper.h:22: class 'FrameMetrics' was previously declared as a struct. r=backout 2017-08-17 21:08:57 +02:00
Sebastian Hengst 953d244299 Backed out changeset 442b037713d6 (bug 1389138) 2017-08-17 21:08:20 +02:00
Sebastian Hengst a9b6459ba5 Backed out changeset 321176b458a5 (bug 1389138) 2017-08-17 21:08:09 +02:00
Kartikaya Gupta 623ddc7d69 Bug 1389138 - Push scroll layers in layers-free WR. r=mstange
This patch takes the existing code (which allows recursively pushing the necessary
part of a clip chain) and folds it into another recursive function that
operates on the ASR chain. Now the ASR recursion is the primary one, and
clips are pushed for each ASR as needed.

This code was partly modelled after the code in
ContainerState::SetupScrollingMetadata, which also iterates over the
ASRs and clips.

MozReview-Commit-ID: 1qaFPY7Ja7

--HG--
extra : rebase_source : 0c1879531e77998254d2ccaf87479154b179545a
2017-08-17 11:07:03 -04:00
Kartikaya Gupta b3f900ac81 Bug 1389138 - Introduce a variant type to allow unifying the clip and scroll ids. r=mstange
This allows us to keep a single stack where we track both clip ids and
scroll ids with the correct interleaving order that they were pushed in.

MozReview-Commit-ID: DHHfR8JnnBw

--HG--
extra : rebase_source : 1eff7698ecc724b5457bdf67a6c4a70605038184
2017-08-17 11:06:31 -04:00
Kartikaya Gupta 1be666ff10 Bug 1389138 - Extract a helper PushScrollLayer method. r=mstange
MozReview-Commit-ID: CqKOvxWCWZE

--HG--
extra : rebase_source : e752afc5d579501f476425643b6502a6a10bdda8
2017-08-17 11:06:12 -04:00
Kartikaya Gupta cb97ff3374 Bug 1389139 - Add support for transform and perspective display items to layers-free APZ. r=jrmuizel
A basic sanity check here seems to produce the correct behaviour but I'm
not at all confident that this will always do the correct thing in more
complex cases or when perspectives are involved. However this is hard to
test and get working without the testing infrastructure up and running
so I'd rather land this simple code first and then dig into the more
complex cases once we have a way to catch regressions.

MozReview-Commit-ID: E4HytiZowEn

--HG--
extra : rebase_source : c7466092298aebf66926e8e0bdf58eb4651f0f19
2017-08-16 12:50:37 -04:00