Commit Graph

114 Commits

Author SHA1 Message Date
sotaro
1d58f3676d Bug 1506762 - Store wr::WebRenderPipelineInfo directly in AsyncImagePipelineManager::PipelineUpdates r=mattwoodrow 2018-11-16 22:01:01 +09:00
sotaro
cfaf2e5702 Bug 1503498 - Simplify ForwardingExternalImage handling in AsyncImagePipelineManager r=aosmond 2018-11-14 11:40:31 +09:00
sotaro
eaf9a57f34 Bug 1506091 - Wait for GPU after posting NotifyDidRender r=mattwoodrow 2018-11-12 10:36:13 +09:00
sotaro
799e3be994 Bug 1500017 - Use triple buffer with DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL SwapChain r=mattwoodrow 2018-11-05 18:58:37 +09:00
Cosmin Sabou
34c5649f6c Backed out changeset d139f68fd874 (bug 1500017) for build bustages on RenderCompositorANGLE.cpp 2018-11-05 09:36:05 +02:00
sotaro
9b8ec03f62 Bug 1500017 - Use triple buffer with DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL SwapChain r=mattwoodrow 2018-11-05 15:54:10 +09:00
sotaro
3e7ee0e9a3 Bug 1502789 - Fix Texture release timing of AsyncImagePipelineManager::ProcessPipelineUpdates() r=nical 2018-10-31 14:19:41 +09:00
Sotaro Ikeda
841b095dd7 Bug 1461239 - Use InvalidateRenderedFrame() when necessary r=nical 2018-10-09 23:20:23 -04:00
arthur.iakab
55447323d8 Merge inbound to mozilla-central. a=merge 2018-09-26 15:54:41 +03:00
sotaro
826f7bd946 Bug 1493088 - Use non low priority transaction for async pipline with ImageBridge r=nical 2018-09-26 11:45:30 +09:00
Chris Pearce
c6e51d4e51 Bug 1434503 - Round video frame images bounds to device pixel boundaries before passing to WebRender. r=sotaro
When scrolling on Twitter video frames can sometimes be drawn with a flicker
above or below them. This is because the bounds for video frames' images that
we pass to WebRender are not rounded to pixel boundaries, and so they can end
up being rounded off in WebRender unexpectedly when composited.

So round off the bounds of video frame images to device pixel boundaries before
passing to WebRender.

Differential Revision: https://phabricator.services.mozilla.com/D6857
2018-09-26 00:18:21 +00:00
Jeff Muizelaar
b379bdd2ef Bug 1493268. Re-generate FFI header and adjust bindings.
Changes GlyphRasterSpace to RasterSpace.
2018-09-22 21:19:52 -04:00
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