Commit graph

194 commits

Author SHA1 Message Date
Jean-Yves Avenard
11ac9e9cf8 Bug 1540581 - P6. Tidy some C++ declarations in gfx/. r=gerald,jrmuizel
* Remove redundant virtual keywords
* Mark all destructors of inheriting classes as virtual for clarity
* Mark all classes without virtual destructor as final (exposed errors)
* Make destructor virtual where it needed to be (some were missing)
* Replace empty ({}) code declaration in header with = default
* Remove virtual unused methods

I probably missed some, it quickly became a rabbit hole.

Differential Revision: https://phabricator.services.mozilla.com/D26060

--HG--
extra : moz-landing-system : lando
2019-04-11 12:36:51 +00:00
Andrew Osmond
5756f575b9 Bug 1534749 - Handle shutdown races between the compositor thread and IPDL object setup. r=rhunt
When the compositor thread has begun shutdown, it will spin the event
loop for the main thread until the last CompositorThreadHolder reference
has been released. While spinning, new IPDL objects may be attempted to
be created which depend on the compositor thread; we should check to
ensure the compositor thread is still around before proceeding with
creation. These objects include CompositorManagerParent,
ImageBridgeParent, and VRManagerParent. Additionally there is a very
similar bug between the vsync thread and VsyncBridgeChild.

Differential Revision: https://phabricator.services.mozilla.com/D23308
2019-03-26 14:21:56 -04:00
Sylvestre Ledru
4aa92e3091 Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D22514
2019-03-13 10:19:06 +01:00
Ryan Hunt
85ff4bdc33 Bug 1523969 part 8 - Move method definition inline comments to new line in 'gfx/'. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D21108

--HG--
extra : rebase_source : 48a4586f507891f3a2f0f970e9b9a0b15f0f3d61
2019-02-25 16:07:19 -06:00
Matt Woodrow
6b3937aa72 Bug 1529795 - Record profiler markers when we drop video frames. r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D20755

--HG--
extra : moz-landing-system : lando
2019-02-27 17:35:05 +00:00
Chris Peterson
45bbf620fc Bug 1528881 - Part 7: gfx/layers: Remove some unused functions. r=mattwoodrow
clang's -Wmissing-prototypes option identifies global functions that can be made static (because they're only called from one compilation unit) or removed (if they're never called).

gfx/layers/Layers.cpp:58:7 [-Wmissing-prototypes] no previous prototype for function 'FILEOrDefault'
gfx/layers/ipc/CompositorThread.cpp:26:25 [-Wmissing-prototypes] no previous prototype for function 'GetCompositorThreadHolder'
MINIMUM_TILE_COPY_AREA()

Differential Revision: https://phabricator.services.mozilla.com/D20266

--HG--
extra : rebase_source : 5c80a140cbd661644e2076a8852a0cfe58539083
extra : source : 7f44c2bcebce0b4bd549d653e4eff8b4bad71e29
2019-02-17 16:04:13 -08:00
sotaro
d2b017325d Bug 1525818 - Remove NS_ASSERTION in ImageBridgeParent::GetInstance() r=mattwoodrow
Sometimes NS_ASSERTION was hit during window closing. It happens because of aync architecture. It is better to change the NS_ASSERTION to NS_WARNING.

Differential Revision: https://phabricator.services.mozilla.com/D18920

--HG--
extra : moz-landing-system : lando
2019-02-07 20:28:30 +00:00
sotaro
f9b03cbc21 Bug 1462885 - Fix iteration in ImageBridgeParent::NotifyImageComposites() r=mattwoodrow
Iteration becomes wrong when ImageBridgeParent::GetInstance() fails in NotifyImageComposites().

Differential Revision: https://phabricator.services.mozilla.com/D18172

--HG--
extra : moz-landing-system : lando
2019-01-31 06:57:41 +00:00
Sylvestre Ledru
265e672179 Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset

--HG--
extra : amend_source : 4d301d3b0b8711c4692392aa76088ba7fd7d1022
2018-11-30 11:46:48 +01:00
Jean-Yves Avenard
70040ff272 Bug 1245400 - P3. Report number of frames dropped by compositor back to VideoSink. r=nical
We report the number of frames dropped by the compositor because they were too late through:
ImageComposite -> ImageHost -> CompositableTransactionParent -> ImageBridgeParent -> IPDL -> ImageBridgeChild -> ImageContainerListener -> ImageContainer -> VideoSink

Differential Revision: https://phabricator.services.mozilla.com/D2177
2018-08-22 17:26:36 +02: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
Ryan Hunt
fd416587c0 Bug 1455408 - Remove dead code in ImageBridge that was used for changing thread priority. r=kats
MozReview-Commit-ID: 8sYuUXI8fz4

--HG--
extra : rebase_source : 8eff5abc88b6502c600205dd85c97a98f0f7294d
extra : histedit_source : 4682a722fc136aad374d599e9c8bda62528f71be
2018-04-19 14:36:09 -05:00
Ryan Hunt
691f20afd2 Remove ReadLockHandle and ReadLockInit code (bug 1445008, r=aosmond)
This code is unused now that ReadLockDescriptors are not sent in layer transactions.

--HG--
extra : rebase_source : 8cd25541b22c3151e2dbd2f8ea6d1119e2f26c94
extra : source : 99a2d26d1ba82ad34a6c27641500a424cda015c3
2018-03-13 17:00:18 -05:00
Ryan Hunt
084c9b6f4c Allocate TextureReadLock at TextureClient creation and drop file handles immediately after. (bug 1416726, r=aosmond)
This changes the lifecycle and API for TextureReadLock to fix file descriptor exhaustion
crashes. These changes are partially superficial and mostly align the API of TextureReadLocks
with their actual usage.

The changes are:

1. Create the TextureReadLock in the TextureClient constructor so it's available before IPC creation
    a. This is superficial as EnableReadLock was always called before IPC creation
2. Send the ReadLockDescriptor in the PTextureConstructor message and close the file handle
3. Receive the ReadLockDescriptor in TextureHost and close the file handle
4. Send a boolean flag in layer transactions if the texture is read locked instead of a descriptor
5. Use a boolean flag in TextureHost to determine if the ReadLock must be unlocked instead of a nullptr

I believe that we can remove the InitReadLocks code from LayerTransaction as that was added to
prevent file descriptor limits in IPDL messages and is no longer needed with this change. But
that is a non-essential change and this patch is already big enough.

MozReview-Commit-ID: DzHujrOQejH

--HG--
extra : rebase_source : 3bdd7c9bc8edfdc386faad8a9e59ad7dc18ed91d
2018-03-12 08:10:13 -05:00
sotaro
a15823ac76 Bug 1416614 - Add checks to ImageBridgeParent::NotifyImageComposites r=nical 2017-11-15 09:08:18 +09:00
Chris Peterson
84d577e4a4 Bug 1412048 - Remove NS_RUNTIMEABORT. r=froydnj
Use MOZ_CRASH, MOZ_CRASH_UNSAFE_OOL, or MOZ_CRASH_UNSAFE_PRINTF instead.

MozReview-Commit-ID: 1kCCHMlgbGP

--HG--
extra : rebase_source : 2f07ced16bccebf30cd3b2b5fea35e9868d32dad
extra : source : 0bf2c8425b828e71de55dd175fd0dad635b4e67d
2017-10-24 23:41:15 -07:00
Andrew Osmond
919f128d84 Bug 1408532 - Ensure ImageBridgeParent cleans up old actors if the process ID is reused. r=dvander 2017-11-03 07:49:18 -04:00
Andrew Osmond
2e03149cc0 Backed out changeset d84ea38d6fd0 (bug 1399453) because the annotations are no longer needed. 2017-11-01 13:34:43 -04:00
Sebastian Hengst
f07fc93141 merge mozilla-inbound to mozilla-central. r=merge a=merge
MozReview-Commit-ID: 4PW6ESqLL73
2017-10-30 23:52:23 +01:00
Daniel Holbert
126bd9e1a4 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

--HG--
extra : rebase_source : c6162fa3cf539a07177a19838324bf368faa162b
2017-10-27 16:10:06 -07:00
Daniel Holbert
0aa7ac8984 Bug 1412427 part 2: Move vim mode line below emacs mode line in a few gfx files, for consistency. r=jrmuizel
This patch doesn't modify the mode lines at all -- it just swaps their order,
and makes each one its own C++ comment, separate from the MPL boilerplate
comment.

MozReview-Commit-ID: BEZJVj2sMuK

--HG--
extra : rebase_source : 9e0946c8a8d0b67c11b5932b9d1e51e0e6e8ebef
2017-10-27 15:55:37 -07:00
Andrew Osmond
63fdae83e1 Bug 1405364 - ImageBridgeParent::GetInstance should not mutate sImageBridges for lookups. r=sotaro 2017-10-30 06:58:04 -04:00
Andrew Osmond
63505fc609 Bug 1399453 - Temporarily annotate crash reports with compositor thread owners. r=dvander
From the crashes associated with bug 1389021, we know that some
compositor thread IPDL owners are not being cleaned up properly. We do
not know which protocols are causing the problem, so we temporarily will
annotate the logs with the ownership status. This should be limited to
under a dozen instances of the protocols.

This change will be backed out after a few builds are produced with it
and we see the first crash reports with the relevant data.
2017-10-23 14:11:02 -04:00
Sebastian Hengst
f44d2aa184 Backed out changeset dc9d9c01080a (bug 1399453) for static bustage at layers/CompositorThread.h:68: bad implicit conversion constructor for 'CompositorThreadHolderDebug'. r=backout on a CLOSED TREE
--HG--
extra : amend_source : 653c00800bb4ed4800ed62fb9df5529ea9ecf48d
2017-10-23 18:26:14 +02:00
Andrew Osmond
d4a18daeed Bug 1399453 - Temporarily annotate crash reports with compositor thread owners. r=dvander
From the crashes associated with bug 1389021, we know that some
compositor thread IPDL owners are not being cleaned up properly. We do
not know which protocols are causing the problem, so we temporarily will
annotate the logs with the ownership status. This should be limited to
under a dozen instances of the protocols.

This change will be backed out after a few builds are produced with it
and we see the first crash reports with the relevant data.
2017-10-23 11:31:02 -04:00
Andrew Osmond
3ab0c4aca3 Bug 1402592 - Ensure that ImageBridgeParent instances are closed by the parent during shutdown. r=dvander
We currently allow the content process to shutdown the IPDL objects on
behalf the parent, and we wait for all of these instances to be freed
before we complete shutdown. This is undesirable because it requires the
parent to trust the child rather than the other way around; the child
can hold shutdown hostage by simply not releasing its instances. The
child should already support the parent closing its graphics IPDL
objects because the GPU process itself can die abruptly and be restored
at a later time.
2017-09-26 14:03:29 -04:00
Andrew Osmond
085ed59d74 Bug 1401668 - Change ImageBridgeParent to acquire a compositor thread reference on construction. r=dvander 2017-09-20 15:59:08 -04:00
Andrew Osmond
2b3ebd2479 Backed out changeset 727f0d09e299 (bug 1399453) because the annotations are no longer needed. 2017-09-15 15:11:29 -04:00
Andrew Osmond
85db0466a2 Bug 1399453 - Temporarily annotate crash reports with compositor thread owners. r=dvander
From the crashes associated with bug 1389021, we know that some
compositor thread IPDL owners are not being cleaned up properly. We do
not know which protocols are causing the problem, so we temporarily will
annotate the logs with the ownership status. This should be limited to
under a dozen instances of the protocols.

This change will be backed out after a few builds are produced with it
and we see the first crash reports with the relevant data.
2017-09-13 11:16:05 -04:00
sotaro
a773ee4276 Bug 1354411 - Rebuild CompositorSessions if WebRender is disabled r=kats
When WebRender creation is failed, WebRender is disabled in gecko. There is a case that WebRenderBridgeParents exist when WebRender is disabled. To handle this, gecko needs to rebuild all CompositorSessions.

There is also a problem related to gfxVars::UseWebRender on compositor thread. If e10s is enabled, but no-gpu process(default on linux and mac), gfxVars::UseWebRender change is soon notified by compositor thread tasks. If WebRender creation failure happens at 2nd WebRender creation, several WebRenderBridgeParents for 1st WebRender could exist. IPC messages from WebRenderLayerManager are normally async, then there is a chance that the WebRenderBridgeParents receive the messages after the gfxVars::UseWebRender change. Further the gfxVars::UseWebRender change in content process could be delayed than WebRenderBridgeParents, then content process does not have a way to stop sending PWebRenderBridge IPC until the change of gfxVars::UseWebRender is received. WebRenderBridgeParent related tasks handle the message, but some tasks are done based on gfxVars::UseWebRender. At this time, gfxVars::UseWebRender returned false on compositor thread, then it cause unexpected result for WebRenderBridgeParent and WebRender. To addres this inconsistent situation, WebRenderBridgeParent related tasks on compositor thread stop to use gfxVars::UseWebRender.
2017-08-04 14:36:41 +09:00
Bill McCloskey
f115503a0b Bug 1372405 - Provide names for all runnables in the tree (r=froydnj)
MozReview-Commit-ID: DKR6ROiHRS7
2017-06-26 14:19:58 -07:00
Carsten "Tomcat" Book
8a1350b5a6 Backed out changeset 4f6302a98ae4 (bug 1372405)
--HG--
extra : rebase_source : 41632f3158e88e692809731394a683d065a73dfb
2017-06-21 13:59:26 +02:00
Bill McCloskey
6b3e84ed5f Bug 1372405 - Provide names for all runnables in the tree (r=froydnj)
MozReview-Commit-ID: DKR6ROiHRS7
2017-06-20 21:44:11 -07:00
Carsten "Tomcat" Book
ea1b86680c Backed out changeset 9846de3bd954 (bug 1372405)
--HG--
extra : rebase_source : 5d4a48e8ec394c329994689d938d2a6e9b2752b0
2017-06-20 08:27:02 +02:00
Bill McCloskey
4592152411 Bug 1372405 - Provide names for all runnables in the tree (r=froydnj)
MozReview-Commit-ID: DKR6ROiHRS7
2017-06-19 22:25:47 -07:00
sotaro
9825a21a17 Bug 1363280 - Fix Updating sImageBridges handling r=dvander,nical 2017-05-31 09:11:53 +09:00
sotaro
e39bdc681a Bug 1356944 - Fix external image id allocation of WebRenderTextureHost r=nical 2017-04-20 10:24:13 +09:00
Matt Woodrow
ef5a44cc58 Bug 1340117 - Batch ReadLock intializer into a separate IDPL message to avoid hitting the file descriptor limit. r=dvander 2017-02-27 16:12:12 +13:00
Matt Woodrow
f976d56579 Bug 1328797 - Part 3: Remove sync transactions entirely as they aren't used any more. r=nical
--HG--
extra : rebase_source : fa3bd3016fbfa322e5966079a4f211e16cb057c4
2017-02-16 11:31:18 +13:00
Matt Woodrow
450185804e Bug 1325227 - Part 1: Remove synchronous transaction replies since they don't return any data we didn't already have. r=nical
MozReview-Commit-ID: 2HIbk65L7zR
2016-12-06 13:34:54 -10:00
David Anderson
22504df44c Fix ImageBridgeChild memory tracking errors on shutdown. (bug 1323957 part 6, r=mattwoodrow)
--HG--
extra : rebase_source : 58a8df18d964cbe1b216cc7e8dbceb39760e632e
2017-01-17 18:47:07 -08:00
David Anderson
3d7a9b6ee1 Remove PCompositable. (bug 1323957 part 5, r=mattwoodrow)
--HG--
extra : rebase_source : 8b2a3826a08b14065d8ef3474eddc38d592a4f82
2017-01-17 18:47:07 -08:00
David Anderson
065c15518d Link Compositables via IDs instead of actors. (bug 1323957 part 4, r=mattwoodrow)
--HG--
extra : rebase_source : 1c4d789471a188c12bc9450c63ebaecc1b55c122
2017-01-17 18:47:06 -08:00
David Anderson
89d48ae344 Use CompositableHandle in ImageNotification. (bug 1323957 part 3, r=mattwoodrow)
--HG--
extra : rebase_source : 2e5b108e68c2774f61776481ad9c4fa558923e38
2017-01-17 18:47:06 -08:00
David Anderson
61c82e108f Remove PImageContainer. (bug 1325784 part 5, r=nical) 2017-01-04 10:19:30 -05:00
David Anderson
944e8cc055 Use async compositable IDs for image composite notifications. (bug 1325784 part 4, r=nical) 2017-01-04 10:19:30 -05:00
David Anderson
2d302f4637 Move async compositable ID allocation to ImageBridgeChild. (bug 1325784 part 3, r=nical) 2017-01-04 10:19:29 -05:00
David Anderson
e8efc823bc Move CompositableMap into ImageBridge. (bug 1325784 part 2, r=nical) 2017-01-04 10:19:29 -05:00
Carsten "Tomcat" Book
e7ca75286b Merge mozilla-central to inbound 2016-11-16 14:53:15 +01:00
Kan-Ru Chen
f8100451db Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm
We will use the new type for the generated IPDL message handler
prototype to make sure correct error handling method is called.

MozReview-Commit-ID: AzVbApxFGZ0
2016-11-15 04:26:00 +01:00