Commit graph

408 commits

Author SHA1 Message Date
Nicolas Silva
0805d95b99 Bug 1482109 - Hook the memory pressure observer up with WebRender. r=sotaro
--HG--
extra : rebase_source : e23d9db4ffff5d1994f476e660f7f6cbe52e6ad6
2018-08-20 15:23:54 +02:00
Nicolas Silva
3cea37c9c2 Bug 1469496 - Handle video memory purge with WebRender. r=sotaro 2018-08-10 17:14:57 +02:00
Andi-Bogdan Postelnicu
b2d4c86823 Bug 1453795 - GFX - Initialize member fields in classes/ structures. r=nical
--HG--
extra : rebase_source : 56f2cc017632bf27115490ae05254019108c6179
extra : amend_source : 98ea6c3c02a9f7650d2cf65deaf5085cf9a2efa4
2018-06-16 17:42:33 +03:00
Jim Chen
2c94ad0e54 Bug 1472140 - 3. Remove ForceIsFirstPaint ipdl call; r=kats
Remove the PCompositorBridge::ForceIsFirstPaint call that's no longer
used anywhere.
2018-07-31 12:21:49 -04:00
Kartikaya Gupta
22456cd52b Bug 1479075 - Ensure FlushRenderingAsync actually flushes the compositor. r=sotaro
MozReview-Commit-ID: AfVIwLj2YJp

--HG--
extra : rebase_source : 3c9f4af10be9ab38fb708a2be4cb9393cd7e86c7
2018-07-28 04:47:08 -04:00
Kartikaya Gupta
bfa67498d5 Bug 1478504 - Use NotifyPipelineRendered instead of DidComposite for WebRender. r=sotaro
MozReview-Commit-ID: 4eaMTEPD9NY

--HG--
extra : rebase_source : 7d2f5b5fe4d45f135f0899dccf6a910848b5c7e4
2018-07-27 09:42:30 -04:00
Brian Hackett
562987ce84 Bug 1465466 Part 3 - When recording/replaying, composite in the main thread's event loop instead of waiting for vsyncs, r=nical.
--HG--
extra : rebase_source : 0dbdcb4698e349ceb53e0621d5fa453bb1f17357
2018-07-23 21:47:28 +00:00
Brian Hackett
99d34528e4 Bug 1465466 Part 1 - Use a separate compositor in recording/replaying processes, r=nical.
--HG--
extra : rebase_source : 003f6557370f2e4e6959ea14e833f7e2e617c5b0
2018-07-23 21:46:47 +00:00
Ryan Hunt
f8b04d075b Bug 1470528 - Implement CONTENT_FRAME_TIME for the webrender codepath. r=sotaro
This commit implements the CONTENT_FRAME_TIME metric for the webrender code
path. It follows the same structure as the previous commit implementing it for
the non-webrender code path.

MozReview-Commit-ID: 6aI5uISjgge

--HG--
extra : rebase_source : 973253589d6c27138bd49f4d81b3e74c3fcf5022
extra : histedit_source : 5b126b0285b674d59d8bd4b7bda09a01804dc043
2018-06-26 13:43:14 -05:00
Ryan Hunt
73970a1f68 Bug 1470528 - Implement CONTENT_FRAME_TIME for the non-webrender codepath. r=sotaro, data-review=francois
This commit adds the CONTENT_FRAME_TIME metric which tracks the time from the beginning
of a paint in the content process until it is presented in the compositor.

There is existing logging for frame latency which tracks from the beginning of a refresh
tick until the frame is presented. This is undesirable for this probe as javascript and
layout can run in this time period. So this probe uses the existing infrastructure for
logging frame latency, but uses a start time from BeginTransaction in layer manager.

MozReview-Commit-ID: 5z9LS3tsZTY

--HG--
extra : rebase_source : 29ebd6a85dd49ee263d50e3674eec4957ac5f12a
extra : histedit_source : 1aa9f4f31b5bff6736e0c0e576a5611880d0ab33
2018-06-26 13:40:10 -05:00
Narcis Beleuzu
04b4925170 Backed out 3 changesets (bug 1470528) for build bustages on WebRenderBridgeParent. CLOSED TREE
Backed out changeset 90513daef576 (bug 1470528)
Backed out changeset e438548991db (bug 1470528)
Backed out changeset f859daf8d8d9 (bug 1470528)
2018-07-04 00:41:14 +03:00
Ryan Hunt
c284332e41 Bug 1470528 - Implement CONTENT_FRAME_TIME for the webrender codepath. r=sotaro
This commit implements the CONTENT_FRAME_TIME metric for the webrender code
path. It follows the same structure as the previous commit implementing it for
the non-webrender code path.

MozReview-Commit-ID: 6aI5uISjgge

--HG--
extra : rebase_source : acbf83d0071e8932b5e96016e6e39e27a7b4da8c
extra : histedit_source : a0f93f80441e5f45c0113244d15400d0f53d9c92
2018-06-26 13:43:14 -05:00
Ryan Hunt
d34e6c84a0 Bug 1470528 - Implement CONTENT_FRAME_TIME for the non-webrender codepath. r=sotaro
This commit adds the CONTENT_FRAME_TIME metric which tracks the time from the beginning
of a paint in the content process until it is presented in the compositor.

There is existing logging for frame latency which tracks from the beginning of a refresh
tick until the frame is presented. This is undesirable for this probe as javascript and
layout can run in this time period. So this probe uses the existing infrastructure for
logging frame latency, but uses a start time from BeginTransaction in layer manager.

MozReview-Commit-ID: 5z9LS3tsZTY

--HG--
extra : rebase_source : cecb7149f50b2abe7a827dc20f1e8b8ade199258
extra : histedit_source : 581f8f38fc8335575d7275b903a8e1d6a9e5a369
2018-06-26 13:40:10 -05:00
sotaro
6bfc2aa91f Bug 1472600 - Update SyncHandle when Tab is moved between windows r=nical 2018-07-03 08:43:17 +09:00
Chris Peterson
2afd829d0f Bug 1469769 - Part 6: Replace non-failing NS_NOTREACHED with MOZ_ASSERT_UNREACHABLE. r=froydnj
This patch is an automatic replacement of s/NS_NOTREACHED/MOZ_ASSERT_UNREACHABLE/. Reindenting long lines and whitespace fixups follow in patch 6b.

MozReview-Commit-ID: 5UQVHElSpCr

--HG--
extra : rebase_source : 4c1b2fc32b269342f07639266b64941e2270e9c4
extra : source : 907543f6eae716f23a6de52b1ffb1c82908d158a
2018-06-17 22:43:11 -07:00
Bogdan Tara
3737701cfa Merge mozilla-central to autoland. a=merge CLOSED TREE 2018-06-05 12:33:18 +03:00
sotaro
d23a997a0d Bug 1466454 - Do not create CompositorWindow for non-WebRender case r=nical 2018-06-05 08:07:52 +09:00
Kartikaya Gupta
2cead810c0 Bug 1455597 - Flush the transaction to remove the pipeline before shutting down the WebRenderAPI. r=sotaro
MozReview-Commit-ID: GuQJjMzzQUE

--HG--
extra : rebase_source : 30f17418135fe68a3dfca0ee36f3df5c53924f24
2018-06-02 12:15:15 -04:00
Hiroyuki Ikezoe
6df13785df Bug 1464568 - Add an argument to ApplyAsyncProperties() to apply the transform by APZC or not. r=kats
In the next patch, we will introduce a new IPC function to get transform value
modified by both animations and APZC.

MozReview-Commit-ID: Uf5UHg5Jm

--HG--
extra : rebase_source : 68a52c110b049266ce982bc9284de8642dc3405d
2018-06-05 09:18:21 +09:00
Emilio Cobos Álvarez
fffb25b74f Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj
This was done automatically replacing:

  s/mozilla::Move/std::move/
  s/ Move(/ std::move(/
  s/(Move(/(std::move(/

Removing the 'using mozilla::Move;' lines.

And then with a few manual fixups, see the bug for the split series..

MozReview-Commit-ID: Jxze3adipUh
2018-06-01 10:45:27 +02:00
Kartikaya Gupta
d807b18531 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

--HG--
extra : rebase_source : bfa62e326fd830bc2ef771138e5008fb2bc0d6b8
2018-05-28 11:29:41 -04:00
Dorel Luca
f76b1b99de Merge mozilla-central to mozilla-inbound 2018-05-16 01:01:29 +03:00
James Willcox
f4894ab521 Bug 1458258 - Fix compositor invalidatation after resume with e10s r=mattwoodrow
MozReview-Commit-ID: CAZCUXSa9WZ
2018-05-15 14:03:24 -05:00
Kartikaya Gupta
26d10c1120 Bug 1461122 - Implement DidComposite(LayersId,...) for CompositorBridgeParent. r=sotaro
MozReview-Commit-ID: 5glDqCdvkQG

--HG--
extra : rebase_source : e7bcf7d338b79002e30a7647c15669f1958409e2
2018-05-15 08:49:29 -04:00
Bogdan Tara
fbf34d5681 Backed out 3 changesets (bug 1461122) for build bustages on workspace/build/src/obj-firefox/dist/include/mozilla/layers/CompositorBridgeParent.h CLOSED TREE
Backed out changeset 90445f7b62cd (bug 1461122)
Backed out changeset 9f87280ba566 (bug 1461122)
Backed out changeset 0efbd05857c2 (bug 1461122)
2018-05-15 15:13:08 +03:00
Kartikaya Gupta
976a28d5ae Bug 1461122 - Implement DidComposite(LayersId,...) for CompositorBridgeParent. r=sotaro
MozReview-Commit-ID: 5glDqCdvkQG

--HG--
extra : rebase_source : b3d50c9ffaa1b829b8a23fc5e16d15d1509eb080
2018-05-14 13:19:13 -04:00
James Willcox
2448df528a Bug 1453501 - Allow the compositor to be created in a paused state r=kats
MozReview-Commit-ID: B0wc8MYaBJg
2018-05-14 11:12:39 -05:00
shindli
42cb453a11 Backed out 3 changesets (bug 1453501) for bustage in build/build/src/gfx/gl/GLContextProviderEGL.cpp on a CLOSED TREE
Backed out changeset 8b53a7b34121 (bug 1453501)
Backed out changeset c07588586701 (bug 1453501)
Backed out changeset 6c231423492b (bug 1453501)
2018-05-14 17:05:14 +03:00
James Willcox
58d7215e3c Bug 1453501 - Allow the compositor to be created in a paused state r=kats
MozReview-Commit-ID: B0wc8MYaBJg
2018-05-14 08:15:38 -05:00
Kartikaya Gupta
bc221bf045 Bug 1460988 - Don't hold the layer trees lock while making calls that block on WR threads. r=sotaro
MozReview-Commit-ID: BKNf5wpG1br

--HG--
extra : rebase_source : bd4d382095c5f562f31fb2ba2ad0098fd1944c00
2018-05-11 16:36:22 -04:00
Kartikaya Gupta
d3693ff0d7 Bug 1457466 - Trigger a render/composite after an async scene build has been swapped in. r=nical
MozReview-Commit-ID: DLROm9gg544

--HG--
extra : rebase_source : d7ecffdfcb87b3148e5486b4f6810a6e73a9dcf3
2018-05-11 09:09:16 -04:00
Kartikaya Gupta
788be8ad4e Bug 1460289 - Reduce scope of indirect layer tree lock in RecvAdoptChild. r=sotaro
In particular, this change makes it so that we are not holding the lock
when we clone the WebRenderAPI, because that can result in a deadlock.

MozReview-Commit-ID: 33OGZdFMjEA

--HG--
extra : rebase_source : 4a1aeb81e3316a119d6b0aa798d827314543a70b
2018-05-09 15:23:30 -04:00
Kartikaya Gupta
88324fa347 Bug 1453360 - Store the compositor animation ids to delete until the epoch is rendered. r=nical
With async scene building, we might get the message to delete certain
compositor animation ids while we are still building and rendering
scenes that have those compositor animations. This patch associates
those ids with the epoch at which they are safe to delete, and only does
the deletion once we have rendered that epoch.

MozReview-Commit-ID: Jetfcdtwt1q

--HG--
extra : rebase_source : f06b8ee62e460432e8faed670e928f60cb6bc915
2018-04-27 10:32:31 -04:00
Kartikaya Gupta
3bb1df5d75 Bug 1453360 - Rename NotifyDidCompositeToPipeline to NotifyPipelineRendered. r=nical
This also rearranges the method implementation slightly to make the next
patch easier to read. This patch should have zero functional changes,
it's just refactoring.

MozReview-Commit-ID: 53StJ0TH3IT

--HG--
extra : rebase_source : 2f3aeb54271da75a7e051afc24b8a4c96f8496f2
2018-04-27 10:32:30 -04:00
Kartikaya Gupta
b9e8e2302f Bug 1457246 - Don't hold the sIndirectLayerTreesLock while making synchronous calls to the RenderBackend thread. r=sotaro
MozReview-Commit-ID: KzXZxCb2nA6

--HG--
extra : rebase_source : 64bbd524c5c9b0208cfbfa3899ff75a80903a3c6
2018-04-26 15:29:21 -04:00
Ryan Hunt
4017e5ac25 Bug 1455408 - Remove dead code from CompositorBridgeParent that was used for changing thread priority. r=kats
MozReview-Commit-ID: CXELmNfZoaN

--HG--
extra : rebase_source : ae6b8a64336f35432923d21397554601a17b052d
extra : histedit_source : df67c107d7956b34b3512203d922582fde57ade1
2018-04-19 14:48:23 -05:00
Kartikaya Gupta
fc9fac3891 Bug 1455974 - Ensure the metrics sharing IPC messages are sent from the compositor thread. r=botond
With WR+async scene building, the updater thread is no longer the
compositor thread, but we can only send the IPC messages from the
compositor thread. So we need to bounce those calls over to the right
thread.

MozReview-Commit-ID: 6M9bSLYLi5n

--HG--
extra : rebase_source : d908f22892f9d531266f100eeb4a863cb63d8270
2018-04-23 14:24:36 -04:00
Kartikaya Gupta
9c89bea7ea Bug 1455974 - Ensure that mCanSend is cleared at the right time. r=sotaro
mCanSend was being cleared in ActorDestroy which is fine, but we
actually cannot reliably send IPC messages from CompositorBridgeParent
after we get a RecvWillClose message, because that's the last thing that
the child side sends before it gets destroyed. After the WillClose
message there's no guarantee that the child side actor will still be
alive. So this patch also sets mCanSend to false in RecvWillClose.

mCanSend is only used in two places, both of which have to do with the
APZ metrics-sharing code, so this shouldn't have any unexpected
side-effects. It is needed for the next patch.

MozReview-Commit-ID: 8CuFienWVUU

--HG--
extra : rebase_source : 11e4455ffd8cd281d0a16ca34feb63fa89338ccc
2018-04-23 14:24:36 -04:00
Hiroyuki Ikezoe
1695970073 Bug 1454324 - Set non-animated values to the layer only if there is no running animation. r=kats
In the next patch, we skip updating animation value for the layer if the
animation value isn't changed.  So without this patch, we will have to update
animation value even if the value isn't changed at all.

MozReview-Commit-ID: 9tU7BTkNOHL

--HG--
extra : rebase_source : 0dbaaab9e52108c843f2d378785a67a8f374994c
2018-04-24 09:27:54 +09:00
Kartikaya Gupta
7c247ea2b5 Bug 1455715 - Fix some controller thread tasks that were bypassing the updater thread. r=botond
These tasks have an implicit ordering with other tasks that are
dispatched from the compositor thread to the updater thread, and so they
need to be bounced through the updater thread before we run them on the
controller thread.

MozReview-Commit-ID: 92nIYgyV8A2

--HG--
extra : rebase_source : c5edc5cb50dd44d1979d805bf17e707e1c8abac1
2018-04-20 14:27:35 -04:00
Kartikaya Gupta
697a7719d0 Bug 1455691 - Make the transaction id a struct instead of a uint64_t. r=mattwoodrow
MozReview-Commit-ID: 9yZknygQvFr

--HG--
extra : rebase_source : 8b7a2398bdabf52f2de1c5dbd30b6868c1e0bed0
2018-04-20 15:13:06 -04:00
Kartikaya Gupta
ca319705c4 Bug 1455302 - Robustify the IsSamplerThread() check similarly to the updater code. r=botond
Same as the previous patch, but adapted for the sampler thread.

MozReview-Commit-ID: 7PVaPl38FkM

--HG--
extra : rebase_source : b7637270fea226cde15b9351a4ef8ac7ffab5796
2018-04-19 10:10:00 -04:00
Kartikaya Gupta
30e82b56dd Bug 1455302 - Allow scheduling updater thread tasks before we have the updater thread id. r=botond
This is possible if we just let the APZUpdater know during construction
if WR is enabled or not, and that information combined with the pref
will allow it to know whether to use the scene builder thread task queue
or just use the compositor thread as the updater thread.

MozReview-Commit-ID: 7IGMMtl7iFP

--HG--
extra : rebase_source : 3950adf77f4b48906b29cdb36f0437df1540bec6
2018-04-19 10:09:59 -04:00
Kartikaya Gupta
ee76c6b413 Bug 1451469 - Maintain a map from WrWindowId to APZSampler. r=botond
MozReview-Commit-ID: Bfkfs6FTOQ6

--HG--
extra : rebase_source : 0ca8d3b9452b9ece36eadf2bd2b1bb1c0783756d
2018-04-16 17:39:13 -04:00
Kartikaya Gupta
f245e247b3 Bug 1454430 - Ensure the ClearTree task runs before we shut down webrender. r=nical
MozReview-Commit-ID: BCc0zuZvktj

--HG--
extra : rebase_source : e35e41a33943a7e2d5eae869ace62802040a0d7a
2018-04-16 14:21:04 -04:00
Sebastian Hengst
0819f35e51 Backed out 4 changesets (bug 525063) on request from Andi. a=backout
Backed out changeset 516c4fb1e4b8 (bug 525063)
Backed out changeset 6ff8aaef2866 (bug 525063)
Backed out changeset bf13e4103150 (bug 525063)
Backed out changeset d7d2f08e051c (bug 525063)
2018-04-13 16:01:28 +03:00
sotaro
d411e21feb Bug 1453195 - Reduce mOptions.UseWebRender() usage in CompositorBridgeParent r=nical 2018-04-12 12:18:50 +09:00
Tristan Bourvon
a3a77c0312 Bug 525063 - Initialize uninitialized class attributes in m-c. r=ehsan 2018-04-10 21:11:02 +02:00
sotaro
35982d6737 Bug 1452901 - Schedule generate frame r=nical 2018-04-11 11:34:25 +09:00
Kartikaya Gupta
97a6b6003c Bug 1449982 - Conceptually split the mUpdaterQueue into separate queues per layers id. r=botond
This allows us to treat tasks from different layers id as independent,
thereby removing the unnecessary latency increase as described in bug
1449982 comment 33.

Note that we could probably implement this by actually maintaining
separate queues for each layers id, but that involves more overhead
since we would need to have a map from layers id to task queue, and
removing entries from that map becomes tricky with respect to locking
and timing.

MozReview-Commit-ID: 7jtYqNDwJqP

--HG--
extra : rebase_source : d55fa2c20c5e78a330033dcf049d5cc468024bb0
2018-04-10 12:30:01 -04:00