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

227 Коммитов

Автор SHA1 Сообщение Дата
Kartikaya Gupta af64629a66 Bug 1417784 - Use a CompositorBridgeParent* instead of a base class pointer. r=sotaro
We do a silent upcast from CompositorBridgeParent* to the base class and
pass it around as a CompositorBridgeParentBase* for no reason. Avoiding
this simplifies the code slightly and avoids virtual function overhead.
We do need to move a couple of functions in CompositorBridgeParent from
protected scope to public scope.

MozReview-Commit-ID: 9Zq3GwxEXpr

--HG--
extra : rebase_source : 67346159e7d99ca7fc2fe0052e85aa6618b50d27
2018-05-28 11:29:41 -04:00
Kartikaya Gupta 0e92bc1c16 Bug 1463416 - Update for API changes in WR PR 2718. r=nical
MozReview-Commit-ID: Ct8krYkLfHL

--HG--
extra : rebase_source : ed01919ad38b66d485ae395621167e059f4ec6d8
2018-05-26 11:09:21 -04:00
Kartikaya Gupta 8e7e2dbdb4 Bug 1454042 - Allow missing pipeline information for cross-process iframes. r=sotaro
We should always have the pipeline information for in-process things like
async images, but for cross-process iframes we might not have the information
right away if the content process doesn't get around to sending it for a while.

MozReview-Commit-ID: 18F5nqilXoV

--HG--
extra : rebase_source : 610046cbaaefb38b8e11bda857fd64a00722df27
2018-05-18 10:31:18 -04:00
Hiroyuki Ikezoe 586992e21b Bug 1460389 - Remove TransactionBuilder::AppendTransformProperties. r=kats
This function is no longer used since we introduced TransactionWrapper class in
bug 1451469.

MozReview-Commit-ID: FGxi6thbxcP

--HG--
extra : rebase_source : ef5628f8bffb5c1fedf6de80056d4ebba41a9edf
2018-05-15 08:59:29 +09:00
Kartikaya Gupta 2b4b8a09ab Bug 1457466 - Make the GenerateFrame transaction bypass the scene builder thread. r=nical
This allows frames to be generated by the render backend thread even
while the scene builder thread is busy with a long scene build. The
GenerateFrame transaction also contains APZ and OMTA information, so
this allows the user to scroll and view OMTAnimations during long scene
builds.

MozReview-Commit-ID: KG5YC2KwIaH

--HG--
extra : rebase_source : 3ba559aa22a3a036a3b3a034ea20caacdc8c864a
2018-05-11 09:09:19 -04:00
Kartikaya Gupta 27baa6b4f2 Bug 1460495 - When sending a transaction, ensure the new transaction that takes its place has the same async-scene-build flag set. r=sotaro
MozReview-Commit-ID: HYwUwqE2P2O

--HG--
extra : rebase_source : 9540a4dc271d51b5d517fb6498d54d0c55eec6c6
2018-05-10 13:05:22 -04:00
Kartikaya Gupta 85e5ccd033 Bug 1458598 - Expose the generated reference frame id for stacking contexts. r=mstange
This is just plumbing, no functional changes yet.

MozReview-Commit-ID: FlmnMVammse

--HG--
extra : rebase_source : edede45a77a829dbd125dc1f18a4c2a4bc8087c1
2018-05-08 09:16:26 -04:00
Martin Robinson 2d70c66a68 Bug 1458870 - Changes necessary to deal with new WebRender nine-patch API from PR 2724. r=jrmuizel
MozReview-Commit-ID: 9217FeM4VJH

--HG--
extra : rebase_source : 72f5ab352a8d70149a2306eed9c7afc87405636e
2018-05-08 10:36:23 -04:00
Kartikaya Gupta 1eb717ccf5 Bug 1377187 - Rewrite the clipping code to use the new clipchain API. r=mstange
The clip chain API in webrender allows us to build the clip state in WR
so that it matches the gecko display list more closely. This patch throws
away ScrollingLayersHelper.* and introduces ClipManager.* which pushes
the clip state to WR using the new method. A quick summary of the new
method is below.

Each display item in gecko has a DisplayItemClipChain which is a chain
of individual clips. The individual clips are defined in WR, and the
clip ids for those clips are put into a WR clip chain using the new
define_clip_chain API. Furthermore, each clip chain can also have a
parent chain, which is used to link a DisplayItemClipChain to the parent
display item's DisplayItemClipChain. This allows the WR clip state to
closely match the structure of the gecko display list clip state,
resulting in more correct behaviour.

There are a few other major changes that are lumped into this patch and
that were tricky to separate into their own patches:
- The collapsing of WrScrollId and WrStickyId into WrClipId. On the WR
  side all the clip ids are treated the same anyway. Trying to preserve
  the arbitrary distinction on the gecko side was resulting in
  increasingly convoluted code, with different kinds of Variant<..>
  types in the method signatures. It was much simpler and resulted in a
  bunch of code deletion to just collapse the types.
- Moving the "override" mechanism from WebRenderAPI to ClipManager. The
  override mechanism (explained in ClipManager.h) was simplified by
  moving it into ClipManager, because it removed the need for tracking
  additional clip stack state in WebRenderAPI.

MozReview-Commit-ID: GGbdFyJGprK

--HG--
extra : rebase_source : baa56ff179e917b0ab5a5c186a3a415761f8050a
2018-05-08 09:08:39 -04:00
Kartikaya Gupta 1f11e1e04e Bug 1377187 - Simplify code to define clips and scroll layers. r=mstange
This is a refactoring that moves the "parent clip id" determination from
bindings.rs into WebRenderAPI.cpp. This should be functionally
identical.

MozReview-Commit-ID: 36rQmsH5E7J

--HG--
extra : rebase_source : f376e71f7681ec3f67e0ab4f2e3035da4edf2a5b
2018-05-08 09:07:30 -04:00
Alexis Beingessner 239a528013 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

--HG--
extra : rebase_source : 247e5b197e998682cb4bb74f6f9319a9a4dd3264
2018-05-03 20:38:37 -04:00
sotaro b482332d39 Bug 1457387 - Remove WrExternalLogHandler r=jrmuizel 2018-05-04 14:31:32 +09:00
Kartikaya Gupta 9d0713c20d Bug 1457448 - Ensure we flush the async scene builder thread before snapshotting. r=nical
MozReview-Commit-ID: 3XTFWiEmk0p

--HG--
extra : rebase_source : 0547263009cfb48bb7f010662d57734ed57f63c7
2018-04-27 10:46:21 -04:00
Noemi Erli 0ec806df24 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 4bb2580c85 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

--HG--
extra : rebase_source : 978e51dbedeb1542e0829752b7f828ffeb2872e9
2018-04-25 10:47:34 -04:00
sotaro 1787768767 Bug 1454878 - Update WrExternalLogHandler as to use env_logger r=jrmuizel 2018-04-25 12:05:26 +09:00
Lee Salzman 47222b48e5 Bug 1448703 - clear blob image resources from clear_namespace hook. r=jrmuizel 2018-04-24 22:24:55 -04:00
Andreea Pavel 1d89ab6a3a Backed out changeset 42781c597745 (bug 1448703) cpu process leakcchecks 2018-04-24 06:47:19 +03:00
Lee Salzman d8e6c45ef2 Bug 1448703 - clear blob image resources from clear_namespace hook. r=jrmuizel
MozReview-Commit-ID: 8DinL2bE64O
2018-04-23 21:46:55 -04:00
Kartikaya Gupta adaebffdd8 Bug 1451469 - Add a TransactionWrapper class. r=nical
The TransactionBuilder class comes with a bunch of baggage (it
automatically allocates/deallocates a transaction under the hood) which
we will want to avoid for the RB callbacks into APZ. This patch adds a
lightweight TransactionWrapper class that APZ can use to provide the
async transform info and that will be simpler to use in the callback
from rust code.

MozReview-Commit-ID: 1ywhx4TIzGd

--HG--
extra : rebase_source : 0ac4356554db24806d03b44f5384f9b7341d4255
2018-04-16 17:39:26 -04:00
Kartikaya Gupta cfd585d234 Bug 1453364 - Update scrollbar transforms separately from OMTA transforms. r=nical
Although they still happen in the same transaction, they are done in two
separate frame messages. This results in better encapsulated code on the
C++ side since we don't have to pass around an array of properties, and
will simplify future changes to update these properties at render time
rather than at GenerateFrame time.

MozReview-Commit-ID: 9qUkHX7gmD1

--HG--
extra : rebase_source : 15a319ba270eb1783815c514ae05c6a72e323dac
2018-04-11 15:28:00 -04:00
Alexis Beingessner faa067542e 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

--HG--
extra : rebase_source : 0ac7f0f3f73abdf5b60ca02b37cfaa7abeecb6a3
2018-04-11 13:00:49 -04:00
Kartikaya Gupta fde6e769ba Bug 1449982 - Add the plumbing for scene builder thread interaction. r=nical
This is all the (bidirectional) glue that connects the SceneBuilderHooks
to the APZUpdater.

MozReview-Commit-ID: JIqUaClVa57

--HG--
extra : rebase_source : c6da81e63793570f79cdfa153f6d33d2ac05bdf6
2018-04-10 12:29:55 -04:00
Kartikaya Gupta 4a07281ed3 Bug 1449982 - Introduce pref to control async scene building. r=nical
Until all the pieces are in place, turning on this pref will probably
break horribly. But we need the pref so we can add the rest of the
pieces without enabling them by default.

MozReview-Commit-ID: 7DkcwZgXwhx

--HG--
extra : rebase_source : e1fdef2e9a682028df524f51f767a4d2187410b1
2018-04-10 12:29:55 -04:00
Kartikaya Gupta 164909dbed Bug 1449982 - Move the window id allocation to CompositorBridgeParent. r=nical
This includes a signature change from CompositorBridgeParentBase ->
CompositorBridgeParent which is not strictly required, but it makes it less
likely that we'll accidentally create a WebRenderAPI from somewhere else
and pass a nonsense window id. In effect, the signature change makes it
likely that only CompositorBridgeParent will allocate the window ids.

MozReview-Commit-ID: 8AnnmI8RytR

--HG--
extra : rebase_source : 6fd957c4a9e5bb2175bee2cc89f7eb6d27a6bc9e
2018-04-10 12:29:55 -04:00
Martin Robinson f55533615b Bug 1444904 - Get the root scroll frame id from WebRender r=kats
Instead of hard-cording the root scroll frame id, get the value from
WebRender. This was previously hard-coded to 0, so when WebRender
switched to using 1 for the root scroll frame id, the positioning of
sticky frames were broken in subtle ways. This happened because they
were being parented to a root reference frame (which now uses the 0 id)
instead of the root scroll frame.

MozReview-Commit-ID: 66ArgKHGpWE

--HG--
extra : rebase_source : ff6937bf7fc8d4472eb074d0466c8dcd6fba54a8
2018-03-26 18:13:07 +02:00
Kartikaya Gupta 7d1d15228b Bug 1443152 - Update to cbindgen 0.5.2. r=rhunt
MozReview-Commit-ID: COIPhZvMJK

--HG--
extra : rebase_source : 9687211e6bda9b306d8cdf522145eee132601b18
2018-03-12 16:38:10 -04:00
Martin Robinson ee5a6b3d13 Bug 1440664 - Update gecko WR bindings for API changes in WR PR 2449. r=kats
MozReview-Commit-ID: AUTNkZ36p8b

--HG--
extra : rebase_source : 4452312fca3355f2d8830eb94f317e48777e8248
2018-03-01 16:49:54 -05:00
sotaro 71d9e881b1 Bug 1436020 - Disable WebRender profiler UI during readback r=nical 2018-02-15 11:29:40 +09:00
Kartikaya Gupta bd342342df Bug 1436058 - Update for log 0.4 bump in WR PR 2385. r=jrmuizel
MozReview-Commit-ID: Cxkecg2cTDW

--HG--
extra : rebase_source : 0b049ba3a95dda71f9d6df53ba8f636e30841fee
2018-02-12 11:32:50 -05:00
Dzmitry Malyshau 5852b9f1d6 Bug 1436190: Fixed render frame notification in wake_up(). r=nical
MozReview-Commit-ID: JHBKpAh4YDD
2018-02-08 10:49:25 -05:00
Martin Roinson 90bbf4505c Bug 1435143 - Properly unwrap Maybe<WrScrollId> for the root scroll frame. r=kats
When comparing a Maybe<WrScrollId> to another WrScrollId we need to properly
handle the case where Nothing() signifies the root scroll frame. This is
equivalent to calling scrollId.valueOr(FrameMetrics::NULL_SCROLL_ID), as was
done before WrScrolLId replaced ViewId in the WebRender ScrollingLayersHelper.
We also have DisplayListBuilder::TopmostScrollId always return a value instead
of a Maybe, since an empty clip stack means that the current scroll id is that
of the root scroll frame.

Previously Nothing() was not equivalent to WrScrollId { 0 }, which caused the
ScrollingLayersHelper to fill the mClipAndScroll value and push another
set of clip and scroll nodes onto the WebRender display list builder.

MozReview-Commit-ID: CeatZlRXtuI
2018-02-07 10:01:56 +01:00
Martin Roinson e82c2f1d5c Bug 1434288 - Update gecko for API changes in WR PR 2315. r=kats
MozReview-Commit-ID: 7NfZMXOPaDY

--HG--
extra : rebase_source : 782784b5f01fccd7c22286c6fa7e6ee16bf20be0
2018-01-22 19:29:06 +01:00
Nicolas Silva 082991a7bc Bug 1404477 - Merge ResourceUpdateQueue and TransactionBuilder. r=kats 2018-01-29 14:33:39 +01:00
Nicolas Silva 3f26befbbd Bug 1404477 - WebRender document API bindings. r=kats 2018-01-29 14:33:35 +01:00
Dzmitry Malyshau 05561ae950 Bug 1433139 - WebRender capture integration on Nightly. r=mikedeboer
MozReview-Commit-ID: 6oIUlPSfLMg
2018-01-26 10:09:30 -05:00
Kartikaya Gupta b9bc1f73c5 Back out cset 75b5af791006 (bug 1433139) for OS X debug mochitest-chrome-3 failure. r=me 2018-01-26 11:31:34 -05:00
Dzmitry Malyshau 90b1205b68 Bug 1433139 - WebRender capture integration on Nightly. r=mikedeboer
MozReview-Commit-ID: 6oIUlPSfLMg
2018-01-26 10:09:30 -05:00
Kartikaya Gupta b9e6d272c0 Bug 1431787 - Followup to avoid the call to wr_api_get_namespace from the WebRenderAPI destructor. r=me a=RyanVM
Landing on a CLOSED TREE because this needs to go to beta to fix the build.

MozReview-Commit-ID: Askd7fgnn3E
2018-01-19 16:42:40 -05:00
Lee Salzman 7960a042d1 Bug 1431211 - clean up WR blob image renderer resources on API destruction. r=gankro
MozReview-Commit-ID: E7XuM7vpEXd
2018-01-18 06:28:09 -05:00
Kartikaya Gupta 8903b49768 Bug 1429951 - Propagate the non-premultiplied flag for textures to WR. r=sotaro
MozReview-Commit-ID: Vd5n5e7XuW

--HG--
extra : rebase_source : ebd563dd785d99a9623906554dfe8ccd507930b4
2018-01-17 12:55:40 -05:00
Kartikaya Gupta c017160218 Bug 1430660 - Move the APZ update of scroll layer positions into a transaction. r=nical
MozReview-Commit-ID: 45ijEtB1C0Z

--HG--
extra : rebase_source : b700ad68fdc44096dc0348bf1badf94dc993d36f
2018-01-17 11:19:39 -05:00
Brindusan Cristian 5b9b45cdbc Backed out changeset 21f6b322e9a2 (bug 1430660) for build bustage on webrender_bindings/RenderThread.cpp(475) on a CLOSED TREE 2018-01-17 16:21:15 +02:00
Kartikaya Gupta e8bef6adc6 Bug 1430660 - Move the APZ update of scroll layer positions into a transaction. r=nical
MozReview-Commit-ID: 4fd3FM1K9T3

--HG--
extra : rebase_source : 94235d274a8c4cde254fa73e8eef7a3b34ff59da
2018-01-16 15:33:34 -05:00
sotaro 952e915b38 Bug 1430694 - Check if RenderCompositor is created r=nical 2018-01-17 09:25:31 +09:00
sotaro 8ebc9420bc Bug 1429997 - Add RenderCompositor to wrap platform dependent code r=nical 2018-01-15 22:22:15 +09:00
Nicolas Silva 43644aaded Bug 1425453 - Move more WebRender api calls into transactions. r=kats 2018-01-12 12:24:07 +01:00
Nicolas Silva e9e30c02c6 Bug 1425453 - Bindings for WebRender's transaction API. r=kats 2018-01-12 12:23:59 +01:00
Kartikaya Gupta 25d94ecc40 Bug 1422057 - Adjust some logging-related things to be more useful. r=mstange
MozReview-Commit-ID: Idheevum5Fd

--HG--
extra : rebase_source : a441cc0b65c763763a4a417cc1d713cd771e467d
2018-01-06 09:52:57 -05:00
Ryan Hunt 20789635c3 Generate webrender_ffi_generated with cbindgen:0.3.3 (bug 1428142, r=nical)
--HG--
extra : rebase_source : 930fc29308f193d9e3b54495508fb6101806bac5
extra : histedit_source : 01d64855b96776b623a248a85ee96febfdc0edfd%2C38c52cb3034b777d66de02ec5041b2d08f4bb272
2018-01-04 12:23:34 -06:00