Commit Graph

109 Commits

Author SHA1 Message Date
Jean-Yves Avenard
e98f4caee4 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
2019-04-11 12:36:51 +00:00
Michael Froman
da4377d059 Bug 1500454 - remove PVideoDecoder, etc from dom namespace. r=jya
Differential Revision: https://phabricator.services.mozilla.com/D15156
2018-12-21 22:34:57 +00:00
Sylvestre Ledru
e5a134f73a Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset
2018-11-30 11:46:48 +01:00
sotaro
43d5a2647d Bug 1494538 - Fallback to sofware when GPU process is disabled on Windows r=mattwoodrow 2018-10-01 12:09:18 +09:00
Kartikaya Gupta
5df2dfffc9 Bug 1448490 - Make the layers id a struct instead of a uint64_t. r=mattwoodrow
The new struct is in LayersTypes.h, all the rest of the changes are just
replacing existing uint64_t instances with the new LayersId struct.

Note that there is one functional change, in
CompositorBridgeParent::DeallocPWebRenderBridgeParent, where we now
correctly convert the PipelineId to a LayersId before using it to index
into sIndirectLayerTrees, whereas before we were incorrectly just using
the mHandle part of the PipelineId.

MozReview-Commit-ID: GFHZSZiwMrP
2018-03-24 19:06:01 -04:00
Kartikaya Gupta
4c45bb80fa Bug 1441916 - Modify the static GetAPZCTreeManager to return an IAPZCTreeManager. r=botond
This static function has only two call sites. One (in GPUProcessManager)
is unused, so it can be removed. The other (in
InProcessCompositorSession) takes the returned APZCTreeManager and
exposes it as an IAPZCTreeManager. Instead of doing this, we can simply
expose it as an IAPZCTreeManager from CompositorBridgeParent itself, to
reduce the number of places that can potentially grab a handle to the
APZCTreeManager.

MozReview-Commit-ID: BjLf6GSsnKz
2018-03-01 23:00:41 -05:00
Julian Seward
4c407fadd0 Bug 1415494 - Uninitialised value use in mozilla::layers::CompositorManagerChild::IsInitialized. r=aosmond. 2017-11-16 11:31:51 +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
f99a2311c3 Bug 1394338 - Add WebRender error handling to RendererOGL r=nical 2017-08-30 09:10:22 +09:00
Ryan Hunt
c37f84958c Bug 1377950 - Stub in a function for resetting all compositors with GPUProcessManager. r=jrmuizel
MozReview-Commit-ID: HsKCGli3TOM
2017-08-11 02:51:23 -05:00
sotaro
eb2d5e90e3 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
Andrew Osmond
68795a62a3 Bug 1381095 - Fallback correctly to non-WebRender if the GPU process/WebRender are disabled when creating a remote compositor session. r=dvander 2017-07-20 09:20:22 -04:00
David Anderson
839c7cbab4 Disable Advanced Layers when the sanity test fails. (bug 1377866 part 3, r=mchang) 2017-07-10 19:30:52 -07:00
Masayuki Nakano
bb77d5ed5a Bug 1377672 - part3: IMEStateManager::NotifyIME() should ignore notifications and requests which comes from unexpected process r=m_kato,smaug
IME should receive notifications and requests only from proper process.  E.g., IME shouldn't commit composition by a request which came from previous focused process.

This patch makes that IMEStateManager::NotifyIME() takes pointer to TabParent optionally.  If the request or notification came from remote process, it should be non-nullptr.  Then, this makes it ignore notifications and requests from unexpected process.

Note that this patch also touches some gfx headers because they use |ipc::| but compiler is confused at the ambiguousness between |mozilla::ipc::| and |mozilla::dom::ipc::|.

Finally, this patch changes the NS_ASSERTION in IMEHandler::OnDestroyWindow() to MOZ_ASSERT because the orange caused by the NS_ASSERTION was not realized since there was already an intermittent orange bug caused by different NS_ASSERTION.

MozReview-Commit-ID: 9CgKXQRJWmN
2017-07-06 00:47:40 +09:00
Andrew Osmond
bc7f3702e5 Bug 1376590 - When disabling the GPU process, ensure its dependencies are initialized for the same process. r=dvander 2017-06-28 11:31:42 -07:00
domfarolino@gmail.com
a74b51da54 Bug 1274663 - Expose API to trigger device reset. r=dvander 2017-06-15 14:34:00 -04:00
Andrew Osmond
66e7a78a27 Bug 1365927 - Part 4. Replace PCompositorBridge integration hooks with PCompositorManager. r=dvander 2017-06-14 11:39:59 -04:00
Wes Kocher
7d69f7ff18 Backed out 6 changesets (bug 1365927) for build failures in ipc_message_utils.h a=backout CLOSED TREE
Backed out changeset 11fc0da380a2 (bug 1365927)
Backed out changeset 9f1dee5a6c42 (bug 1365927)
Backed out changeset f4954c824f5c (bug 1365927)
Backed out changeset 144ac6cc76f8 (bug 1365927)
Backed out changeset 961e782cf7c7 (bug 1365927)
Backed out changeset 12a093fb86a4 (bug 1365927)

MozReview-Commit-ID: 6CDxqOJzMjE
2017-06-13 12:45:03 -07:00
Andrew Osmond
f6a5543ec0 Bug 1365927 - Part 4. Replace PCompositorBridge integration hooks with PCompositorManager. r=dvander 2017-06-13 15:19:36 -04:00
sotaro
2e1dd2b3e1 Bug 1366915 part 2 - Make CompositorBridgeChild allocate pipeline id for async image pipeline r=nical 2017-05-30 09:59:44 +09:00
David Anderson
0e9068641f Remove old device reset and compositor swapping code. (bug 1363126 part 3, r=rhunt) 2017-05-11 22:44:28 -07:00
David Anderson
97fbf5b1fc Handle remote device resets by recreating the entire rendering stack. (bug 1363126 part 1, r=rhunt, ipc_r=billm) 2017-05-11 22:44:27 -07:00
Randall Barker
c955f482b1 Bug 1335895 - Android GeckoView Dynamic Toolbar Version 3 r=botond,dvander,jchen,kats
This version of the Dynamic Toolbar moves the animation of the toolbar
from the Android UI thread to the compositor thread. All animation for
showing and hiding the toolbar are done with the compositor and a static
snapshot of the real toolbar.

MozReview-Commit-ID: BCe8zpbkWQt
2017-04-20 15:15:14 -07:00
Kartikaya Gupta
a1df68e319 Merge m-c to graphics
MozReview-Commit-ID: 7iqIrSl2VpU
2017-04-15 17:05:27 -04:00
sotaro
111d213410 Bug 1356190 - Fix GetNextExternalImageId() r=jrmuizel 2017-04-14 17:06:09 +09:00
Jay Harris
315fc078db Bug 1338011 - Adds an intermediate fallback when the GPU process crashes - r=gerald
MozReview-Commit-ID: 9x1ckaWagcE
2017-04-15 09:34:01 +12:00
Kartikaya Gupta
1bcda612ce Bug 1350638 - Remove sync GetCompositorOptions call in TabChild::InitRenderingState. r=dvander
The goal of this patch is to remove the call to the sync IPC
GetCompositorOptions message from TabChild::InitRenderingState. In order
to this, we have InitRenderingState take the CompositorOptions as an
argument instead, and propagate that backwards through the call sites.
Eventually we can propagate it back to a set of already-sync IPC
messages in PCompositorBridge that are used during layers id
registration (NotifyChildCreated, NotifyChildRecreated, etc.). Therefore
this patch effectively piggybacks the CompositorOptions sync IPC onto
these pre-existing sync IPC messages.

The one exception is when we propagate it back to the AdoptChild call.
If this message were sync we could just use it like the others and have
it return a CompositorOptions. However, it is async, so instead we add
another call to GetCompositorOptions here temporarily. This will be
removed in the next patch.

MozReview-Commit-ID: AtdYOuXmHu4
2017-04-09 17:30:27 -04:00
David Anderson
d4e994a584 When using the GPU process, combine layer ownership and window mapping into a single IPC message. (bug 1350660 part 1, r=rhunt, r=billm) 2017-04-03 15:13:37 -07:00
vincentliu
86bec960b0 Bug 1314543 - Make EnsureGPUReady() returns bool to make sure GPU process is readay. r=dvander 2017-03-30 09:23:24 +08:00
David Anderson
3d416e077a Add memory reporting message support to PGPU. (bug 1321492 part 6, r=rhunt, r=erahm) 2017-01-26 16:35:54 -08:00
Randall Barker
1df3957d1f Bug 1328752 - part 1, Add UiCompositorController r=dvander 2017-01-20 11:01:29 -08:00
Kartikaya Gupta
e3df5ca2fe Bug 1330037 - Introduce a CompositorOptions struct that holds options on a per-compositor basis. r=dvander
MozReview-Commit-ID: Kja7zpCDmp3
2017-01-12 17:29:41 -05:00
David Anderson
0757ad84ef Don't reset devices for each tab when the compositor resets. (bug 1316788, r=rhunt) 2016-11-14 11:47:01 -08:00
Ryan Hunt
8d2b5ce02d Bug 1316476 - Limit the amount of device resets we allow with the gpu process. r=dvander 2016-11-09 20:57:04 -06:00
Carsten "Tomcat" Book
a3d6de70fa merge mozilla-inbound to mozilla-central a=merge 2016-11-09 16:38:04 +01:00
Matt Woodrow
bff0924458 Bug 1315510 - Automatically recreate VideoDecoderManager if the GPU process crashes. r=dvander 2016-11-08 15:21:35 +13:00
Kartikaya Gupta
281dba6afe Bug 1315974 - Have the CompositorBridgeChild take a LayerManager instead of a ClientLayerManager. r=dvander
MozReview-Commit-ID: CPTCQgIl5ad
2016-11-08 10:42:19 -05:00
George Wright
afd7a124a4 Bug 1314426 - Add a method to nsIDOMWindowUtils to terminate the GPU process and get the GPU process pid r=smaug,dvander 2016-11-07 14:22:48 -05:00
Matt Woodrow
2cdb3a11b4 Bug 1314186 - Resync LayerTreeId mappings to the GPU process if it restarts. r=dvander 2016-11-03 09:55:07 +13:00
Ryan Hunt
7b7769e60a Bug 1313199 - Sync a device reset from GPU process to main process. r=dvander 2016-11-06 13:01:52 -06:00
Phil Ringnalda
718a8f85bf Backed out changeset d537051ade6a (bug 1315510) for nsTArray_base leaks and a fondess for crashing
CLOSED TREE

MozReview-Commit-ID: KD3jAkCg0O7
2016-11-07 22:18:21 -08:00
Matt Woodrow
edd3d953d7 Bug 1315510 - Automatically recreate VideoDecoderManager if the GPU process crashes. r=dvander 2016-11-08 15:21:35 +13:00
David Anderson
c61aa58fc0 Send accumulated GPU process telemetry to the UI process. (bug 1304494 part 3, r=gfritzsche) 2016-10-30 22:35:57 -07:00
Kartikaya Gupta
892f808838 Bug 1275314 - Allow flushing in-progress checkerboard reports in the GPU process as well. r=dvander
MozReview-Commit-ID: CXLzkiloHW
2016-10-15 08:45:02 -04:00
Wes Kocher
51f2cfb44d Backed out changeset 73a60f9b3c2f (bug 1275314) for GTest bustage CLOSED TREE 2016-10-14 14:52:44 -07:00
Kartikaya Gupta
0e842d3e6d Bug 1275314 - Allow flushing in-progress checkerboard reports in the GPU process as well. r=dvander
MozReview-Commit-ID: 3EPv8hh7Zxh
2016-10-14 15:38:01 -04:00
David Anderson
5e162c7876 Add a testing pref to let the GPU process restart multiple times. (bug 1305941, r=mattwoodrow) 2016-09-30 01:21:21 -07:00
Sebastian Hengst
27a909b8c3 Backed out changeset 690c50d5a4ca (bug 1305941) for build bustage. r=backout on a CLOSED TREE 2016-09-28 22:54:03 +02:00
David Anderson
bc46b1359d Add a testing pref to let the GPU process restart multiple times. (bug 1305941, r=mattwoodrow) 2016-09-28 13:23:48 -07:00
Matt Woodrow
52f30d559e Bug 1288618 - Part 13: Add VideoDecoderManager protocol. r=dvander 2016-09-21 21:25:33 +12:00