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

312 Коммитов

Автор SHA1 Сообщение Дата
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
Coroiu Cristina 9ca76dcb7a Backed out changeset b7a07167905c::2932c914e223 (bug 1406327) for failing in dom/vr/test/mochitest/test_vrController_displayId.html r=backout a=backout on a CLOSED TREE
Backed out changeset 2932c914e223 (bug 1406327)
Backed out changeset cfbc6262a064 (bug 1406327)
Backed out changeset b7a07167905c (bug 1406327)
2017-10-30 14:51:52 +02:00
Daosheng Mu f6e2fb5654 Bug 1406327 - Part 1: Shutdown VR listener thread when no VR content in seconds; r=dvander,kip
MozReview-Commit-ID: AnYJT8WBkI7

--HG--
extra : rebase_source : 373040a7e578e79c4b2ab2bbda8c155c77fdbbc5
2017-10-26 16:51:14 +08:00
Nicholas Nethercote 8a68e6fb83 Bug 1403868 (part 4) - Reduce tools/profiler/public/*.h to almost nothing in non-MOZ_GECKO_PROFILER builds. r=mstange.
Currently the Gecko Profiler defines a moderate amount of stuff when
MOZ_GECKO_PROFILER is undefined. It also #includes various headers, including
JS ones. This is making it difficult to separate Gecko's media stack for
inclusion in Servo.

This patch greatly simplifies how things are exposed. The starting point is:

- GeckoProfiler.h can be #included unconditionally;

- everything else from the profiler must be guarded by MOZ_GECKO_PROFILER.

In practice this introduces way too many #ifdefs, so the patch loosens it by
adding no-op macros for a number of the most common operations.

The net result is that #ifdefs and macros are used a bit more, but almost
nothing is exposed in non-MOZ_GECKO_PROFILER builds (including
ProfilerMarkerPayload.h and GeckoProfiler.h), and understanding what is exposed
is much simpler than before.

Note also that in BHR, ThreadStackHelper is now entirely absent in
non-MOZ_GECKO_PROFILER builds.
2017-10-04 09:11:18 +11:00
sotaro 11c145a7c1 Bug 1394338 - Add WebRender error handling to RendererOGL r=nical 2017-08-30 09:10:22 +09:00
sotaro 6814d355af Bug 1394337 - Fix uninitialized mPipelineId by WebRenderBridgeParent::CreateDestroyed() r=kats
WebRenderBridgeParent holds uninitialized mPipelineId when it was created by WebRenderBridgeParent::CreateDestroyed(). Then when CrossProcessCompositorBridgeParent::DeallocPWebRenderBridgeParent is called for the WebRenderBridgeParent, it will call EraseLayerState with some garbage uninitialized value, and so it will erase some random layer state entry.
2017-08-29 22:41:53 +09:00
Nicolas Silva 9f6f1a7d88 Bug 1390840 - Add prefs to display the debugging view of webrender's texture cache and intermediate targets. r=jrmuizel 2017-08-23 12:00:37 +02:00
Sebastian Hengst 441fc1a176 Backed out changeset b9c53ad8893b (bug 1390840) 2017-08-21 18:38:22 +02:00
Nicolas Silva 55bbef54aa Bug 1390840 - Add prefs to display the debugging view of webrender's texture cache and intermediate targets. r=jrmuizel 2017-08-21 18:22:56 +02:00
sotaro 9708a9d0a8 Bug 1390004 - Add pointer check to CompositorBridgeParent::StopAndClearResources() r=kats 2017-08-15 10:41:41 +09:00
sotaro df51f39768 Bug 1387922 - Add log of start or fwd Transaction to on screen timing r=nical 2017-08-11 10:57:21 +09:00
sotaro 162dcae649 Bug 1385003 - Use a different WebRenderAPI instance for each WebRenderBridgeParent. r=kats
Previously, the WebRenderBridgeParent for each content layer tree would use the
same WebRenderAPI instance as the top-level WebRenderBridgeParent for that window.
However, in order to make the namespacing changes work we now need to use a
separate WebRenderAPI instance for each WebRenderBridgeParent. The content
WebRenderAPIs are cloned from the parent one, so that they all share the same
backend, but can allocate resource IDs in distinct namespaces.

MozReview-Commit-ID: 7VTFL8F09n7

--HG--
extra : rebase_source : 2da1d03abc23bd7852e4b12fe133889bd80cad53
2017-08-09 08:46:25 -04:00
Kartikaya Gupta 8487cf859b Bug 1385003 - Drop the hacky gecko IdNamespace allocator and use the IdNamespace from WR to avoid mismatches. r=sotaro
MozReview-Commit-ID: 410h1ZkWBGL

--HG--
extra : rebase_source : c9172918eee2dbe290b09b3753e52f6998aa9173
2017-07-31 14:21:18 -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
sotaro a17b90875f Bug 1386505 - Fix IPDL reference handling of CompositorBridgeParent::AllocPWebRenderBridgeParent() r=nical 2017-08-02 22:21:17 +09:00
Kartikaya Gupta f852cfa561 Bug 1386020 - Use wr::IdNamespace instead of uint32_t for the WR namespace. r=sotaro
MozReview-Commit-ID: JbQNgNQHobO

--HG--
extra : rebase_source : c16f17e37e94a41127410daed01f32ec4b06cb91
2017-07-31 16:31:10 -04:00
Kartikaya Gupta adeda831a6 Bug 1372880 - Followup to fix typo in function name. r=me
MozReview-Commit-ID: J2D0Cb6DRNJ
2017-07-28 12:57:13 -04:00
Nicolas Silva c6cb34826b Bug 1383786 - Rename WebRenderCompositableHolder into AsyncImagePipelineManager. r=sotaro
--HG--
rename : gfx/layers/wr/WebRenderCompositableHolder.cpp => gfx/layers/wr/AsyncImagePipelineManager.cpp
rename : gfx/layers/wr/WebRenderCompositableHolder.h => gfx/layers/wr/AsyncImagePipelineManager.h
2017-07-25 10:54:36 +02:00
sotaro b8bc54df5a Bug 1372880 - Add WebRender creation failure handling r=aosmond 2017-07-28 18:22:21 +09:00
sotaro eaf00c953c Bug 1377619 - Add EndTransaction to on screen timing log for WebRender r=nical 2017-07-28 08:05:56 +09:00
Samael Wang 4652607d6a Bug 1382897 - Auto lock on sIndirectLayerTreesLock in DidComposite. r=mattwoodrow
MozReview-Commit-ID: DZLEjHMmDDt
2017-07-25 17:28:39 +08:00
Carsten "Tomcat" Book 6371a2fc61 Backed out changeset f8c82658a657 (bug 1383786)
--HG--
rename : gfx/layers/wr/AsyncImagePipelineManager.cpp => gfx/layers/wr/WebRenderCompositableHolder.cpp
rename : gfx/layers/wr/AsyncImagePipelineManager.h => gfx/layers/wr/WebRenderCompositableHolder.h
2017-07-25 11:36:11 +02:00
Nicolas Silva e22c63abf9 Bug 1383786 - Rename WebRenderCompositableHolder into AsyncImagePipelineManager. r=sotaro
--HG--
rename : gfx/layers/wr/WebRenderCompositableHolder.cpp => gfx/layers/wr/AsyncImagePipelineManager.cpp
rename : gfx/layers/wr/WebRenderCompositableHolder.h => gfx/layers/wr/AsyncImagePipelineManager.h
2017-07-25 10:54:36 +02:00
sotaro e79d584602 Bug 1379033 - Remove CompositorBridgeParentBase::GetAnimationStorage() r=kats
The patch removes CompositorBridgeParentBase::GetAnimationStorage and CrossProcessCompositorBridgeParent::GetAnimationStorage, and remove the "aId" parameter to CompositorBridgeParent::GetAnimationStorage, since it's only ever called with "0" as the argument.
2017-07-10 10:03:12 +09:00
David Anderson fa09d4e240 Disable Advanced Layers on transparent popups. (bug 1379014, r=mattwoodrow) 2017-07-06 18:29:38 -07:00
sotaro e171eb9a00 Bug 1376896 - Fix AnimatedValue leak at CompositorAnimationStorage during OMTA r=kats 2017-07-06 12:06:41 +09:00
Nicholas Nethercote 5d446671a8 Bug 1375776 (part 4) - Allow ProfilerMarkerPayload.h to be #included unconditionally. r=mstange.
This requires:

- Moving the constructors of ProfilerMarkerPayload and its subclasses into the
  .h file so they are visible even when ProfilerMarkerPayload.cpp isn't
  compiled.

- Similarly, using a macro to make StreamPayload() a crashing no-op when the
  profiler isn't enabled. (It is never called in that case.)

--HG--
extra : rebase_source : 7aad2fdb1bd4e49782024dba6664e8f992771520
2017-06-23 16:24:15 +10:00
sotaro 2292edf20c Bug 1335335 - Tab move between different windows does not work when e10s is enabled r=nical
When the tab move happens, related non-root WebRenderBridgeParent is updated as to render to different webrender instance. webrender does not support of sharing resources and keys yet. Then when the tab move happens, the patch just removes all keys and resources that belongs to previous webrender. Ideally all resources that belong to WebRenderBridgeParent should be reallocated in an update webrender. But the patch does not do it, instead it just request WebRenderBridgeChild to re-allocate all resources again for simplicity. Performance improvement will happen in a future patch.

This patch support only tab move that uses only raw data external images. Support of native texture external images will happen in a future patch.
2017-06-29 18:06:11 -07:00
Sebastian Hengst e85b6178ce Backed out changeset ac18f9244933 (bug 1335335) for build bustage: version control conflict in maker file at WebRenderBridgeParent.h:235. r=backout on a CLOSED TREE 2017-06-29 22:02:16 +02:00
sotaro 23d69372f5 Bug 1335335 - Tab move between different windows does not work when e10s is enabled r=nical
When the tab move happens, related non-root WebRenderBridgeParent is updated as to render to different webrender instance. webrender does not support of sharing resources and keys yet. Then when the tab move happens, the patch just removes all keys and resources that belongs to previous webrender. Ideally all resources that belong to WebRenderBridgeParent should be reallocated in an update webrender. But the patch does not do it, instead it just request WebRenderBridgeChild to re-allocate all resources again for simplicity. Performance improvement will happen in a future patch.

This patch support only tab move that uses only raw data external images. Support of native texture external images will happen in a future patch.
2017-06-29 12:44:53 -07:00
sotaro 1deee6448b Bug 1377024 - Add support of device reset test from about:support r=kats,dvander 2017-06-29 11:46:36 -07:00
Carsten "Tomcat" Book 45f2e51f0a Merge mozilla-central to autoland 2017-06-28 13:47:29 +02:00
sotaro 5120a89df4 Bug 1375349 - Add calling ScheduleComposition() in CompositorBridgeParent::RecvAdoptChild() r=mattwoodrow 2017-06-27 14:56:16 -07:00
Kartikaya Gupta 4635e36bee Bug 1375497 - Make sure the WebRenderBridgeParent respects the testing time set in the CompositorBridgeParent. r=pchang
This allows testing code control over the animation steps running over in the
compositor, which is needed for the OMTA mochitests.

MozReview-Commit-ID: CXJcieSEoRl

--HG--
extra : rebase_source : ad73196ac835e7aae0003befa8c71e81a9019dd2
2017-06-27 20:29:05 -04:00
Kartikaya Gupta e5c184cad5 Bug 1375497 - Modify the SetTestSampleTime and LeaveTestMode functions to take a layers id instead of a LayerTransactionParent. r=pchang
This will make these functions usable from WebRenderBridgeParent, which has a
layers id but doesn't have a LayerTransactionParent.

MozReview-Commit-ID: FvxGPdLeUWe

--HG--
extra : rebase_source : eaed5dedeccda41068cade3d5b4527d0f047eed9
2017-06-27 20:29:05 -04:00
Ryan Hunt a6a2b4f7c4 Bug 1351783 part 10 - Create and sync the current FocusTarget on each layer transaction. r=kats,botond
This commit modifies PresShell and nsDisplayList to send a FocusTarget update on
every layer transaction. Ideally we would like to send updates as often as possible,
but this seems like it works well. This can be iterated on later, if necessary.

MozReview-Commit-ID: 8PFqIOhzH77

--HG--
extra : rebase_source : 1e2c3b5620f5d7e6e789848da57b2486c3d74f14
2017-06-13 02:00:49 -04: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
David Anderson 7df9b05034 Add MLGPU feature bits and compositor initialization. (bug 1365879 part 21, r=mattwoodrow) 2017-06-23 14:23:12 -07:00
Carsten "Tomcat" Book 88fff78f64 Merge mozilla-central to mozilla-inbound 2017-06-23 12:22:24 +02:00
Carsten "Tomcat" Book 1f871b61e4 Backed out changeset 9d0048e04446 (bug 1365879) 2017-06-23 12:15:32 +02:00
Nicholas Nethercote 58786e1ea7 Bug 1375392 - Tweak the PROFILER_LABEL* macros. r=mstange.
This patch makes the following changes to the macros.

- Removes PROFILER_LABEL_FUNC. It's only suitable for use in functions outside
  classes, due to PROFILER_FUNCTION_NAME not getting class names, and it was
  mostly misused.

- Removes PROFILER_FUNCTION_NAME. It's no longer used, and __func__ is
  universally available now anyway.

- Combines the first two string literal arguments of PROFILER_LABEL and
  PROFILER_LABEL_DYNAMIC into a single argument. There was no good reason for
  them to be separate, and it forced a '::' in the label, which isn't always
  appropriate. Also, the meaning of the "name_space" argument was interpreted
  in an interesting variety of ways.

- Adds an "AUTO_" prefix to PROFILER_LABEL and PROFILER_LABEL_DYNAMIC, to make
  it clearer they construct RAII objects rather than just being function calls.
  (I myself have screwed up the scoping because of this in the past.)

- Fills in the 'js::ProfileEntry::Category::' qualifier within the macro, so
  the caller doesn't need to. This makes a *lot* more of the uses fit onto a
  single line.

The patch also makes the following changes to the macro uses (beyond those
required by the changes described above).

- Fixes a bunch of labels that had gotten out of sync with the name of the
  class and/or function that encloses them.

- Removes a useless PROFILER_LABEL use within a trivial scope in
  EventStateManager::DispatchMouseOrPointerEvent(). It clearly wasn't serving
  any useful purpose. It also serves as extra evidence that the AUTO_ prefix is
  a good idea.

- Tweaks DecodePool::SyncRunIf{Preferred,Possible} so that the labelling is
  done within them, instead of at their callsites, because that's a more
  standard way of doing things.

--HG--
extra : rebase_source : 318d1bc6fc1425a94aacbf489dd46e4f83211de4
2017-06-22 17:08:53 +10:00
David Anderson 0505938414 Add MLGPU feature bits and compositor initialization. (bug 1365879 part 21, r=mattwoodrow)
--HG--
extra : rebase_source : 3d8d1a9619d997a2de9eea4e734a0457cd326e91
2017-06-22 21:12:19 -07:00
Nicholas Nethercote 915a56fb41 Bug 1375299 (part 2) - Remove PROFILER_MARKER. r=mstange.
PROFILER_MARKER is now just a trivial wrapper for profiler_add_marker(). This
patch removes it.

--HG--
extra : rebase_source : 9858f34763bb343757896a91ab7ad8bd8e56b076
2017-06-22 13:40:21 +10: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
David Anderson d1eec3b0e9 Don't require a Compositor to track async compositable ownership. (bug 1365879 part 13, r=mattwoodrow) 2017-06-20 01:17:20 -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
Nicholas Nethercote 453b6f2d11 Bug 1374127 (part 2) - Clean up ProfilerMarkerPayload. r=mstange.
This patch does the following.

- Renames some ProfilerMarkerPayload subclasses so they all of the form
  "FooMarkerPayload", to make the subclass relationship clearer.
  (ProfilerMarkerTracing -- now TracingMarkerPayload -- was the worst
  offender.)

- Removes ProfilerMarkerImagePayload and TouchDataPayload, neither of which are
  used.

- Changes streamCommonProps() to StreamCommonProps().

- Does some minor style and comment fixes in ProfilerMarkerPayload.h.

--HG--
extra : rebase_source : dd732905e96da83bcbf124c70b20011c661fc332
2017-06-19 13:32:32 +10:00
Nicholas Nethercote 5d3808c6e5 Bug 1373436 (part 4) - Use UniquePtr with profile_add_marker(). r=mstange.
Once the |aPayload| argument to profile_add_marker() became a UniquePtr the
default value of nullptr caused compilation difficulties that could only be
fixed by #including ProfilerMarkerPayload.h into lots of additional places
(because the UniquePtr<T> instantiation required the T to be fully defined). To
get around this I just split profile_add_marker() into two functions, one with
1 argument and one with 2 arguments.

The patch also removes the definition of PROFILER_MARKER_PAYLOAD in the case
where MOZ_GECKO_PROFILER isn't defined. A comment explains why.
2017-06-16 12:26:26 +10:00