Commit Graph

52 Commits

Author SHA1 Message Date
Andrew Osmond
fe9b545330 Bug 1492925 - Ensure we release the shared surfaces when a WebRender pipeline is removed. r=sotaro 2018-09-20 21:27:50 -04:00
sotaro
0e2b7905d1 Bug 1476846 - Fix UpdateEpoch() handling r=nical 2018-08-08 14:14:00 +09:00
sotaro
b7cb4c6c5b Bug 1476846 - Reduce latency of applying async images of video r=nical 2018-08-07 19:12:06 +09:00
sotaro
62d65b4952 Bug 1478570 - Fix ExternalImageId allocation of AsyncImagePipelineManager r=jrmuizel 2018-07-30 10:16:03 +09:00
sotaro
ea892379c7 Bug 1477608 - Reuse same ExternalImageId for different video frames if possible r=jrmuizel 2018-07-25 23:30:08 +09:00
sotaro
d543c0e118 Bug 1475187 - Remove AsyncImagePipelineManager::ApplyAsyncImages() call from WebRenderBridgeParent::RecvSetDisplayList() r=kats 2018-07-19 07:51:37 +09:00
sotaro
582eebbf11 Bug 1474532 - Suppress redundant frame generation with async-scene-build enabled r=kats 2018-07-11 12:47:06 +09:00
Martin Robinson
f1a08264f5 Bug 1465058 - Update for API change in WR PR 2756. r=kats
MozReview-Commit-ID: 6Vg0bTpBYVh
2018-05-16 16:47:08 +02:00
Kartikaya Gupta
5436ad506c Bug 1417784 - Shift how the AsyncImagePipelineManager is notified of updates. r=sotaro
Instead of notifying the AsyncImagePipelineManager on the compositor
thread via the CompositorBridgeParent, we can send it the new pipeline
info directly from the RenderThread after the update happens. This
effectively splits the AsyncImagePipelineManager update-processing into
two parts: one that takes in the new pipeline info and one that process
it. This allows us to invoke the processing step from other code running
on the compositor thread, which we will need to do in the next patch.

MozReview-Commit-ID: 7xhm8I7bY4C
2018-05-28 11:29:41 -04:00
Kartikaya Gupta
8337b6414b Bug 1462903 - Always send a display list for a new async image pipeline so WR doesn't complain. r=sotaro
MozReview-Commit-ID: IXM8EhkcdjE
2018-05-24 09:59:28 -04:00
Kartikaya Gupta
e3a436adbb Bug 1459686 - Refactor to have the ApplyAsyncImages callsite provide the transaction. r=sotaro
MozReview-Commit-ID: GVKRcb4r73a
2018-05-08 08:47:02 -04:00
Alexis Beingessner
a2c8d20227 Bug 1435094 - wire up GlyphRasterSpace to nsDisplayTransform. r=kats,mstange
When a transform thinks it's animated we should abandon screen rasterization
and instead favour local rasterization. This produces a more visually
pleasant rendering, as pixel-snapping "wobbles" the text between
frames.

The float scale of GlyphRasterSpace::Local is currently unused, but this
PR tries its best to set it to a reasonable value, based on discussion
with glennw about the intended semantics. We agreed it should specify
the scale *relative* to the parent stacking context, which means it's
just whatever scaling the stacking context's transform applies. It's
possible we'll need to clamp this value or make it properly 2-dimensional
later on.

Some book-keeping is added to StackingContextHelper to ensure that
GlyphRasterSpace::Screen is never requested by a descendent
of a stacking context using GlyphRasterSpace::Local.

nsDisplayMask is changed to use a StackingContextHelper to ensure
rasterSpace is properly propagated.

In addition, this is the first commit making use of cbindgen's new support
for bridging Rust enums natively into C++! This bumps our minimum cbindgen
to 6.0.0 (just released).

MozReview-Commit-ID: 9AlsB6nUheB
2018-05-03 20:38:37 -04:00
Noemi Erli
a42a4976a9 Backed out changeset f8ad5962fc89 (bug 1435094) bustage in /builds/worker/workspace/build/src/layout/painting/nsDisplayList.cpp on a CLOSED TREE 2018-04-27 04:14:39 +03:00
Alexis Beingessner
3126cb402a Bug 1435094 - wire up GlyphRasterSpace to nsDisplayTransform. r=kats,mstange
When a transform thinks it's animated we should abandon screen rasterization
and instead favour local rasterization. This produces a more visually
pleasant rendering, as pixel-snapping "wobbles" the text between
frames.

The float scale of GlyphRasterSpace::Local is currently unused, but this
PR tries its best to set it to a reasonable value, based on discussion
with glennw about the intended semantics. We agreed it should specify
the scale *relative* to the parent stacking context, which means it's
just whatever scaling the stacking context's transform applies. It's
possible we'll need to clamp this value or make it properly 2-dimensional
later on.

Some book-keeping is added to StackingContextHelper to ensure that
GlyphRasterSpace::Screen is never requested by a descendent
of a stacking context using GlyphRasterSpace::Local.

nsDisplayMask is changed to use a StackingContextHelper to ensure
rasterSpace is properly propagated.

In addition, this is the first commit making use of cbindgen's new support
for bridging Rust enums natively into C++! This bumps our minimum cbindgen
to 6.0.0 (just released).

MozReview-Commit-ID: 9AlsB6nUheB
2018-04-25 10:47:34 -04:00
Andrew Osmond
0513161507 Bug 1453801 - Part 2. Ensure shared surfaces are properly released from render texture cache. r=sotaro 2018-04-23 07:57:15 -04:00
Alexis Beingessner
b41e41178c Bug 1412375 - Create a clipped stacking context for nsDisplayMasks. r=kats,mstange
This was only recently made possible by webrender#2600, which introduced special stacking-context
clips

MozReview-Commit-ID: HQAU7IsfDaz
2018-04-11 13:00:49 -04:00
Kartikaya Gupta
32e5004485 Bug 1449982 - Clean up WrEpoch usage. r=nical
I don't know why we keep using plain uint32_t and uint64_t values when
we have better types that we can use. This makes the code use and store
wr::Epoch natively instead of raw uint32_t values that are wrapped
on-demand.

MozReview-Commit-ID: HUVcHYSxBTi
2018-04-10 12:29:56 -04:00
Nicolas Silva
0e5c351410 Bug 1436058 - Don't remove a WebRender pipeline if we re-created one with the same id. r=kats
Patch originally attached to - and reviewed by sotaro on - bug 1432708.

MozReview-Commit-ID: 300BOHFNrbe
2018-02-12 11:43:08 -05:00
Nicolas Silva
6220ae110e Bug 1436058 - Remove async image pipelines when the renderer notifies pipelines removed. r=kats
Patch originally attached to - and reviewed by sotaro on - bug 1432708.

MozReview-Commit-ID: LNWHtuFTPG5
2018-02-12 11:37:02 -05:00
Nicolas Silva
22c22ec1aa Bug 1404477 - Merge ResourceUpdateQueue and TransactionBuilder. r=kats 2018-01-29 14:33:39 +01:00
Nicolas Silva
0f3e6c586c Bug 1425453 - Move more WebRender api calls into transactions. r=kats 2018-01-12 12:24:07 +01:00
Nicolas Silva
ad99bdcf8f Bug 1425453 - Move some WebRender api calls into transactions. r=kats 2018-01-12 12:24:03 +01:00
Ryan Hunt
676cc7b0d3 Generate webrender_ffi_generated with cbindgen:0.3.3 (bug 1428142, r=nical) 2018-01-04 12:23:34 -06:00
Jeff Muizelaar
32a2e8870b Bug 1379680. Move the displaylist ByteBuf into a Vec instead of copying. r=kats
This eliminates a copy of the displaylist on the compositor thread.
2017-11-30 15:12:14 -05:00
sotaro
40d367fa96 Bug 1416533 - Skip to generate frame if there is no update r=nical,kats 2017-11-30 21:38:47 +09:00
sotaro
c68bc268fb Bug 1418877 - Fix key reuse check in AsyncImagePipelineManager::UpdateImageKeys() r=nical 2017-11-22 09:52:22 +09:00
peter chang
0bdce96f26 Bug 1410334 - Create correct animation properties based on WrAnimationProperty info, r=kats
MozReview-Commit-ID: 6LNbwQd9IfX
2017-11-15 16:09:21 +08:00
sotaro
fc3aec11d1 Bug 1414727 - Change AsyncImagePipeline::mIsChanged flag handling as to reduce DisplayList update r=nical 2017-11-15 10:14:06 +09:00
Sebastian Hengst
4c3e66715b merge mozilla-inbound to mozilla-central. r=merge a=merge
MozReview-Commit-ID: 4PW6ESqLL73
2017-10-30 23:52:23 +01:00
Daniel Holbert
bb0a8b6602 Bug 1412427 part 8: (automated patch) Switch a bunch of C++ files in gfx to use our standard mode lines. r=jrmuizel
This patch was generated automatically by the "modeline.py" script, available
here: https://github.com/amccreight/moz-source-tools/blob/master/modeline.py

For every file that is modified in this patch, the changes are as follows:
 (1) The patch changes the file to use the exact C++ mode lines from the
     Mozilla coding style guide, available here:
https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Coding_Style#Mode_Line

 (2) The patch deletes any blank lines between the mode line & the MPL
     boilerplate comment.

 (3) If the file previously had the mode lines and MPL boilerplate in a
     single contiguous C++ comment, then the patch splits them into
     separate C++ comments, to match the boilerplate in the coding style.

MozReview-Commit-ID: 77D61xpSmIl
2017-10-27 16:10:06 -07:00
sotaro
4d7e451e4d Bug 1412755 - Fix display list update of AsyncImagePipelineManager r=nical 2017-10-30 22:15:35 +09:00
Nicolas Silva
2d4b0e9b5b Bug 1407069 - Associate epochs to async image updates. r=sotaro 2017-10-20 16:42:53 +02:00
Kartikaya Gupta
8c80ad9d7f Bug 1409856 - Update all the WebRender code to use LayoutDevice units instead of Layer units. r=jrmuizel
MozReview-Commit-ID: DP3hwlFWyZC
2017-10-18 22:25:11 -04:00
Nicolas Silva
7204285dd7 Bug 1383786 - Delete image keys as soon as they are not used anymore. r=sotaro 2017-09-26 15:31:08 +02:00
Nicolas Silva
a81725a9b6 Bug 1383786 - Rename TextureHost::PushExternalImage into PushDisplayItems. r=sotaro 2017-09-26 15:31:00 +02:00
Nicolas Silva
799ceac449 Bug 1383786 - Update TextureHost image keys when posible. r=sotaro 2017-09-26 15:30:55 +02:00
Nicolas Silva
bfb84db23c Bug 1383786 - Make it possible to update TextureHost image keys. r=sotaro 2017-09-26 15:30:51 +02:00
Nicolas Silva
2d83e5c303 Bug 1383786 - Simplify generating image keys for TextureHosts. r=sotaro 2017-09-26 15:30:46 +02:00
Morris Tseng
d7ade017fc Bug 1392200 - Add backface-visibility support for layers-free mode. r=kats
For layers-full mode, we set the backface-visibility to visible because
visibility would be handled by FLB and layers.

MozReview-Commit-ID: CUbeUabfC7K
2017-09-21 14:41:38 +08:00
Nicolas Silva
7100d343f6 Bug 1393031 - Use shared memory to pass resource update data. r=jrmuizel 2017-09-14 18:48:55 +02:00
Nicolas Silva
14647f1316 Bug 1393031 - Separate WebRenderAPI and ResourceUpdateQueue. r=sotaro 2017-09-04 13:59:42 +02:00
Nicolas Silva
674768a93d Bug 1393031 - Expose webrender resource updates in the C++ wrapper. r=sotaro 2017-09-04 13:59:12 +02:00
Sebastian Hengst
8b761993a9 Backed out changeset 326d1e6cf7b1 (bug 1393031) for bustage at gfx/layers/opengl/MacIOSurfaceTextureHostOGL.cpp:178: no member named 'AddExternalImage' in 'mozilla::wr::WebRenderAPI' on OS X and also bustage on Windows. r=backout on a CLOSED TREE 2017-08-25 12:42:01 +02:00
Nicolas Silva
caf800b93a Bug 1393031 - Expose WebRender's ResourceUpdates to C++. r=sotaro 2017-08-25 11:58:00 +02:00
Wes Kocher
b6f8dba116 Merge autoland to central, a=merge
MozReview-Commit-ID: 9BfFPDy1vO7
2017-08-14 17:28:19 -07:00
Morris Tseng
846bcf9bc7 Bug 1389027 - Support nsDisplayPerspective in layers-free mode. r=kats
MozReview-Commit-ID: K0RCuQ8WEE3
2017-08-14 17:31:55 +08:00
Milan Sreckovic
fe9daf64d1 Bug 1387514: Upgrade BaseRect (derived classes) width and height direct member variable use to instead use Width()/SetWidth() and Height()/SetHeight() in .cpp files in gfx/*. r=milan
MozReview-Commit-ID: 1jESowJKdyp
2017-08-14 08:29:28 -04:00
sotaro
67d99a142e Bug 1385003 - Use a different WebRenderAPI instance for each WebRenderBridgeParent. r=kats
Previously, the WebRenderBridgeParent for each content layer tree would use the
same WebRenderAPI instance as the top-level WebRenderBridgeParent for that window.
However, in order to make the namespacing changes work we now need to use a
separate WebRenderAPI instance for each WebRenderBridgeParent. The content
WebRenderAPIs are cloned from the parent one, so that they all share the same
backend, but can allocate resource IDs in distinct namespaces.

MozReview-Commit-ID: 7VTFL8F09n7
2017-08-09 08:46:25 -04:00
Kartikaya Gupta
8ffac3e258 Bug 1386020 - Use wr::IdNamespace instead of uint32_t for the WR namespace. r=sotaro
MozReview-Commit-ID: JbQNgNQHobO
2017-07-31 16:31:10 -04:00
Nicolas Silva
cf099dbdad Bug 1383786 - Rename WebRenderCompositableHolder into AsyncImagePipelineManager. r=sotaro 2017-07-25 10:54:36 +02:00