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

10417 Коммитов

Автор SHA1 Сообщение Дата
David Anderson 1b64928d17 Don't draw diagnostic overlays during drawWindow. (bug 1379828, r=mattwoodrow) 2017-07-10 19:09:34 -07:00
Wes Kocher 868f84f2d8 Merge m-c to inbound, a=merge 2017-07-10 18:48:52 -07:00
Kartikaya Gupta 7fe2c84b1e Bug 1374730 - Update for clip API change in WR cset 0bf6655. r=mrobinson
MozReview-Commit-ID: dEe7yDDZPk

--HG--
extra : rebase_source : 09a1f858a347bdc95baa8015db9fa156b119334a
2017-07-10 07:22:39 -04: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
sotaro 02fd7d664d Bug 1379055 - Remove unused member of WebRenderPaintedLayerBlob r=jrmuizel 2017-07-10 09:21:22 +09:00
Kartikaya Gupta 540da41b2f Bug 1379394 - Add a pref to allow disabling the one-handed-zoom gesture in APZ. r=botond
MozReview-Commit-ID: LUB83oLyVkm

--HG--
extra : rebase_source : 4fd4b1c4a2069f4dcf8084be33aac1f64e7bd636
2017-07-08 23:04:33 -04:00
Botond Ballo dda8aeab18 Bug 1375949 - Fix helper_touch_action_regions.html. r=kats
The test was assuming that processing an input event that causes async
scrolling will result in the async scroll being reflected on the next
composite. With the changes in this bug, that is no longer a valid assumption.

MozReview-Commit-ID: HAB3xnmF3vo

--HG--
extra : rebase_source : 86eca7c9f030a2bf4be87d8aa632a97584722191
2017-06-28 17:45:40 -04:00
Botond Ballo 179d5b6afb Bug 1375949 - Fix an incorrect comment in helper_touch_action_regions.html. r=kats
MozReview-Commit-ID: 5UslMnD1SRG

--HG--
extra : rebase_source : bb6c94f0792ac29232443ad07512fcc2099693f2
2017-06-27 14:50:30 -04:00
Botond Ballo a01f110229 Bug 1375949 - Delay application of async scroll offset by one composite, to give content a chance to remain in sync. r=kats
With this in place, scroll-linked effects will remain in sync with async
scrolling if they can be processed and painted within the frame budget.

This change is currently behind a pref that's off by default.

MozReview-Commit-ID: 6GEJTKZh6ON

--HG--
extra : rebase_source : 534bf15ef1c5ca26e1dc0d7eb298063b80aa9dd3
2017-07-05 19:17:14 -04:00
Botond Ballo 8e4f219cfd Bug 1375949 - Repurpose AsyncPanZoomController::AsyncMode into a more general AsyncTransformConsumer enum. r=kats
The AsyncTransformConsumer enumeration captures the distinction between
the two main categories of consumers of async transforms: those using
it for hit-testing and related purposes, and those using it for
compositing.

MozReview-Commit-ID: 59CICcnPvY6

--HG--
extra : rebase_source : ba505e6b2b6f42592660074939a6d24aab7f73ff
2017-06-30 14:31:28 -04:00
sotaro f76bc78842 Bug 1377687 - Clear cached resources in WebRenderBridgeParent::RecvClearCachedResources() r=nical 2017-07-11 09:13:15 +09:00
Kartikaya Gupta b95ebf372e Bug 1379252 - Remove unused argument. r=rbarker
MozReview-Commit-ID: 7G8i0G9LyvZ

--HG--
extra : rebase_source : 229e4ef955e50b5a473c24522e3e499fdf658519
2017-07-07 14:56:10 -04:00
Carsten "Tomcat" Book fe3f254925 Backed out changeset 018e683b25cd (bug 1370007) for breaking tier 2 nightly builds on windows 2017-07-07 15:23:54 +02:00
Carsten "Tomcat" Book b5c809a8bc merge mozilla-inbound to mozilla-central a=merge 2017-07-07 10:35:44 +02:00
Wes Kocher 19d135c982 Merge m-c to autoland, a=merge
MozReview-Commit-ID: 4R4GFHPiij
2017-07-06 16:19:38 -07:00
David Anderson 208baf0a94 Backed out changeset 8eb05f9fc699 for breaking Mac URL bars. (bug 1366618) 2017-07-06 12:13:46 -07:00
Carsten "Tomcat" Book 3f89ce0b43 Merge mozilla-central to mozilla-inbound 2017-07-06 11:21:11 +02:00
Carsten "Tomcat" Book 7857fa0a5e merge mozilla-inbound to mozilla-central a=merge 2017-07-06 11:18:05 +02:00
sotaro 5d1a3c3c3f Bug 1378297 - Add DXGITextureHostD3D11::GetAsSurface() support for webrender wrench r=mattwoodrow 2017-07-06 16:33:19 +09:00
Tom Ritter b1341f974a Bug 1370007 Generate Shaders on a MinGW Cross Compile on Linux r=dvander,ted
Bug 1365859 introduced a dependency on the Visual Studio binary 'fxc'
to generate Shader bytecode. This was unavailable when compiling for
Windows on Linux as part of a MinGW build.

This commit adds a configure check for fxc, and also searches for
fxc2, which was written (https://github.com/tomrittervg/fxc2) to be
a tiny application that wraps D3DCompileFromFile and can produce
similar (but not exactly the same) output as fxc.

fxc2 is compiled using MinGW for Windows, and runs under wine, so
we need to check for wine also.

Finally, fxc outputs some include information fxc2 doesn't, so
we will just change that assert to not take effect.

MozReview-Commit-ID: 8LVxuODi6cV

--HG--
extra : rebase_source : 39acca112f4cd9e6c39f7e47e7c55b13e7606824
2017-07-06 15:35:49 -05:00
Botond Ballo 8b7ba8ac1c Bug 1377020 - Use MOZ_DEFINE_ENUM instead of a sentinel enumerator for enumerations in gfx/layers. r=kats
MozReview-Commit-ID: IUQDb0VIAwQ

--HG--
extra : rebase_source : 50d05ab09a5fb03d16c044edd38f0f3e0dba7ada
2017-06-30 21:18:55 -04:00
Kartikaya Gupta 5a69e4f899 Bug 1378247 - Properly handle async scrollbar-dragging of RTL scrollframes. r=botond
For RTL scrollframes the scrollable rect can extend into the negative-x coordinate
space as the user can scroll leftwards from the "zero" position. The code was
assuming a zero minimum scroll position in a couple of places which broke down
on RTL scrollframes.

MozReview-Commit-ID: 5FxELpafWSD

--HG--
extra : rebase_source : a3c7614528cf59a5c60f350fca84161c8586509f
2017-07-05 15:19:09 -04:00
Kartikaya Gupta 4826f32d87 Bug 1377169 - Turn gfxRect into a typedef. r=jrmuizel
One thing to note here is that the Scale function on gfxRect has a
different implementation than that in gfx::Rect which is replacing it.
The former just scales the width/height directly whereas the latter
scales the XMost/YMost and recomputes the width/height.

MozReview-Commit-ID: 5FImdIaNfC3

--HG--
extra : rebase_source : 98662d2a52ff9652ec60b066641a07c6d5ee8e08
2017-07-05 11:22:00 -04:00
Kartikaya Gupta cad9534e69 Bug 1377090 - Turn gfxMatrix into a typedef for MatrixDouble. r=jrmuizel
Most of this patch is updating a few places that use gfxMatrix to use
the equivalent-but-differently-named functions on MatrixDouble:
- Translate/Rotate/Scale get turned into PreTranslate/PreRotate/PreScale
- Transform(Point) gets turned into TransformPoint(Point)
- gfxMatrix::TransformBounds(gfxRect) gets turned into
  gfxRect::TransformBoundsBy(gfxMatrix).
- gfxMatrix::Transform(gfxRect) gets turned into
  gfxRect::TransformBy(gfxMatrix).
The last two functions are added in this patch as convenience wrappers
to gfxRect instead of Matrix.h because we don't want Matrix.h to "know"
about gfxRect (to avoid adding gecko dependencies on Moz2D). Once we
turn gfxRect into a typedef for RectDouble these will be eliminated
anyway.

MozReview-Commit-ID: BnOjHzmOSKn

--HG--
extra : rebase_source : cf1692d1f0d44a4b05d684a66678739181a426d5
2017-07-05 11:18:49 -04:00
Kartikaya Gupta 1c54bb2347 Bug 1377090 - Make the Matrix class templated so we can instantiate it with a double type. r=bas
This extracts a BaseMatrix template of which Matrix is now a particular
specialization. The BaseMatrix allows us to reuse the same code for
floats and doubles, much like the other "base" classes (BasePoint,
BaseRect, etc.).

MozReview-Commit-ID: HO7bA83S9E0

--HG--
extra : rebase_source : dcd84d9a978cdea00bb54eb11eefcca9c6635901
2017-07-05 11:18:48 -04:00
Carsten "Tomcat" Book b72c4833d5 merge mozilla-inbound to mozilla-central a=merge 2017-07-05 13:01:22 +02:00
Morris Tseng 03f68881d2 Bug 1376855 - Removed unused variables and interfaces. r=kats
MozReview-Commit-ID: 5rPI7jNI94K

--HG--
extra : rebase_source : 20ffeb6e064de9ccf19729aa6045ffa595c51429
2017-06-28 13:42:24 -07:00
Morris Tseng b01c8dcc1a Bug 1376855 - Support nsDisplayBullet in layers free mode. r=kats
MozReview-Commit-ID: 8fCufpOLejH

--HG--
extra : rebase_source : a2a4024b8282336d60f7e9c416e93513860866d7
2017-06-28 13:39:34 -07:00
Morris Tseng 77424afaa9 Bug 1376855 - Introduce WebRenderUserData and WebRenderImageData. r=kats
Layers are retained between transaction and we store some data in the layers.
Thus, if we no longer use layers, we need find another storage to place
those data. I use frame's property to retain WebRenderUserData between
transaction.

MozReview-Commit-ID: Ku5VGBXa3w6

--HG--
extra : rebase_source : 636653f78d1d6c310726a1a2c944141dc691decc
2017-06-28 15:03:27 -07:00
Nicholas Nethercote 26f8199a36 Bug 1375776 (part 5) - Pass in a TimeStamp to LayerTranslationMarkerPayload(). r=mstange.
This makes it more like all the other payload classes.

--HG--
extra : rebase_source : dd30741f487158ace8f9c0427a5c4b00f051ff7b
2017-06-23 16:24:21 +10: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
Mats Palmgren f79b080654 Bug 1377707 - Ensure that LogTestDataForPaint is not called at all when APZTestLoggingEnabled() is false. r=tn
MozReview-Commit-ID: 8z7eqBBsn0R
2017-07-05 02:04:15 +02:00
Ehsan Akhgari 74f1a0ceb8 Bug 1378045 - Make ScrollableLayerGuid::Hash() return PLDHashNumber; r=botond 2017-07-04 11:08:29 -04:00
Wes Kocher f8eb8f400a Backed out 2 changesets (bug 1377060) for build bustage a=backout
Backed out changeset c8f818803df7 (bug 1377060)
Backed out changeset bf11ec80b0fb (bug 1377060)

MozReview-Commit-ID: Hp1PtpWYOWV
2017-07-03 11:44:58 -07:00
David Anderson c307f7ba43 Implement asynchronous OMTP behind a pref. (bug 1377060 part 2, r=mchang) 2017-07-03 11:20:40 -07:00
David Anderson 52b2572051 Refactor PaintThread for async painting. (bug 1377060 part 1, r=mchang) 2017-07-03 11:20:33 -07:00
Phil Ringnalda 915412e692 Merge m-i to m-c, a=merge
MozReview-Commit-ID: HINQtggBLDr
2017-07-01 17:36:09 -07:00
Ethan Lin 82a7c2b5e4 Bug 1372118 - Part3. Implement CreateWebRenderCommands for text, transform and background color. r=jrmuizel, r=kats
MozReview-Commit-ID: JRoSjygSFHc
2017-06-30 17:23:20 -07:00
Ethan Lin 17960f3f3e Bug 1372118 - Part2. Use new interface of CreateWebRenderCommands for non-image display items. r=jrmuizel, r=kats
MozReview-Commit-ID: BcmRjQhDEyf
2017-06-30 17:23:20 -07:00
Ethan Lin de600bafd7 Bug 1372118 - Part1. Have a path to create WebRender commands without layers. r=jrmuizel, r=kats, r=mattwoodrow
MozReview-Commit-ID: 7iOW9rEtwur
2017-06-30 17:23:20 -07:00
David Anderson 0360dc3a99 Fix OpenGL texture coordinate flipping in Advanced Layers. (bug 1377303, r=mattwoodrow) 2017-06-30 11:45:02 -07:00
Ryan Hunt ef12355496 Bug 1376912 - Add logging for APZ keyboard scrolling. r=kats
MozReview-Commit-ID: Gp14vangDaS

--HG--
extra : rebase_source : 5742f67a5330e1b27382613b5e875087fc9d90d2
2017-06-29 14:41:51 -04:00
vincentliu 7d576c4c02 Bug 1373937 - Add gfxCriticalNote() to get error information. r=dvander 2017-06-30 09:42:48 -07:00
Carsten "Tomcat" Book daa67cc9e3 merge mozilla-inbound to mozilla-central a=merge 2017-06-30 12:59:45 +02:00
sotaro 5145e40a3c Bug 1335335 - Manually call DidComposite() when transaction was dropped because of obsoleted command r=nical
The patch fixes a problem on windows. Before the patch, there was a case that moved tab was not re-rendered. When WebRenderBridgeParent reveived obsolted transaction, DidComposite() was not returned to a client side. It stopped nsRefreshDriver to trigger a next transaction.
2017-06-29 18:06:31 -07: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
sotaro cb7938acc1 Bug 1376875 - Call Destroy() from LayerTransactionParent::ActorDestroy() r=nical 2017-06-29 16:24:55 -07:00
Ryan Hunt ba66247ed7 Bug 1376526 - Perform scroll snapping with async keyboard scrolling. r=kats
MozReview-Commit-ID: 5AFRpQaw6jL

--HG--
extra : rebase_source : 5f5df5f3a4acfd7164644aeec3595355aa0e8b99
2017-06-29 14:37:54 -04:00
Randall Barker df2adf9cee Bug 1377224 - Ensure the real toolbar is visible when the page is too small to scroll r=kats
MozReview-Commit-ID: 1rTZUoQEi0P
2017-06-29 14:43:25 -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
Sebastian Hengst 86c1297e01 Backed out changeset c5dbfdc1892e (bug 1335335) 2017-06-29 22:01:19 +02:00
sotaro 6cec97d16c Bug 1335335 - Manually call DidComposite() when transaction was dropped because of obsoleted command r=nical
The patch fixes a problem on windows. Before the patch, there was a case that moved tab was not re-rendered. When WebRenderBridgeParent reveived obsolted transaction, DidComposite() was not returned to a client side. It stopped nsRefreshDriver to trigger a next transaction.
2017-06-29 12:45:29 -07: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
Ryan Hunt 341325dac4 Bug 1376549 - Prevent APZ handling of keyboard shortcuts hardcoded in ESM. r=kats
MozReview-Commit-ID: 1IolnCXGPjQ

--HG--
extra : rebase_source : 748ed1700383f255d4c32f82d7e5f1455ede8d50
2017-06-28 16:06:47 -04:00
Carsten "Tomcat" Book 5f00ae3a8b merge mozilla-inbound to mozilla-central a=merge 2017-06-29 15:47:04 +02:00
Ryan Hunt a95f4245e9 Bug 1376997 - Use the correct focus target in WebRenderBridgeParent::UpdateAPZ. r=kats
MozReview-Commit-ID: AXt28gZ3jdi

--HG--
extra : rebase_source : 0358529f0194df93ffa5602956fe2e1617cf80d0
extra : histedit_source : da561f94b8b5ba7b5d9bdc742d011ddd9258f983
2017-06-28 20:00:48 -04:00
Ryan Hunt 83d3e638ed Bug 1376879 - Check if we have a retargeted PresShell in FocusTarget. r=kats
MozReview-Commit-ID: L2v2U0MXecv

--HG--
extra : rebase_source : 271fb2d8c31b511981d4ace880b56df7a9b79455
extra : histedit_source : 37be2c45de26bf84124615900638f6803e11c553
2017-06-28 14:03:34 -04:00
Alastor Wu 67c4ba2c09 Bug 1373177 - part4 : add assertion to make sure the function call order. r=jolin
The Init()/Shutdown() would be run on the main thread, AcquireTexture() would be
on media thread and Fill() would be on compostitor thread.

Add assertion to make sure the call order, since we don't want to call Fill()
or AcquireTexture() after shutdown.

MozReview-Commit-ID: 3Gydr7b4Raq

--HG--
extra : rebase_source : a81f7a58c94b2fc75bba500a6a2d087e05b520cd
2017-06-30 11:14:00 -07:00
Alastor Wu 811f4cea38 Bug 1373177 - part2 : add log. r=jolin
Add lazy log for debugging.

MozReview-Commit-ID: 4VYjLDobFeW

--HG--
extra : rebase_source : f8e52333b0cd0bf7619b1611eb033f69744d0684
2017-06-30 11:12:52 -07:00
Alastor Wu eaf35bf952 Bug 1373177 - part1 : automatically refill the pool if the textures number is lower than specific threshold. r=bechen,jolin,snorp
The pool would be refilled when the compositor starts rendering the frame.
However, if we consume lots of textures but doesn't render any frame, then the
pool would always empty and no one can get new texture id.

One case is that when we release decoders too early before rendering the first
frame, the pool won't be refilled, and it causes all media threads are blocked.

Now we would refill the pool if the textures number is lower than the specific
threshold.

MozReview-Commit-ID: CYBLYi9hFD9

--HG--
extra : rebase_source : 309338a4cf2283ed93afcc4af2cc1cf5e925661d
2017-06-30 11:12:49 -07:00
Kartikaya Gupta 7332c6da98 Bug 1376782 - Replace gfxSize with a typedef to SizeDouble. r=jrmuizel
Most of the changes in this patch are just using the explicit
constructor from gfx::IntSize to gfx::Size, since gfxSize did
that implicitly but gfx::Size doesn't.

MozReview-Commit-ID: CzikGjHEXje

--HG--
extra : rebase_source : 9d19977f2a774d9a2a653db923553a6c2e06f82a
2017-06-28 11:41:21 -04:00
Andrew McCreight 1533adf4c3 Bug 1380124 - Fix 'desctruction' typos. r=njn
MozReview-Commit-ID: 8gNYd7NL58U

--HG--
extra : rebase_source : bc0c85d96a499e8de102d1409685e6b2f7605ffe
2017-07-11 13:04:26 -07:00
Carsten "Tomcat" Book 257a632d4b Merge mozilla-central to autoland on a CLOSED TREE 2017-06-28 16:33:00 +02:00
Carsten "Tomcat" Book 0a8e2e111d Backed out changeset c3ac91f3aeb9 (bug 1343728) 2017-06-28 15:52:09 +02:00
Carsten "Tomcat" Book 45f2e51f0a Merge mozilla-central to autoland 2017-06-28 13:47:29 +02:00
Mats Palmgren 557b895016 Bug 1376460 - Use Lookup instead of Get+Remove to avoid unnecessary hashtable lookups. r=froydnj
MozReview-Commit-ID: CE7r2ESeAia
2017-06-28 01:03:16 +02:00
Mats Palmgren c49a96b7fd Bug 1376297 part 2 - Switch to nsRefPtrHashtable since it's more appropriate for holding RefPtr values. r=froydnj
MozReview-Commit-ID: 5hxCuDpITcC
2017-06-28 01:03:16 +02:00
Mats Palmgren 1bbdb5f4c6 Bug 1376297 part 1 - Use Lookup instead of Get+Remove, and remove a useless Get before Remove, to avoid unnecessary hashtable lookups. r=froydnj
MozReview-Commit-ID: BeuLhwaQ8H6
2017-06-28 01:03:16 +02:00
Mats Palmgren 5293f63576 Bug 1376296 part 2 - Switch to nsRefPtrHashtable since it's more appropriate for holding RefPtr values. r=froydnj
MozReview-Commit-ID: IkVx7XJG0ai
2017-06-28 01:03:16 +02:00
Mats Palmgren bc03580b86 Bug 1376296 part 1 - Use Lookup instead of Get+Remove, and remove a useless Get before Remove, to avoid unnecessary hashtable lookups. r=froydnj
MozReview-Commit-ID: 6YgO0TzY32C
2017-06-28 01:03:16 +02:00
sotaro 5120a89df4 Bug 1375349 - Add calling ScheduleComposition() in CompositorBridgeParent::RecvAdoptChild() r=mattwoodrow 2017-06-27 14:56:16 -07:00
Michael Layzell e291335cf8 Bug 1343728 - Part 2: Add const operator== to TextureFactoryIdentifier and CompositorOptions, r=jrmuizel
MozReview-Commit-ID: 6BayMmqNlyx
2017-06-27 16:24:48 -04:00
David Anderson e09978bd8b Implement LayerMLGPU::SetLayerManager. (bug 1375759, r=mattwoodrow) 2017-06-27 13:11:01 -07:00
David Anderson 5168081e97 Fix not flushing unused TextureHosts in Advanced Layers. (bug 1376243, r=mattwoodrow)
--HG--
extra : rebase_source : 879c210dbe682b2128932b0e85e58927be600a06
2017-06-27 11:59:25 -07:00
Kartikaya Gupta dc174219de Bug 1375497 - Implement some more PLayerTransaction testing APIs in PWebRenderBridge. r=pchang
MozReview-Commit-ID: Em4VROmcUx0

--HG--
extra : rebase_source : c763f6f91f482f7b1ddc03280aff51ead6fd894e
2017-06-27 20:29:06 -04:00
Kartikaya Gupta b95fb227dd Bug 1375497 - Extract helper methods to read animation values. r=pchang
MozReview-Commit-ID: EusfcwPVGkL

--HG--
extra : rebase_source : a52bc1ce8430288e2f2cf41b13fa18d635c9fb7c
2017-06-27 20:29:06 -04: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 9b1e2c1ec0 Bug 1351783 part 20 - Report async keyboard scrolling to telemetry. r=botond
MozReview-Commit-ID: IwLL2xg3BgY

--HG--
extra : rebase_source : ba0aea8605e33bc9755d6ff454bd4b3549998443
extra : histedit_source : 8de02662e5fd562c3002c18540fc74d4f61cb969
2017-06-22 19:26:07 -04:00
Ryan Hunt fb04e72bad Bug 1351783 part 19 - Rename Keyboard.h to KeyboardMap.h. r=masayuki
This is a better name for the header that matches its main class.

MozReview-Commit-ID: KSt9LVT3yRR

--HG--
rename : gfx/layers/apz/src/Keyboard.cpp => gfx/layers/apz/src/KeyboardMap.cpp
rename : gfx/layers/apz/src/Keyboard.h => gfx/layers/apz/src/KeyboardMap.h
extra : rebase_source : ec4c9ec5afa8479dc4cd3e987fc3293f047beb9e
extra : histedit_source : caa3a11043fc1ccdff3d7853eda69a0a3dfff99e
2017-06-15 18:06:00 -04:00
Ryan Hunt bb5749ccf1 Bug 1351783 part 17 - Do less work when apz.keyboard.enabled is false. r=kats
When keyboard apz is disabled, we don't need to calculate focus targets and
we don't need to update focus state. It should be harmless even if it's done,
but I think it's good to not add something on this critical path that doesn't
do anything.

This commit also disable keyboard map generation in this case too for similar
reasoning. This has the side effect that you can't turn on keyboard apz without
doing a restart.

MozReview-Commit-ID: LxmofT2g7qs

--HG--
extra : rebase_source : 719d29efd80498b824fee03a5be1c1fd05c83074
extra : histedit_source : 7ad71a19782fc6dd203207afbdc7a73a936b3e04
2017-06-06 11:08:45 -05:00
Ryan Hunt db5f497c0f Bug 1351783 part 16 - Perform async scrolling for keyboard events when possible. r=kats,botond,dvander
This commit ties it all together by dispatching keyboard actions to scroll targets
in response to keyboard inputs when we have current and valid focus state.

MozReview-Commit-ID: G7rZiS3FH5e

--HG--
extra : rebase_source : 10129d417fe8ef576cac5bda3157dd8f65b5843a
extra : histedit_source : be651a33f787f68bc764988ddc073d346e854491
2017-06-05 19:46:06 -05:00
Ryan Hunt c24e099b23 Bug 1351783 part 15 - Hook up APZC for scrolling based on a KeyboardScrollAction. r=kats,botond
This commit adds code for keyboard scroll animations and computing the delta
needed for a keyboard scroll action. Keyboard scrolling behavior is more complex
with scroll snapping, so we don't support async keyboard scrolling when we have
scroll snap points.

MozReview-Commit-ID: 97CpprCBp2A

--HG--
extra : rebase_source : 154b2c6b5a6c587fca011ab885c8d46ba6b4d80a
extra : histedit_source : 87ba53fe89069a47751d9ce25fc344011fb0f4de
2017-06-06 04:47:10 -05:00
Ryan Hunt 285770048d Bug 1351783 part 14 - Create a base class for WheelScrollAnimation. r=botond
MozReview-Commit-ID: BtUJo5NAiTR

--HG--
extra : rebase_source : ba3d7cf476ab806094ff2e0c33753e81f88761bf
extra : histedit_source : a898248b30fd1060e82478096fe2624a35473c26
2017-06-15 04:31:50 -04:00
Ryan Hunt 5e36e136d3 Bug 1351783 part 13 - Add a function for determing if a ScrollSnapInfo has scroll snap points. r=botond
MozReview-Commit-ID: 7Dj0RGfQFNC

--HG--
extra : rebase_source : e25f6657f379b286c9393af19b3771c6296db468
extra : histedit_source : e9206c7c276fb9653df142617e08ec3bb7c6f1ad
2017-06-15 03:52:34 -04:00
Ryan Hunt c1312e5abc Bug 1351783 part 12 - Create and sync focus sequence numbers. r=kats,botond,dvander
Focus can change at any moment in a document. This causes non-determinism and
correctness problems for doing keyboard apz scrolling. To get around this, we
will maintain deterministic behavior for focus changes initiated by input events
and see if we can get away with more non-determinism for things like `setTimeout`

In order to do this, we disable async keyboard scrolling when an input event is
processed that could have a event listener. We then attach a sequence number to
that input event and dispatch it to content. In content, we record the highest
sequence number that we have processed from an event, and send that on each focus
update. Using this, we can determine in APZ if we have a current focus target or
if we are still waiting for an input event to be processed and focus to be
reconfirmed.

MozReview-Commit-ID: CWcu8YEFQz4

--HG--
extra : rebase_source : 8c54a619bd4f5ee892f0cc8768a10f3e1e4e0b59
extra : histedit_source : 601ca293a028787883841adc6b40e62c0cc829e5
2017-06-05 19:45:31 -05:00
Ryan Hunt 0785b2f849 Bug 1351783 part 11 - Sync FocusTarget with WebRenderLayerManager. r=kats
MozReview-Commit-ID: LxWt22XY5IE

--HG--
extra : rebase_source : c8eb965d1737d4f6791d96d4f975a31365790632
2017-06-13 02:43:59 -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
Ryan Hunt 3332ba9ac0 Bug 1351783 part 9 - Disable a FocusTarget for an editable element. r=smaug
This commit updates FocusTarget to disable itself if the focused element is editable,
or is a part of an editable document. This is needed because we cannot do async
scrolling when this is the case.

MozReview-Commit-ID: Fl7W3967djG

--HG--
extra : rebase_source : f376dec47965ade11055e10d68311fa9566aca9f
2017-06-05 19:23:45 -05:00
Ryan Hunt 1432b9109d Bug 1351783 part 8 - Gather whether there are key listeners on the focused element. r=kats,smaug
This commit updates FocusTarget to collect whether there are key listeners
on the event target chain for the focused element. This is needed because we
cannot do async scrolling when this is the case.

MozReview-Commit-ID: FhSyF6ffZ4

--HG--
extra : rebase_source : 3e7e8e88ddda1a6b9e8542c131fdbb37e578d7e1
2017-06-05 19:22:16 -05:00
Ryan Hunt 99499fb9d6 Bug 1351783 part 7 - Create FocusState and FocusTarget types. r=kats,botond
This commit begins the work needed for tracking focus by creating two new classes,
FocusTarget and FocusState. FocusState is created and used by APZCTreeManager to
track the global focus information, while FocusTarget is created per layer tree and
sent to APZ with local focus information. Between the two we are able to figure out
what the correct scrollable layer is to use in response to a keyboard scroll.

See the comment in `FocusState.h` for more details on the architecture and things
needed in future patches to complete this.

MozReview-Commit-ID: F75VZv3i9U2

--HG--
extra : rebase_source : 3d04bced8e13a9884f0c1b320bad8ba2205d7011
2017-06-05 19:12:22 -05:00
Ryan Hunt cc923c3909 Bug 1351783 part 6 - Create and send KeyboardMap to APZCTreeManager. r=kats
This commit makes it so we initialize, send, and store a KeyboardMap for every
APZCTreeManager for later keyboard event processing.

This is a naive approach so it may be worth improving.

MozReview-Commit-ID: CYTbLL3wRlC

--HG--
extra : rebase_source : 016b80a2a209d4fb5b92bc3adb95bd2dbb4399e0
2017-06-05 18:35:32 -05:00
Ryan Hunt 18867b218f Bug 1351783 part 5 - Add a KeyboardMap type. r=kats,masayuki
The XBL bindings used for scrolling are managed by a nsXBLWindowKeyHandler. This
class loads the handlers and has logic for searching through them to match a
keyboard event. This commit adds a KeyboardMap class for storing KeyboardShortcuts
and for mirroring the search logic of nsXBLWindowKeyHandler.

MozReview-Commit-ID: 5BmFBilKTJy

--HG--
extra : rebase_source : 96cd0f5808ba6c4926e9da368ab3780b1d9d1449
2017-06-05 18:29:04 -05:00
Ryan Hunt 710c2e9481 Bug 1351783 part 4 - Add a KeyboardShortcut type. r=kats,masayuki
Keyboard scrolling works by first dispatching a key event to the focused element
of the page. It is then caught by a XBL binding put on the chrome event handler of
every window. The XBL binding searches through all of its handlers to find one
that can handle the keyboard event. The matching binding has a command string
which is dispatched to the nsGlobalWindowCommands which dispatches to PresShell
which does the actual scrolling.

To do this asynchronously, we need a representation of the XBL handlers that can
be applied to a KeyboardInput to get a KeyboardAction.

This commit adds KeyboardShortcut for this purpose. KeyboardShortcut is designed
to be compatible with nsXBLPrototypeHandler and to only handle the specific cases
we care about for keyboard scrolling. If a XBL handler runs javascript or does
anything else we cannot handle in an OMT situation, then we create a
dispatch-to-content KeyboardShortcut.

MozReview-Commit-ID: 1qzywS3QHVp

--HG--
extra : rebase_source : 8ea4f85c02d04ce5e0fa6e430c44ac920269dd9f
2017-06-05 18:24:35 -05:00
Ryan Hunt a97d402536 Bug 1351783 part 3 - Add a KeyboardScrollAction type. r=kats,masayuki
The different types of keyboard scrolls are represented as command strings that
are dispatched to nsGlobalWindowCommands. This commit adds a class to represent
these command strings, along with a function to find the keyboard scroll action
corresponding to a command string.

MozReview-Commit-ID: 20vvYdzlYYT

--HG--
extra : rebase_source : 8a965429f57534ac65da597cbb05a08284f7eaeb
2017-06-05 18:17:30 -05:00
Ryan Hunt cfc792bc4c Bug 1351783 part 1 - Add includes for unified build issues. r=kats
MozReview-Commit-ID: D57bbW4pmPZ

--HG--
extra : rebase_source : 9af2973a112c7ea641876c1f945797f2c7c945ce
2017-06-05 18:03:02 -05:00
Sebastian Hengst 4798a534fd Backed out changeset 9db369ba372c (bug 1375759) for unused mComputedDrawRegion. r=backout 2017-06-27 20:47:30 +02:00
David Anderson 45ebfe4fb7 Implement LayerMLGPU::SetLayerManager. (bug 1375759, r=mattwoodrow) 2017-06-27 11:31:37 -07:00
Carsten "Tomcat" Book 4e00eff077 merge mozilla-inbound to mozilla-central a=merge 2017-06-27 10:56:41 +02: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
Kartikaya Gupta 34903d0ba6 Bug 1376215 - Stop exposing the WrClipRegionToken in WebRenderAPI.h APIs. r=jrmuizel
No functional changes intended in this patch. It merely simplifies the
additional patch that we'll need to update gecko past WR cset 0bf6655,
and saves some potential manual rebasing work.

MozReview-Commit-ID: Km8dBotP3NQ

--HG--
extra : rebase_source : 77c34ec1cbbc1c0fe4d1971feb131d30c97f0d66
2017-06-26 07:49:52 -04:00
Carsten "Tomcat" Book 259377b6ab merge mozilla-inbound to mozilla-central a=merge 2017-06-26 13:25:51 +02:00
David Anderson ea272c6f03 Add memory reporting. (bug 1365879 part 26, r=mattwoodrow) 2017-06-23 14:23:14 -07:00
David Anderson 07b79273e2 Add Advanced Layers to the compositor line in about:support. (bug 1365879 part 22, r=milan) 2017-06-23 14:23:13 -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
David Anderson 6376e2c6bb Initial import of Advanced Layers. (bug 1365879 part 20, r=bas) 2017-06-23 14:23:12 -07:00
Andrew Osmond ee57a1a455 Bug 1374278 - Fix a race condition between GPUChild and CompositorManagerChild when the GPU process crashes. r=dvander 2017-06-23 16:12:35 -04:00
David Anderson 6ec4a2c568 Remove leftover files from incomplete backout of bug 1365879 (r=me). 2017-06-23 12:31:05 -07:00
Samael Wang 06b5a3322e Bug 1362166 - Add a timeout to PCompositorManager & kill GPU process on timeout in release builds. r=dvander
MozReview-Commit-ID: Dln8ERrExmz
2017-06-22 17:27:05 +08:00
Jeff Muizelaar 3bc6d736e9 Bug 1372685 - Make DisplayItemLayer dummy target 1x1. r=lsalzman
This is basically the same as what was done in PaintedLayerBlob
2017-06-23 09:46:40 -04:00
Carsten "Tomcat" Book 88fff78f64 Merge mozilla-central to mozilla-inbound 2017-06-23 12:22:24 +02:00
Carsten "Tomcat" Book 4119f2f8fb Backed out changeset 8069471cda21 (bug 1365879) 2017-06-23 12:15:35 +02:00
Carsten "Tomcat" Book 1f871b61e4 Backed out changeset 9d0048e04446 (bug 1365879) 2017-06-23 12:15:32 +02:00
Carsten "Tomcat" Book 661c4ea09c Backed out changeset be62d3eb3b3b (bug 1365879) 2017-06-23 12:15:30 +02:00
Carsten "Tomcat" Book 86edec6643 Backed out changeset 20203c94ef23 (bug 1365879) 2017-06-23 12:15:21 +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 5e5166d309 Add memory reporting. (bug 1365879 part 26, r=mattwoodrow)
--HG--
extra : rebase_source : a19fc78fb107d6899244632d18cdb654a4bae8e9
2017-06-22 21:12:21 -07:00
David Anderson 52d5447f23 Add Advanced Layers to the compositor line in about:support. (bug 1365879 part 22, r=milan)
--HG--
extra : rebase_source : 123d4190c0343b60491f34757b26532b9def5075
2017-06-22 21:12:20 -07: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
David Anderson 8eb9963527 Initial import of Advanced Layers. (bug 1365879 part 20, r=bas)
--HG--
extra : rebase_source : 57032a3e3d383c27cfdc2f26841d387ca57d0011
2017-06-22 21:12:19 -07:00
Jeff Muizelaar b9527d4f81 Bug 1374900. Replace CopyRecording with direct use of the memory buffer. r=lsalzman 2017-06-22 23:55:47 -04: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
Jeff Muizelaar 0de540ca2e Bug 1375534 - Add bindings for setting transform style to PushStackingContext. r=kats 2017-06-22 17:30:27 -04:00
Jeff Muizelaar 9781850638 Bug 1373863. Add basic invalidation to PaintedLayerBlobImage. r=kats
This allows us to reuse blob images if they haven't changed.
If they have changed we repaint the whole image.
2017-06-22 17:07:17 -04:00
Mason Chang 3895c778af Bug 1372739 - Use DrawTargetCapture instead of DrawTargetRecording for omtp. r=dvander 2017-06-22 08:36:14 -07:00
Jacek Caban 209eeeaf94 Bug 1372870 - Compiling with mingw-w64 based on GCC 6.3.0 breaks (operands to ?: have different types) r=mattwoodrow 2017-06-22 17:33:39 +02:00
Markus Stange 99dd420f6b Bug 1368846 - Display the window buttons when webrender is used. r=kats,mattwoodrow
MozReview-Commit-ID: Ki4ONGxtzyO

--HG--
extra : rebase_source : b4b223ad64a117cee60fc19819833855b871f95a
2017-06-21 18:58:41 -04:00
sotaro e171eb9a00 Bug 1376896 - Fix AnimatedValue leak at CompositorAnimationStorage during OMTA r=kats 2017-07-06 12:06:41 +09:00
Wes Kocher bfc45b98b9 Merge m-c to inbound, a=merge
MozReview-Commit-ID: 9XdoB5MuVz6
2017-07-05 17:17:41 -07:00
David Anderson 7b27fc5e03 Use greyscale instead of subpixel AA for complex intermediate surfaces. (bug 1366618, r=milan)
--HG--
extra : rebase_source : 95cb64f3b7de631411bc16d109d4b3cade1eea33
2017-07-05 15:43:58 -07:00
David Anderson 2c24b3d088 Ignore container layer batches that don't have an intermediate surface. (bug 1377936, r=mattwoodrow) 2017-07-05 15:39:46 -07:00
David Anderson f914e078f9 Implement asynchronous OMTP behind a pref. (bug 1377060 part 2, r=mchang)
--HG--
extra : rebase_source : b9c49b6c0e80e2bc94a94dee2ddaae4ad985f9ec
2017-07-05 15:19:52 -07:00
David Anderson 6cf29dbc0e Refactor PaintThread for async painting. (bug 1377060 part 1, r=mchang)
--HG--
extra : rebase_source : 4a3601108175cc2f091800f123461187282ca31f
2017-07-05 15:19:47 -07:00
Nathan Froyd 6c8193aed4 Bug 1377962 - add more override declarations for Android-only methods; r=snorp
Trying to get the build running with clang again revealed a few more
missing override declarations.
2017-07-05 16:56:28 -04:00
Carsten "Tomcat" Book 4f3bc4dba8 merge mozilla-inbound to mozilla-central a=merge 2017-06-22 12:47:40 +02:00
Phil Ringnalda 669f3cd603 Merge m-c to autoland
MozReview-Commit-ID: 2R3jZZI6drP
2017-06-21 20:39:08 -07:00
Wes Kocher aef6a66634 Backed out 4 changesets (bug 1343728) for failures in test_group_mouseevents.html a=backout
Backed out changeset 2029cb6bce86 (bug 1343728)
Backed out changeset 0169e09f6030 (bug 1343728)
Backed out changeset 831e95b29f66 (bug 1343728)
Backed out changeset d5630ef01b17 (bug 1343728)

MozReview-Commit-ID: 2RRBTmp5FGj

--HG--
extra : source : 14f84d3b3233a87af51f5ad8302ee24cc2371a01
2017-06-21 17:13:49 -07:00
Wes Kocher ac0fd2038c Merge inbound to m-c a=merge
MozReview-Commit-ID: 3LXFVwSoMvs
2017-06-21 17:58:17 -07:00
Michael Layzell aafcf19442 Bug 1343728 - Part 2: Add const operator== to TextureFactoryIdentifier and CompositorOptions, r=jrmuizel
MozReview-Commit-ID: 6BayMmqNlyx
2017-06-21 14:23:11 -04:00
Mason Chang dafcabde79 Bug 1372441 - Enable replay of ClientPaintedLayers off the main thread. r=dvander 2017-06-20 13:35:39 -07:00
Hiroyuki Ikezoe 8894ec184b Bug 1374882 - Add a TimingParams ctor on the compositor. r=birtles
MozReview-Commit-ID: BFiwrphRND0

--HG--
extra : rebase_source : 79bb7aed8ec25f9b10a34276dec78577c3af7b86
2017-06-22 12:12:42 +09:00
Carsten "Tomcat" Book 8a1350b5a6 Backed out changeset 4f6302a98ae4 (bug 1372405)
--HG--
extra : rebase_source : 41632f3158e88e692809731394a683d065a73dfb
2017-06-21 13:59:26 +02:00
Chris Peterson aa1b22d493 Bug 1373525 - gfx/layers: Remove unused member functions Revoke() of AsyncCanvasRenderer Runnables. r=bas
gfx/layers/AsyncCanvasRenderer.cpp:62:10 [-Wunused-member-function] unused member function 'Revoke'
gfx/layers/AsyncCanvasRenderer.cpp:97:10 [-Wunused-member-function] unused member function 'Revoke'

MozReview-Commit-ID: 11CjGtiXIqv

--HG--
extra : source : a1bc00d769d882d1bd8bbc8a34b48751e488fcb9
extra : intermediate-source : 8f7a070ec05778d6a4f42417772bdd552a433ccc
extra : histedit_source : a5f1974899bb0f41975417b922306a387822ad1f
2017-06-07 00:54:35 -07:00
Nicholas Nethercote 4183270eec Bug 1375275 (part 3) - Remove profiler_log(). r=mstange.
It's a wafer thin wrapper around profiler_tracing() and it's only used three
times. Let's just remove it.

Note also that those three uses are the only places where TRACING_EVENT is
used. I wonder if they're really needed...

--HG--
extra : rebase_source : ac70b4c77c4592d96957a8e6249597eafc822fd4
2017-06-21 20:50:07 +10:00
Wes Kocher bb24138b9d Merge m-c to inbound, a=merge
MozReview-Commit-ID: CaSKFN9T7N4
2017-06-21 18:05:27 -07:00
Matt Woodrow eafc8e49e9 Bug 1373335 - Make sure we clip the opaque region in render target coordinate space, since complex transforms mean that we can't always have a rectangular representation of clips in layer space. r=mstange 2017-06-22 12:41:16 +12:00
Wes Kocher b9d43d4afd Backed out 4 changesets (bug 1343728) for failures in test_group_mouseevents.html a=backout
Backed out changeset 2029cb6bce86 (bug 1343728)
Backed out changeset 0169e09f6030 (bug 1343728)
Backed out changeset 831e95b29f66 (bug 1343728)
Backed out changeset d5630ef01b17 (bug 1343728)

MozReview-Commit-ID: 2RRBTmp5FGj
2017-06-21 17:13:49 -07:00
Jeff Muizelaar e16b0717ca Bug 1373861. Pass a built display list to PushBuiltDisplayList by reference instead of value. r=Ganrko
Previously we needed to pass by value and that was causing us to clear out our
prebuilt display list when we actually wanted to keep it around.

The rust code ended up doing a bit of a silly dance but that's better than copying the display list around.
2017-06-21 18:40:13 -04:00
Kartikaya Gupta c4e762b7e6 Bug 1374682 - Clean up processing of non-cancelable input blocks in InputQueue. r=botond
The main changes here are:
- Make QueuedInput store a InputBlockState instead of a CancelableBlockState,
  and propagate these changes outwards as necessary.
- Hoist some virtual functions from CancelableBlockState up into InputBlockState.
  These are mostly downcast-type functions but also a couple of others
  (DispatchEvent and MustStayActive) that are generally applicable to input
  blocks and not specific to block cancellation.
- Modify the signatures of a few other functions in InputQueue (such as CanDiscardBlock)
  to take a InputBlockState even though all the current call sites pass in a
  CancelableBlockState. This will make it easier to plumb in a new non-cancelable
  block because the function can still be used without modification.

MozReview-Commit-ID: IzhCxVjkKoj

--HG--
extra : rebase_source : b5b415f829e70ea4e7d52481bc84aa016a55e924
2017-06-21 14:22:18 -04:00
Jean-Yves Avenard 2f1f120932 Bug 1223270: P7. Extract D3D11MTAutoEnter and reuse. r=mattwoodrow
MozReview-Commit-ID: Ipz5ygQLxNV

--HG--
extra : rebase_source : 7b294cc18ae5cedde2e1baea5c63c7a3286cba56
2017-06-20 20:45:40 +02:00
Jean-Yves Avenard 00153b34ec Bug 1223270: P2. Add D3D11YCbCrImage type. r=mattwoodrow,nical
And related methods.

Will allow to directly upload a YUV420 buffer into a D3D11 texture.

MozReview-Commit-ID: FugfJB3818Y

--HG--
extra : rebase_source : faaf2667236699513923aaf76ccc462840182aa6
2017-05-03 23:23:45 +02:00
Jean-Yves Avenard e8d34824cb Bug 1223270: P1. Extract AutoLockD3D11Texture. r=mattwoodrow
Will be used in future code.

MozReview-Commit-ID: 5ivawIIt2bu

--HG--
extra : rebase_source : 1c640796907cfce1ce0c7939d0bef64f04b6b0d5
2017-05-04 13:54:05 +02:00
Wes Kocher c0e1236f1a Merge autoland to m-c a=merge
MozReview-Commit-ID: LFtpTAueYrF
2017-06-20 18:24:29 -07:00
Kartikaya Gupta 1be3a1831a Bug 1373381 - Update for size field removal in WR cset d0fdef9. r=jrmuizel
MozReview-Commit-ID: DB8YytEIIH9

--HG--
extra : rebase_source : d58ed1b6c99e7124df98f6dbd16d400f6909fb5e
2017-06-20 09:38:48 -04:00
Sebastian Hengst e1bd0a20d7 Backed out changeset e62923d406f0 (bug 1362166) on suspicion of causing reftest failures on Linux x64 QuantumRender opt, e.g. multicol-rule-hidden-000-ref.xht. r=backout 2017-06-20 18:01:22 +02:00
Samael Wang 0db11efe83 Bug 1362166 - Add a timeout to PCompositorManager & kill GPU process on timeout in release builds. r=dvander
MozReview-Commit-ID: Dln8ERrExmz
2017-06-19 16:45:21 +08:00
Carsten "Tomcat" Book de892834ed Merge mozilla-central to mozilla-inbound 2017-06-20 11:31:34 +02:00
Carsten "Tomcat" Book 013fb0680e merge mozilla-inbound to mozilla-central a=merge 2017-06-20 11:26:40 +02:00
Mason Chang 65fc4594b7 Bug 1371037 - Support for record and replay of ClientPaintedLayers on the main thread. r=dvander 2017-06-15 16:32:59 -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
Wes Kocher 976d5437f9 Merge m-c to autoland, a=merge
MozReview-Commit-ID: 6A96Fe0GPjw
2017-06-19 17:37:53 -07:00
Mats Palmgren a0ff91e5d1 Bug 1374089 part 2 - Use nsRefPtrHashtable instead of nsDataHashtable with a RefPtr<> data type, since it's clearer and avoids unnecessary AddRef/Release calls. r=froydnj
MozReview-Commit-ID: 3PshFI1cO38
2017-06-19 18:19:14 +02:00
Mats Palmgren 1da7b46948 Bug 1374089 part 1 - Use LookupForAdd instead of Contains+Put, and remove an unnecessary Contains call before GetAndRemove, to avoid unnecessary hashtable lookups. r=froydnj
MozReview-Commit-ID: 599FkcgcRj0
2017-06-19 18:19:14 +02:00
Wes Kocher 871ead54fd Backed out 2 changesets (bug 1365772) for valgrind failures a=backout
Backed out changeset 3e869b1c08d0 (bug 1365772)
Backed out changeset 66b6c25cacc7 (bug 1365772)

MozReview-Commit-ID: DnIpbwb7KPS

--HG--
extra : rebase_source : 40e29234adb1837283e0bd4be18d96b4311db869
2017-06-19 13:53:23 -07:00
Alexis Beingessner 5267043bbc Bug 1365772 - Allow component alpha to be managed by blocklists. r=kats
MozReview-Commit-ID: 5iEuUtmfkLl

--HG--
extra : rebase_source : ca0c104a5c1923b21d3e40200e5a9ecd66fdebc2
2017-05-30 09:25:40 -04:00
Kartikaya Gupta 86a10aa409 Bug 1373349 - Correct the origin of the content rect when creating scroll layers in WR. r=botond,jrmuizel
Also tweaks the documentation in FrameMetrics.h to be more detailed and
less misleading.

MozReview-Commit-ID: 183V2Q9kY6C

--HG--
extra : rebase_source : 9fb08cf9c2a9df68637fb26014f637b0cb40b188
2017-06-15 15:35:04 -04:00
Sebastian Hengst 905913ead5 Backed out changeset 112d854f652d (bug 1365772) for Windows bustage: 'gfxConfig': is not a class or namespace name at DeviceAttachmentsD3D11.cpp(179). r=backout on a CLOSED TREE
Valgrind also complains: Conditional jump or move depends on uninitialised value(s) at __get_cpuid / cpuid / read_cpu_features / operator
2017-06-19 18:23:50 +02:00
Alexis Beingessner 5c589ff480 Bug 1365772 - Allow component alpha to be managed by blocklists. r=kats
MozReview-Commit-ID: 5iEuUtmfkLl

--HG--
extra : rebase_source : 5c39798c464d790cd76254dedba4c76470dc2126
2017-05-30 09:25:40 -04: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
Andrew Osmond f4ca4bff53 Bug 1373540 - Fix switchover from the GPU process compositor to the same process compositor. r=me,dvander 2017-06-18 14:49:30 -04:00
Sebastian Hengst 95244ee248 Backed out changeset 866d59780f6d (bug 1373540) for mass test failures on Windows debug (tests terminated with RunWatchdog). r=backout 2017-06-18 01:32:24 +02:00
Sebastian Hengst 968a22a73d merge mozilla-central to mozilla-inbound. r=merge a=merge 2017-06-18 00:25:47 +02:00
Andrew Osmond 60cec7b49f Bug 1373540 - Fix switchover from the GPU process compositor to the same process compositor. r=dvander 2017-06-17 17:52:34 -04:00
Sebastian Hengst e8f0643a4e Backed out changeset 03e899794f41 (bug 1371037) for merge conflict with bug 1368386, v2. r=backout a=backout
MozReview-Commit-ID: De78lCy88sD
2017-06-17 22:49:14 +02:00
Sebastian Hengst 478026cce6 Backed out changeset 03e899794f41 (bug 1371037) for merge conflict with bug 1368386. r=backout 2017-06-17 22:10:05 +02:00
Sebastian Hengst df925a5cf8 Backed out changeset 03e899794f41 (bug 1371037) for merge conflict with bug 1368386. r=backout a=backout
MozReview-Commit-ID: GPp2Knh4JQt

--HG--
extra : amend_source : c62c91c325a892b612945dc8a2d560660085a1aa
extra : transplant_source : %EC%87%3C2%EE%06%AC%C1Wo/%3FoO%CFX%CE%2C%B9%C5
2017-06-17 22:10:05 +02:00
Sebastian Hengst 3654d560d6 merge mozilla-inbound to mozilla-central. r=merge a=merge
MozReview-Commit-ID: DPQl41S3ZkU
2017-06-17 22:26:03 +02:00
Jeff Muizelaar 427de06487 Bug 1372685 - Make dummy target 1x1. r=lsalzman
Now that we don't playback our dummy target only needs to be 1x1 instead
of the recording size.  This saves time and memory.
2017-06-17 15:22:26 -04:00
Mason Chang 86004b9db3 Bug 1371037 - Support for record and replay of ClientPaintedLayers on the main thread. r=dvander 2017-06-15 16:32:59 -07:00
Sebastian Hengst a90ef58a2b Backed out changeset 0bade2cd1908 (bug 1343728) 2017-06-16 22:20:43 +02:00
Wes Kocher 296d2b492b Merge m-c to autoland, a=merge
MozReview-Commit-ID: B3DzZrZb3AB
2017-06-16 18:28:40 -07:00
Sebastian Hengst d70c8aa98b merge mozilla-central to mozilla-inbound. r=merge a=merge 2017-06-16 09:52:22 +02:00
Sebastian Hengst 265affc002 merge mozilla-inbound to mozilla-central. r=merge a=merge
MozReview-Commit-ID: 5wTyHWufcCh
2017-06-16 09:50:00 +02:00
sotaro 61c0f84377 Bug 1372512 - Fix webrender Key leaks of WebRenderBridgeParent on abnormal shutdown r=kats
This bug handles abnormal client shut down case and Tab move between different windows.

Abnormal client shut down case, WebRenderBridgeParent does not receive IPC messages that are sent during WebRenderLayerManager and WebRenderBridgeChild destruction. In this case, webrender keys except keys of external images are not removed from webrender. Abnormal shut down could happen when content process was crashed or content process was killed by ContentParent if shutdown takes too long time.

In the tab move case, the WebRenderBridgeParent will need to be re-bound to a different CompositorBridgeParent and webrender, and so will need to clear all its related keys from the old webrender. This will happen in a future patch.
2017-06-16 15:31:01 +09:00
domfarolino@gmail.com d4253766db Bug 1274663 - Expose API to trigger device reset. r=dvander
--HG--
extra : rebase_source : 5a9d2757f8e7378083ce42131d5a250027569814
2017-06-15 14:34:00 -04:00
Sebastian Hengst 43c84014a1 merge mozilla-inbound to mozilla-central. r=merge a=merge
MozReview-Commit-ID: HYo8pUZXJ8Z
2017-06-15 20:12:28 +02:00
Kartikaya Gupta 56e85d2efc Bug 1372603 - Remove unnecessary clip from container layers. r=jrmuizel
MozReview-Commit-ID: F6VnThG5QFI

--HG--
extra : rebase_source : 9d6d670e31520bfe8d5c46297eeba1a0bb3279c9
2017-06-14 15:43:17 -04:00
Kartikaya Gupta aec19f9182 Bug 1372603 - Remove unused functions and parameters. r=jrmuizel
MozReview-Commit-ID: 1DUBPEcCe2u

--HG--
extra : rebase_source : 15c6ac0719a0186a39d619285269555e7a571918
2017-06-14 15:43:16 -04:00
Kartikaya Gupta 60385dfbe4 Bug 1372603 - Move the clip rect for async images outside the iframe item. r=jrmuizel,sotaro
The async images codepath is a bit different in that it pushes an iframe
item to the WR display list and updates it asynchronously. However in
this case it still makes sense to push the layer's local clip
outside the iframe, and just populate the iframe with the image and not
worry about clips inside the iframe. As mentioned in part 1 of this
patchset, this will be needed to properly handle async scrolling.

This patch makes the necessary changes to push the clip outside the
iframe and simplifies what happens in WebRenderCompositableHolder to
generate the display list for the iframe itself.

MozReview-Commit-ID: DeZElH4p4rc

--HG--
extra : rebase_source : 3f3458a6c2607b8290dc2174a248f3d7bd33a3a9
2017-06-14 15:43:16 -04:00
Kartikaya Gupta 4b9fbd6d4d Bug 1372603 - Remove the duplicated clip from WebRenderDisplayItemLayer. r=jrmuizel
Since part 1 of this patch set pushed the layer's local clip as part of
the code in ScrollingLayersHelper, it is no longer needed in the
WebRenderDisplayItemLayer (it is effectively duplicated).

MozReview-Commit-ID: F2HFsx3XI9M

--HG--
extra : rebase_source : 5dfcecb649376d6958760e4e95cd025d01f3124c
2017-06-14 15:43:16 -04:00
Kartikaya Gupta 367cc282d0 Bug 1372603 - Make sure the mask rect is relative to the enclosing stacking context. r=jrmuizel
This ensures that for layers with both transforms and mask layers, the
mask layer is properly positioned outside of the transform and relative
to the proper stacking context.

MozReview-Commit-ID: 79yvhxQCykW

--HG--
extra : rebase_source : 353a7dcc59fb2df0ff2379909a08986ec176ac50
2017-06-14 15:43:16 -04:00
Kartikaya Gupta 1ed171d132 Bug 1372603 - Push the layer's local clip rect outside the stacking context. r=jrmuizel
For various reasons, we want to be pushing the layer's local clip rect
outside of the stacking context rather than inside it. Not only is this
more correct with respect to the semantics of the layer tree, we also
need it in order to properly handle fixed-positioning of layers with
async scrolling.

This patch does the bulk of the work to make this happen. Most of the code
in the individual layer classes to process the layer's local clip rect
is removed, and instead a function in ScrollingLayersHelper is added to
deal with it. There are a couple of places that individual layer classes
still handle this but those will be removed in future patches. Note that
the individual layer classes still need to provide a clip rect of some
sort in order to push their display items, and now they simply use their
visible region bounds for this purpose.

MozReview-Commit-ID: IBmfUdJwYx1

--HG--
extra : rebase_source : 3f48a707f35a398711813d859af1e7184f19fd40
2017-06-14 15:43:16 -04:00
Sebastian Hengst 20d16dadd3 merge mozilla-inbount to mozilla-central. r=merge a=merge
MozReview-Commit-ID: 36YqbsnO3en
2017-06-15 11:11:30 +02:00
Andrew Osmond 9e4c9d88a1 Bug 1365927 - Part 6. Remove CompositorThreadHolder reference from CompositorBridgeParent. r=dvander 2017-06-14 11:40:00 -04:00
Andrew Osmond cafe9dcd45 Bug 1365927 - Part 5. Make PCompositorManager the manager protocol of PCompositorBridge. r=dvander 2017-06-14 11:40:00 -04:00
Andrew Osmond 27eaaaed2f Bug 1365927 - Part 4. Replace PCompositorBridge integration hooks with PCompositorManager. r=dvander 2017-06-14 11:39:59 -04:00
Andrew Osmond 9abc5f52d5 Bug 1365927 - Part 3. Move PCompositorBridge toplevel protocol overrides to PCompositorManager. r=dvander 2017-06-14 11:39:59 -04:00
Andrew Osmond fc4e6a00ae Bug 1365927 - Part 2. Add minimal PCompositorManager protocol. r=dvander 2017-06-14 11:39:59 -04:00
Mats Palmgren 2979d4b762 Bug 1372368 - Use LookupForAdd instead of Get+Put to avoid unnecessary hashtable lookups. r=froydnj
MozReview-Commit-ID: trugd3ihLh
2017-06-14 17:27:25 +02:00
Sebastian Hengst 1b26da1b2f merge mozilla-central to mozilla-inbound. r=merge a=merge 2017-06-15 11:17:07 +02:00
JerryShih 011987c967 Bug 1372803 - Handle GPUVideoTextureHost type for WR. r=sotaro
In windows platform, gecko will use GPUVideoTextureHost type for remote video decoding.
Implement the WR related functions for this type.

MozReview-Commit-ID: KSpndcApK3H
2017-06-15 17:07:46 +08:00
JerryShih 8731715817 Bug 1372803 - Move the RenderTextureHost creation from WebRenderTextureHost to the corresponding TextureHost. r=sotaro
MozReview-Commit-ID: JF19ntiQKfa
2017-06-15 17:07:46 +08:00
sotaro a1ccf002a7 Bug 1372066 - Fix animations leak on abnormal shutdown and tab move between different windows r=kats
This bug handles abnormal client shut down case and Tab move between different windows.

Abnormal client shut down case, WebRenderBridgeParent does not receive IPC messages that are sent during WebRenderLayerManager and WebRenderBridgeChild destruction. In this case, animations under the WebRenderBridgeChild are not removed from CompositorAnimationStorage. Abnormal shut down could happen when content process was crashed or content process was killed by ContentParent if shutdown takes too long time.

In the tab move case, the WebRenderBridgeParent will need to be re-bound to a different CompositorBridgeParent and CompositorAnimationStorage, and so will need to clear all its active animations from the old CompositorAnimationStorage and add animations into the new CompositorAnimationStorage. This will happen in a future patch.
2017-06-15 16:36:03 +09:00
sotaro 33a0f76b05 Bug 1372816 - Send WebRenderParentCommands When EmptyTransaction is aborted r=jrmuizel 2017-06-15 13:38:22 +09:00
domfarolino@gmail.com 5450eab623 Bug 1369549 - Bootstrap a painting thread for OMTP. r=dvander
--HG--
extra : rebase_source : bae591cdace1197a6b4d3a489a46bdaab5293d23
2017-06-09 16:30:00 -04:00
Matt Woodrow 9dc1432982 Bug 1361970 - Make PostProcessLayers occlusion culling work against the surface we will draw to rather than the parent layer. r=mstange
* * *
[mq]: fix

MozReview-Commit-ID: Dm42jlC19pE
* * *
[mq]: fix

MozReview-Commit-ID: 3c1Bp7BeY5T
2017-06-14 13:47:08 +12:00
Wes Kocher bcf1a1c32e 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 5500fe634e Bug 1365927 - Part 6. Remove CompositorThreadHolder reference from CompositorBridgeParent. r=dvander 2017-06-13 15:20:36 -04:00
Andrew Osmond 7dc8c4cc9f Bug 1365927 - Part 5. Make PCompositorManager the manager protocol of PCompositorBridge. r=dvander 2017-06-13 15:20:00 -04:00
Andrew Osmond c17a8c1ea1 Bug 1365927 - Part 4. Replace PCompositorBridge integration hooks with PCompositorManager. r=dvander 2017-06-13 15:19:36 -04:00
Andrew Osmond 9c5b478f2f Bug 1365927 - Part 3. Move PCompositorBridge toplevel protocol overrides to PCompositorManager. r=dvander 2017-06-13 15:19:36 -04:00
Andrew Osmond 9a639f1536 Bug 1365927 - Part 2. Add minimal PCompositorManager protocol. r=dvander 2017-06-13 15:19:36 -04:00
Andrew Osmond 230fa0dcd8 Bug 1365927 - Part 1. Add missing headers and other build housekeeping. r=dvander 2017-06-13 15:17:59 -04:00
Kartikaya Gupta d6cb0eba49 Bug 1372233 - Clean up handling of default branches in APZ switch statements. r=botond
Wherever possible, we exhaustively list all the possibilities instead of
having "default" branches. This way if new items are added to the enum
they won't silently end up in the "default" branch, but the compiler can
tell us that we skipped handling it.
Also wherever possible, the existing NS_WARNINGs were upgrade to
MOZ_ASSERTs or equivalent.

MozReview-Commit-ID: IVDiI0gjFtU

--HG--
extra : rebase_source : 93bac9678e44e2f42602e10d0c7eea26366bae37
2017-06-16 15:22:12 -04:00
Markus Stange fcebd73530 Bug 1368386 - Only call mInvalidRegion.GetRegion() when an up-to-date valid region is requested. r=mattwoodrow
MozReview-Commit-ID: IHb0fNAzyjj

--HG--
extra : rebase_source : 7042eb85f99c0a578a5e732e1edfe364deec330d
2017-06-15 23:35:38 -04:00
Markus Stange 5e44be6da9 Bug 1368386 - Make PaintedLayer::mValidRegion private so that its access can be tightly controlled. r=mattwoodrow
MozReview-Commit-ID: LdtH3hrXT5v

--HG--
extra : rebase_source : c1eff1ba44f9a762cadb028113576bbffee93715
2017-06-15 18:20:53 -04:00
Markus Stange 23716b1586 Bug 1368386 - Add PaintedLayer::InvalidateWholeLayer(). r=mattwoodrow
MozReview-Commit-ID: 7sgQDs82Wwt

--HG--
extra : rebase_source : 6a13c3b53f85d88535451cda57c76e5d845a53d5
extra : source : 92eb66a5357939ca239cb2167dcccbc2328ea51b
2017-06-15 17:29:18 -04:00
Markus Stange da5c42ccd2 Bug 1368386 - Make ProgressiveUpdate's aValidRegion parameter const to make it a bit easier to reason about. r=mattwoodrow
MozReview-Commit-ID: DOfJ8TTuL1t

--HG--
extra : rebase_source : d4e6a1dc8aedb9f6b446c43aeded6823944c497a
2017-06-15 17:30:01 -04:00
Markus Stange fd5c1c95ed Bug 1368386 - Make ProgressiveUpdate's aInvalidRegion parameter const to make it a bit easier to reason about. r=mattwoodrow
The caller of RenderHighPrecision and RenderLowPrecision doesn't look at the
variable that it passes as the aInvalidRegion parameter after the call, so any
modifications that would have happened to this variable don't matter.

MozReview-Commit-ID: B9PaXjZkxv2

--HG--
extra : rebase_source : fb66ae3170a9891fbb5d4d90aebf78230b8f9ce0
2017-06-15 17:18:37 -04:00
Kartikaya Gupta 302b120284 Bug 1372912 - Place the layer local clip in the right spot for fixed-pos layers. r=mrobinson
This patch makes the bg-fixed-child-mask.html reftest pass by ensuring
the clips for the test case are all in the correct spots. See the
comments in the patch for a more detailed explanation.

MozReview-Commit-ID: 21MAHr0PJ9B

--HG--
extra : rebase_source : 649a539a9c9417784c1cd025e372eb7823844bec
2017-06-15 17:02:22 -04:00
Kartikaya Gupta 1e6ddf03d5 Bug 1372912 - Make the clip id more strongly typed. r=jrmuizel,mrobinson
This patch is not really needed, but it avoids accidental conversion
between FrameMetrics::ViewID (which represents a scrolling clip) and a
uint64_t id for a non-scrolling clip.

MozReview-Commit-ID: JriIfpECHe7

--HG--
extra : rebase_source : a7af8465c9c62a60856c190da64667439233f4b0
2017-06-15 17:02:20 -04:00
Kartikaya Gupta 81a3b0b998 Bug 1372912 - Push clips for all the scroll metadata scrollclips. r=jrmuizel
Each layer has a stack of scroll metadata objects, which represent the
set of scrollframes that got flattened into the layer. Effectively the
metadata objects provide the scroll information for the chain of
scrollframes containing that layer's content. Each of these scrollframes
may have a clip, and so we need to push those clips to WR. We need to
take care to insert these clips at the right point in the stack, so that
they are interleaved correctly with the PushScrollLayer calls that we
use to inform WR of the scrolling clips for the scrollframes. This patch
implements this behaviour.

MozReview-Commit-ID: HD3OO5TZHSr

--HG--
extra : rebase_source : 8c5c3b027f3fa6fca8394c57769845569387f32e
2017-06-15 17:02:18 -04:00
Kartikaya Gupta 65a82350c5 Bug 1372912 - Extract a PushLayerClip helper method. r=jrmuizel
No functional changes. We'll want to reuse this code in a future patch.

MozReview-Commit-ID: LEuP38yXBHI

--HG--
extra : rebase_source : 11faa0123e987c255dd7495e4b704346ab2b714d
2017-06-15 17:02:12 -04:00
Sebastian Hengst cd40ca46a9 Backed out changeset 2b883786cf01 (bug 1372912) for bustage at ScrollingLayersHelper.h:19: class 'LayerClip' was previously declared as a struct. r=backout 2017-06-15 22:59:51 +02:00
Sebastian Hengst a1045bb07d Backed out changeset 6f148794682a (bug 1372912) 2017-06-15 22:59:01 +02:00
Sebastian Hengst 8d132d70e6 Backed out changeset 8176859f8b70 (bug 1372912) 2017-06-15 22:58:57 +02:00
Sebastian Hengst 55c85f1bad Backed out changeset 18c0e82c745f (bug 1372912) 2017-06-15 22:58:52 +02:00
Kartikaya Gupta afd9ebbf45 Bug 1372912 - Place the layer local clip in the right spot for fixed-pos layers. r=mrobinson
This patch makes the bg-fixed-child-mask.html reftest pass by ensuring
the clips for the test case are all in the correct spots. See the
comments in the patch for a more detailed explanation.

MozReview-Commit-ID: 5HHtsSkcsji

--HG--
extra : rebase_source : d5d52f33714407a0df41ca06a6a298bef3154c74
2017-06-15 09:41:47 -04:00
Kartikaya Gupta f910c3f66e Bug 1372912 - Make the clip id more strongly typed. r=jrmuizel,mrobinson
This patch is not really needed, but it avoids accidental conversion
between FrameMetrics::ViewID (which represents a scrolling clip) and a
uint64_t id for a non-scrolling clip.

MozReview-Commit-ID: BU7p4WNocXa

--HG--
extra : rebase_source : 0cf69ca0a7b716bd9ad5c3cef114a3b99ec00e1b
2017-06-15 09:41:46 -04:00
Kartikaya Gupta 9b82918f72 Bug 1372912 - Push clips for all the scroll metadata scrollclips. r=jrmuizel
Each layer has a stack of scroll metadata objects, which represent the
set of scrollframes that got flattened into the layer. Effectively the
metadata objects provide the scroll information for the chain of
scrollframes containing that layer's content. Each of these scrollframes
may have a clip, and so we need to push those clips to WR. We need to
take care to insert these clips at the right point in the stack, so that
they are interleaved correctly with the PushScrollLayer calls that we
use to inform WR of the scrolling clips for the scrollframes. This patch
implements this behaviour.

MozReview-Commit-ID: BayxnZuqh4s

--HG--
extra : rebase_source : 94b8ab464c5648a2e87d94ed9d95ed5ff3f486a3
2017-06-15 09:41:46 -04:00
Kartikaya Gupta 6a50a2f2fc Bug 1372912 - Extract a PushLayerClip helper method. r=jrmuizel
No functional changes. We'll want to reuse this code in a future patch.

MozReview-Commit-ID: 1nrMuS9n8A5

--HG--
extra : rebase_source : 75112a65645147c85643d4cd2cf253de3242825b
2017-06-15 09:41:46 -04:00
Michael Layzell e61a1cdcfb Bug 1343728 - Part 2: Add const operator== to TextureFactoryIdentifier and CompositorOptions, r=jrmuizel
MozReview-Commit-ID: 6BayMmqNlyx
2017-06-16 14:59:33 -04:00
peter chang 6010728f95 Bug 1373836 - Generate fixed animation id per layer if animations exist, r=kats
In gecko, it's possible to generate lots of animation ids per layer if animations are changed.
It also introduces lots of memory allocation/deallocation in CompositorAnimationStorage(HashTable).
Generate fixed animations id per layer should help the memory usage and reduce CPU time for memory allocation.
MozReview-Commit-ID: 1hWUD5gNBJH

--HG--
extra : rebase_source : bd3fcfed5caab5d8edfbd29a8e505daf9e8ff95f
2017-06-28 09:31:10 -07:00
David Anderson af47af94ef Compute minimal intermediate surface sizes in Advanced Layers. (bug 1375785, r=mattwoodrow)
--HG--
extra : rebase_source : 60b7a69865a0e9083a61201b8ce1bea2e3c82fd1
2017-06-28 15:26:48 -07:00
sotaro ca474bba44 Bug 1376532 - Do crahs if CreateRenderTexture() is not implemented also on release build r=nical 2017-06-28 10:31:57 -07:00
Jeff Muizelaar e44fb23df8 Bug 1376797 - Store the bounds of the area that we painted. r=mattwoodrow
Previously we would use the size of the current visible region which
didn't actually match the size of the blob image that we had created.
2017-06-28 09:30:25 -07:00
Michael Layzell a6f9d86063 Bug 1343728 - Part 2: Add const operator== to TextureFactoryIdentifier and CompositorOptions, r=jrmuizel
MozReview-Commit-ID: 6BayMmqNlyx
2017-06-28 12:25:27 -04:00
Carsten "Tomcat" Book d1489bfcf4 Merge mozilla-central to mozilla-inbound on a CLOSED TREE
--HG--
extra : amend_source : 67c6f9f68bacd295dde41b981153d8c7ba333461
2017-06-28 16:31:19 +02:00
JerryShih 56f5339e5a Bug 1374548 - Implement the frame selection in BasicImageLayer. r=mattwoodrow
The BasicImageLayer always picks the first frame in image container which is not desired for video playback.

MozReview-Commit-ID: q4QkBT2a7w

--HG--
extra : rebase_source : 732f61eb5ca64a051fc928a1e22706011800d8fb
2017-06-22 21:03:00 +02:00
Christoph Kerschbaumer 17fb630efb Bug 1380765 - Convert tests within gfx/ to comply with new data: URI inheritance model. r=smaug 2017-07-14 12:18:23 +02:00
David Anderson a967d21a69 Allow LayerManagers to disable complex component alpha cases. (bug 1365879 part 19, r=mattwoodrow) 2017-06-20 01:17:22 -07:00
David Anderson eda24ede27 Rename LayerManager::Composite to LayerManager::ScheduleComposite. (bug 1365879 part 17, r=mattwoodrow) 2017-06-20 01:17:21 -07:00
David Anderson 452df9e9d2 Allow ContainerLayers to track their invalid regions. (bug 1365879 part 16, r=mattwoodrow) 2017-06-20 01:17:21 -07:00
David Anderson 5c3229c7cc Add an RAII helper for read-unlocking textures. (bug 1365879 part 15, r=mattwoodrow) 2017-06-20 01:17:21 -07:00
David Anderson 9467c3d33c Don't require a Compositor for setting DiagnosticTypes. (bug 1365879 part 14, r=mattwoodrow) 2017-06-20 01:17:20 -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
David Anderson 3a500a9070 Don't require a Compositor for texture backend checks. (bug 1365879 part 12, r=mattwoodrow) 2017-06-20 01:17:19 -07:00
David Anderson 392b83f1c4 Allow LayerManagers to force intermediate surfaces for blend containers. (bug 1365879 part 11, r=mattwoodrow) 2017-06-20 01:17:19 -07:00
David Anderson bae9947dc4 Add IsHidden to CompositorWidget. (bug 1365879 part 10, r=rhunt) 2017-06-20 01:17:19 -07:00
David Anderson f23fbf5237 Add a way to extract TextureSources from a BigImageIterator. (bug 1365879 part 9, r=mattwoodrow) 2017-06-20 01:17:18 -07:00
David Anderson 737535e6d0 Refactor ImageHost to allow acquiring the current TextureSource without locking the underlying TextureHost. (bug 1365879 part 8, r=mattwoodrow) 2017-06-20 01:17:18 -07:00
David Anderson 8974aed87a Allow locklessly acquiring the TextureSources for ContentHosts. (bug 1365879 part 7, r=mattwoodrow) 2017-06-20 01:17:17 -07:00
David Anderson ac1b90f140 Add support for locklessly getting TextureSources from TextureHosts. (bug 1365879 part 6, r=mattwoodrow) 2017-06-20 01:17:17 -07:00
David Anderson e9660f0e6c Allow safe downcasting to ContentTextureHost and ImageHost. (bug 1365879 part 5, r=mattwoodrow) 2017-06-20 01:17:16 -07:00
David Anderson f56c8518c4 Expose ContentTextureHost buffer properties. (bug 1365879 part 4, r=mattwoodrow) 2017-06-20 01:17:16 -07:00
David Anderson f52c24e301 Extract some compositor functions into a LayersHelpers header. (bug 1365879 part 3, r=mattwoodrow) 2017-06-20 01:17:16 -07:00
David Anderson e78f438bc1 Fix potential memory leak in TextureSourceProviderMLGPU. (bug 1365879 part 1, r=mattwoodrow) 2017-06-20 01:17:15 -07:00
David Anderson 2f52d702a2 Unified build fixes to APZ. (bug 1373890, r=kats)
--HG--
extra : rebase_source : cfdba3196705ada8cad6019e32ba2346ce43cf4f
2017-06-20 00:05:39 -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 df51f39768 Bug 1387922 - Add log of start or fwd Transaction to on screen timing r=nical 2017-08-11 10:57:21 +09:00
Matt Woodrow 781ec6ffa1 Bug 1388162 - Add a Destroy function to nsDisplayItem to use instead of manually invoking the destructor, this will allow us to recycle them in the future. r=mstange
* * *
[mq]: fix

MozReview-Commit-ID: LUXZAIL73BJ
2017-08-07 16:07:43 +12:00
Carsten "Tomcat" Book 7ab0637eb6 Backed out changeset 14d0e2a451e7 (bug 1383365) for perma crashes in test_wheel_transactions.html 2017-07-26 13:59:12 +02:00
Carsten "Tomcat" Book 7dbd2bee72 Backed out changeset 1db44c2e7903 (bug 1383365) 2017-07-26 13:58:55 +02:00
Ryan Hunt 3a91a63dd0 Bug 1383365 - Add a test to assert async key scrolling happens. r=botond
MozReview-Commit-ID: 13XydDOHXUE

--HG--
extra : rebase_source : 45daf95f9261afc0d605f74354f33b80f5083459
2017-07-23 12:42:26 -04:00
Ryan Hunt 4f873939a9 Bug 1383365 - Fix APZ focus target log parameter order. r=botond
MozReview-Commit-ID: DJtXaylyseg

--HG--
extra : rebase_source : 1d2e851a591f71d241b1051a10c06efbbbb39f23
2017-07-23 13:58:19 -04:00
David Anderson 3bacd995dc Don't assert about borrowed DT refcounts when async painting. (bug 1381393, r=mattwoodrow) 2017-07-25 22:38:33 -07:00
David Anderson 4ccde3c049 Silence spurious Advanced Layers warnings in the D3D11 debug layer. (bug 1383326, r=bas) 2017-07-25 22:34:29 -07:00
Morris Tseng b2906160cb Bug 1388235 - Support fallback path for nsDisplayFilter. r=jrmuizel
Use FrameLayerBuilder and BasicLayerManager for rendering filter effects
that webrender not supported.

MozReview-Commit-ID: FCa6BWNpnbR
2017-08-18 15:24:30 +08:00
Morris Tseng 5da4bc5316 Bug 1391135 - Only retain WebRenderUserData when layer manager and namespaceID is match. r=kats
MozReview-Commit-ID: JAc3ePuFtzI
2017-08-18 15:21:20 +08:00
sotaro 32cc925261 Bug 1391167 - Call ClearCachedResources() of AncestorMaskLayer in WebRenderLayerManager::ClearLayer() r=nical 2017-08-18 14:47:00 +09:00
Matt Woodrow 94247181df Bug 1377324 - Don't compute prepared data multiple times for ContainerLayers that are duplicated. r=miko 2017-07-07 14:14:19 +12:00
Matt Woodrow 4fd709b953 Bug 1377324 - Don't clear prepared data during rendering since we can visit Layers multiple times in the presence of plane splitting. r=miko 2017-07-07 14:14:11 +12:00
David Anderson 3d539c41cb Fail gently when a D3D11 TextureHost uses a stale provider. (bug 1378282, r=vliu) 2017-07-06 18:35:37 -07:00
David Anderson fa09d4e240 Disable Advanced Layers on transparent popups. (bug 1379014, r=mattwoodrow) 2017-07-06 18:29:38 -07:00
Ryan Hunt fcb54217c6 Bug 1371527 - Add LayersMessageUtils for IPC serialization of mozilla::layers structs. r=dvander
MozReview-Commit-ID: 7UAtrnnlSqI

--HG--
rename : gfx/ipc/GfxMessageUtils.h => gfx/layers/ipc/LayersMessageUtils.h
extra : rebase_source : 99abcb49ede377e5c31440b2d21a5bd79cda65e0
extra : amend_source : d1820fb6e7aee5e0dbcc83242e9264d8f4e7a4d0
2017-06-08 23:32:13 -05:00
Alexis Beingessner adb013669b Bug 1088760 - Remove nsRenderingContext, replacing all of its uses with gfxContext. r=jwatt,jrmuizel
MozReview-Commit-ID: K1WUIOnvazF
2017-06-13 11:00:10 -04:00
Nicholas Nethercote 0be77baa96 Bug 1370329 (part 1) - Clean up the profiler's RAII classes. r=mstange.
This patch does the following renamings, which increase consistency.

- GeckoProfilerInitRAII -> AutoProfilerInit
- GeckoProfilerThread{Sleep,Wake}RAII -> AutoProfilerThread{Sleep,Wake}
- GeckoProfilerTracingRAII -> AutoProfilerTracing
- AutoProfilerRegister -> AutoProfilerRegisterThread
- ProfilerStackFrameRAII -> AutoProfilerLabel
- nsJSUtils::mProfilerRAII -> nsJSUtils::mAutoProfilerLabel

Plus a few other minor ones (e.g. local variables).

The patch also add MOZ_GUARD_OBJECT macros to all the profiler RAII classes
that lack them, and does some minor whitespace reformatting.

--HG--
extra : rebase_source : 47e298fdd6f6b4af70e3357ec0b7b0580c0d0f50
2017-06-07 12:33:19 +10:00
Bill McCloskey f9aca3eae6 Bug 1365099 - Convert NS_GetCurrentThread uses in gfx (r=dvander)
MozReview-Commit-ID: 9I4eXsBl2s8
2017-06-12 20:20:08 -07:00
Sebastian Hengst f3bf820bfd Backed out changeset 3d1ce85e6348 (bug 1088760) for bustage, at least on Android at layout/generic/nsPluginFrame.cpp:1612. r=backout 2017-06-13 00:30:03 +02:00
Jeff Muizelaar 64116b92d4 Bug 1362245. Stop running commands during recording for BlobImage. r=lsalzman
This keeps around mFinalDT but mostly doesn't use it (except for when creating
a PathBuilder). All playback is ripped out and we'll no longer hold references
to things to mFinalDT::GraidentStops or SourceSurfaces etc.
2017-06-12 17:53:21 -04:00
Alexis Beingessner c75211cb95 Bug 1088760 - Remove nsRenderingContext, replacing all of its uses with gfxContext. r=jwatt,jrmuizel
MozReview-Commit-ID: K1WUIOnvazF
2017-06-12 17:32:48 -04:00
Mason Chang 27e2a5cbe7 Bug 1371098 - Fix unified builds when adding a PaintThread. r=kats 2017-06-08 11:18:09 -07:00
peter chang c09bd44dec Bug 1371114 - Add gecko profiler labels for WebRender, r=kats
MozReview-Commit-ID: 4TRZgV8X1Ml

--HG--
extra : rebase_source : 1152c3a1d3444ebf91d55b2e2de4f123e1139a7f
2017-06-09 11:56:13 +08:00
Wes Kocher 7462f47787 Merge m-c to inbound, a=merge
MozReview-Commit-ID: LZOwJMXpznP
2017-06-09 15:58:08 -07:00
Botond Ballo faf8512e63 Bug 1371299 - Restrict the thumb snapping back to its original position to when the thumb is on-screen. r=kats
MozReview-Commit-ID: 2oZMwlusg2n

--HG--
extra : rebase_source : 5400135b4c32327a8deaa73faa2076fb7a000d25
2017-06-09 17:12:38 -04:00
Jeff Muizelaar 0442ca87fb Bug 1367538. Clear user data after we're done with the recorder. r=lsalzman
This helps keep us from accumulating all of the recorders.

The basic idea is to track weak references to the SourceSurfaces and Fonts that
we add UserData to in DrawEventRecorderPrivate and then clear these UserData's
when we're done recording.

This adds a RemoveAndDestroy helper to UserData to make this possible.
2017-06-09 14:31:35 -04:00
Carsten "Tomcat" Book d5a13ba05e merge mozilla-inbound to mozilla-central a=merge 2017-06-09 12:58:49 +02:00
Cameron McCormack 1f30613283 Bug 1369954 - Part 4: Stop running <meta viewport>-related tests on non-Android stylo. r=emilio
Due to the confusing precedence of reftest manifest conditions,
we are running these tests when we shouldn't be.

MozReview-Commit-ID: 6RgI0NgWvay

--HG--
extra : rebase_source : 2e6a8113e1444bef52131ad9c119a31a7e855b7f
2017-06-09 12:20:40 +08:00
Kartikaya Gupta a8a8b628cd Bug 1368496 - Add support for fixed-positioning with APZ. r=jrmuizel
This implements at least enough fixed-positioning support to make the
reftest in layout/reftests/async-scrolling/bg-fixed-child.html pass.
That test implements a simple background-attachment:fixed which is
implemented in the layer tree with a combination of a scrolled clip and
a fixed-position layer. Previous patches in this patchset implemented
support for the scrolled clip, and this patch implements the
fixed-position layer support.

MozReview-Commit-ID: 1Al1YshhUL7

--HG--
extra : rebase_source : e50d5572264567acc03f1ecf220c57c7b5a85a4f
2017-06-08 11:34:01 -04:00
Kartikaya Gupta c8d5fd6ffd Bug 1368496 - Propagate the layer's "scrolled clip" to WebRender. r=jrmuizel
If the layer has a "scrolled clip", that clip scrolls with the content
of the layers (it moves if any of the scrollable frames defined by that
layer are scrolled).

MozReview-Commit-ID: 37hvXWO930f

--HG--
extra : rebase_source : 4150c3bb061d027b483e44418bec7f3b810a9ccc
2017-06-08 11:34:00 -04:00
Kartikaya Gupta 8e9f1257f8 Bug 1368496 - Skip over scrollinfo layers instead of aborting entirely. r=jrmuizel
MozReview-Commit-ID: 5pYcurXfAf

--HG--
extra : rebase_source : c489b9028dffea2e166a16fe6e318833db489ed0
2017-06-08 11:34:00 -04:00
Jeff Muizelaar 4cf1367466 Bug 1370681. WebRender: Remove unnecessary sync messages. r=kats,dvander
These don't need to be sync and we're spending a noticeable amount of
time in DeleteImage.
2017-06-08 18:05:57 -04:00
Ryan VanderMeulen 9b7a73b65a Merge m-c to autoland. a=merge
UPGRADE_NSPR_RELEASE UPGRADE_NSS_RELEASE

--HG--
extra : amend_source : a59e53ba2f8db608f613f21ad6da2b5be8814aa4
2017-06-07 22:55:56 -04:00
Martin Robinson 9915ffcbc3 Bug 1370530 - Convert more CSS filters to WebRender display items. r=jrmuizel
Activate WebRender output for filters that introduce only one pixel
differences in tests. Since the filters spec does not seem to specify
how color values are rounded, this output should be spec compliant.
2017-06-07 03:43:00 -04:00
JerryShih efa30c7964 Bug 1366502 - Make sure all wrapped textureHosts doesn't use TextureFlags::DEALLOCATE_CLIENT flag. v2. r=sotaro
MozReview-Commit-ID: KjZIGRzRomT
2017-06-07 23:44:05 +08:00
JerryShih b28ccb02ff Bug 1366502 - Update the thread model for RegisterExternalImage(), UnregisterExternalImage() and GetRenderTexture() call. v2. r=sotaro
If we call UnregisterExternalImage() at non-render-thread and decrease the RenderTextureHost's ref-count to zero, the RenderTextureHost will be released in non-render-thread.
That will cause some problems if we use some thread-specific functions in ~RenderTextureHost().
This patch uses a message loop in UnregisterExternalImage() to resolve this problem.

MozReview-Commit-ID: CDazxGkE1cK
2017-06-07 23:44:05 +08:00
JerryShih df9418c639 Bug 1366502 - Update WebRenderTextureHost for video pipeline. r=sotaro
MozReview-Commit-ID: 8ODLYyXzHjO
2017-06-07 23:44:04 +08:00
JerryShih 5b3045edee Bug 1366502 - Update TextureD3D11 for video pipeline. v2. r=sotaro
Update for DXGITextureHostD3D11 and DXGIYCbCrTextureHostD3D11.

MozReview-Commit-ID: CQqzHK3jqz7
2017-06-07 23:44:04 +08:00
JerryShih 20064eaa12 Bug 1366502 - Update MacIOSurfaceTextureHostOGL for video pipeline. r=sotaro
MozReview-Commit-ID: 5cu8cYoTMxT
2017-06-07 23:44:04 +08:00
JerryShih 77ea08e890 Bug 1366502 - Update BufferTextureHost and RenderBufferTextureHost for video pipeline. r=sotaro
WR supports the planar-ycbcr image format. We turn to use the planar-ycbcr image to get rid of the software-ycbcr-to-rgb color format conversion(using libyuv) in gecko.

The BufferTextureHost will use 3 image keys for SurfaceFormat::YUV format.
The RenderBufferTextureHost will also use 3 DataSourceSurfaces to represent the 3 channel data in planar-ycbcr format.

MozReview-Commit-ID: 3mMreSzKnMv
2017-06-07 23:44:04 +08:00
JerryShih c287793fd9 Bug 1366502 - Add GetWRImageKeys() and PushExternalImage() in textureHost. r=sotaro
These 2 functions are used for WR.
The GetWRImageKeys() will return the proper image keys according to the textureHost format.
The PushExternalImage() will put all necessary WR commands into DisplayListBuilder for the textureHost rendering.

MozReview-Commit-ID: FwCDxwsCMMy
2017-06-07 23:44:04 +08:00
JerryShih 46faf0ecc2 Bug 1366502 - Move the various of image key and WR command settings from WebRenderCompositableHolder into textureHosts. r=sotaro
It's awful to put all combination of image key and WR command settings in the same place. Make the settings go back to textureHosts.
Each textureHost should implement GetWRImageKeys() and PushExternalImage() function.

MozReview-Commit-ID: 5Bmiuv5HgmX
2017-06-07 23:44:03 +08:00
JerryShih 45a0e9e65a Bug 1366502 - Rename mImageClientTypeContainer into mImageClientContainerType. r=sotaro
MozReview-Commit-ID: LcSHVkBbM6G
2017-06-07 23:44:03 +08:00
Phil Ringnalda 772debd9ae Backed out changeset 4524bfde8583 (bug 1361970) for failures in transform-3d/backface-visibility-3.html and transform-3d/opacity-preserve3d-1.html
CLOSED TREE

MozReview-Commit-ID: GmEmiedJYeX
2017-06-06 19:54:40 -07:00
Matt Woodrow 80c51057d4 Bug 1361970 - Make PostProcessLayers occlusion culling work against the surface we will draw to rather than the parent layer. r=mstange 2017-06-07 11:07:15 +12:00
Ryan VanderMeulen 6cb217315a Backed out 12 changesets (bug 1366502) for causing intermittent QuantumRender debug crashtest crashes on a CLOSED TREE.
Backed out changeset 42350bacb0bc (bug 1366502)
Backed out changeset 7f98b7f60e58 (bug 1366502)
Backed out changeset 265e39153027 (bug 1366502)
Backed out changeset cf598918bb1b (bug 1366502)
Backed out changeset e2f21ee861e5 (bug 1366502)
Backed out changeset f7fcc15d8f90 (bug 1366502)
Backed out changeset 22408b6a1ad1 (bug 1366502)
Backed out changeset 8846dac9ee35 (bug 1366502)
Backed out changeset d5225d81b832 (bug 1366502)
Backed out changeset 82f5a21b53a6 (bug 1366502)
Backed out changeset 2b20aebef47d (bug 1366502)
Backed out changeset 95f4d82e3d79 (bug 1366502)
2017-06-06 18:06:42 -04:00
Martin Robinson 7d937678f4 Bug 1365972 - Add initial WebRender support for nsDisplayFilter. r=rhunt, r=mattwoodrow 2017-06-06 06:28:00 -04:00
JerryShih 148f24bb56 Bug 1366502 - Make sure all wrapped textureHosts doesn't use TextureFlags::DEALLOCATE_CLIENT flag. v2. r=sotaro
MozReview-Commit-ID: KjZIGRzRomT
2017-06-06 19:18:41 +08:00
JerryShih 719611f82b Bug 1366502 - Update the thread model for RegisterExternalImage(), UnregisterExternalImage() and GetRenderTexture() call. v2. r=sotaro
If we call UnregisterExternalImage() at non-render-thread and decrease the RenderTextureHost's ref-count to zero, the RenderTextureHost will be released in non-render-thread.
That will cause some problems if we use some thread-specific functions in ~RenderTextureHost().
This patch uses a message loop in UnregisterExternalImage() to resolve this problem.

MozReview-Commit-ID: CDazxGkE1cK
2017-06-06 19:18:40 +08:00
JerryShih ef71dedff2 Bug 1366502 - Update WebRenderTextureHost for video pipeline. r=sotaro
MozReview-Commit-ID: 8ODLYyXzHjO
2017-06-06 19:18:40 +08:00
JerryShih 5d9cc402f0 Bug 1366502 - Update TextureD3D11 for video pipeline. v2. r=sotaro
Update for DXGITextureHostD3D11 and DXGIYCbCrTextureHostD3D11.

MozReview-Commit-ID: CQqzHK3jqz7
2017-06-06 19:18:39 +08:00
JerryShih 2b0dbd66c3 Bug 1366502 - Update MacIOSurfaceTextureHostOGL for video pipeline. r=sotaro
MozReview-Commit-ID: 5cu8cYoTMxT
2017-06-06 19:18:39 +08:00
JerryShih 620a1df76e Bug 1366502 - Update BufferTextureHost and RenderBufferTextureHost for video pipeline. r=sotaro
WR supports the planar-ycbcr image format. We turn to use the planar-ycbcr image to get rid of the software-ycbcr-to-rgb color format conversion(using libyuv) in gecko.

The BufferTextureHost will use 3 image keys for SurfaceFormat::YUV format.
The RenderBufferTextureHost will also use 3 DataSourceSurfaces to represent the 3 channel data in planar-ycbcr format.

MozReview-Commit-ID: 3mMreSzKnMv
2017-06-06 19:18:39 +08:00
JerryShih 77ae26621d Bug 1366502 - Add GetWRImageKeys() and PushExternalImage() in textureHost. r=sotaro
These 2 functions are used for WR.
The GetWRImageKeys() will return the proper image keys according to the textureHost format.
The PushExternalImage() will put all necessary WR commands into DisplayListBuilder for the textureHost rendering.

MozReview-Commit-ID: FwCDxwsCMMy
2017-06-06 19:18:39 +08:00
JerryShih dc5be30b45 Bug 1366502 - Move the various of image key and WR command settings from WebRenderCompositableHolder into textureHosts. r=sotaro
It's awful to put all combination of image key and WR command settings in the same place. Make the settings go back to textureHosts.
Each textureHost should implement GetWRImageKeys() and PushExternalImage() function.

MozReview-Commit-ID: 5Bmiuv5HgmX
2017-06-06 19:18:38 +08:00
JerryShih 8ed95790fb Bug 1366502 - Rename mImageClientTypeContainer into mImageClientContainerType. r=sotaro
MozReview-Commit-ID: LcSHVkBbM6G
2017-06-06 19:18:38 +08:00
sotaro e19a847326 Bug 1359993 - Reduce invalidation of video r=nical 2017-06-05 20:55:14 +09:00
JerryShih b64d13e2ad Bug 1370117 - Update the external image status for reusing case. r=sotaro
When gecko go through the reusing case, the aUseExternalImage isn't set to the correct value. It is always false here.
Then, gecko will use the non-external-image code path later. Add a new data member "mUseExternalImage" to save the previous status.

MozReview-Commit-ID: KvzgIzYXNAB
2017-06-05 15:30:10 +08:00
sotaro d3ac7845d4 Bug 1370093 - Add mDestroyed checks r=nical 2017-06-05 15:41:21 +09:00
Kartikaya Gupta 10f514bb72 Bug 1369840 - Support content-side APZ test data in WebRenderLayerManager. r=botond
This mostly just copies the functional parts of the APZTestData code from
ClientLayerManager into WebRenderLayerManager, and propagates the paint sequence
number over to the compositor using the existing WebRenderScrollData machinery.

MozReview-Commit-ID: LHupFpqtWTX
2017-06-04 22:29:35 -04:00
Kartikaya Gupta 8b69d8d217 Bug 1369840 - Support getting the compositor-side APZ test data over PWebRenderBridge. r=botond
This is fairly straightforward plumbing. The webrender equivalent of PLayerTransaction
is PWebRenderBridge and we can use that to get the compositor-side APZTestData.

MozReview-Commit-ID: Bn8WjKW5GoI
2017-06-04 22:29:35 -04:00
Kartikaya Gupta 7b9aca62f5 Bug 1369840 - Modify CompositorBridgeParentBase::GetAPZTestData to take a layers id instead of a transaction parent. r=botond
This allows us to use it from WebRenderBridgeParent which doesn't have a
LayerTransactionParent instance.

MozReview-Commit-ID: CyX5rmgOxgd
2017-06-04 22:29:34 -04:00
Randall Barker c7643066a3 Bug 1369298 - Prevent AndrodDynamicToolbarAnimator from getting Initialized if compositor is being shutdown r=botond
MozReview-Commit-ID: 5N7bKyaXzPH
2017-06-02 13:25:18 -07:00
James Willcox bd21ee4811 Bug 1367287 - Reference count GeckoSurfaceTexture r=jchen
MozReview-Commit-ID: 1JJVzCmANyH
2017-06-02 10:14:20 -05:00
sotaro 064920e81e Bug 1345054 part 2 -Reduce DisplayList update and ImageKey generation r=nical 2017-06-02 16:11:53 +09:00
sotaro 807999b9d6 Bug 1345054 part 1 - Allocate pipleline for each video r=nical 2017-06-02 16:11:34 +09:00
sotaro e155c862e7 Bug 1363958 - Fix WebRenderLayerManager::FlushRendering() r=nical 2017-06-02 08:07:59 +09:00
Kartikaya Gupta f7afb5a21c Merge m-c to graphics, a=merge
MozReview-Commit-ID: COZj8Itgjcz
2017-06-01 09:56:23 -04:00
Kartikaya Gupta 0b60039322 Bug 1368551 - Don't send transforms to WR in push_stacking_context if they are identity. r=pchang
If we set a transform in push_stacking_context, it changes the internal
WebRender behaviour to make that stacking context a reference frame, and
things inside it are positioned differently. This is true even if the
transform is an identity transform.

In most cases we are hitting this and sending an identity transform
through, when in fact we want to be sending a None value to WebRender so
that it doesn't create reference frames. This is a partial fix, a proper
fix will be done in bug 1345577 by separating the CSS transform from the
other transforms that FrameLayerBuilder invents.

MozReview-Commit-ID: ElSs3hFMD2D
2017-06-01 09:17:17 -04:00
Kartikaya Gupta c054f05ef3 Bug 1368551 - Remove unneccessary overload of PushStackingContext. r=pchang
This overload is only called in one place, so we can just inline it. It
makes the API a little simpler.

MozReview-Commit-ID: H55IUduUSiJ
2017-06-01 09:17:16 -04:00
Kartikaya Gupta cab614e181 Bug 1367734 - Update webrender to cset a54cc729259588dd1ff52c86d0c62cb2a1767137. r=jrmuizel,jerry
In addition to updating webrender and webrender_traits, this patch:
- bumps the euclid dependency in webrender_bindings to match webrender
- updates the Cargo.lock files and re-vendors third-party rust packages
- updates the push_yuv_image callers due to an API change in WR cset a4b9e25.
2017-06-01 08:57:10 -04:00
sotaro df7247c629 Bug 1368593 - Do not set background color if WebRenderBridgeParent is not root r=jrmuizel 2017-06-01 20:42:55 +09:00
Andrew Osmond bdcff7a50b Bug 1368730 - TextureChild::ActorDestroy should indicate IPC is now impossible, not TextureChild::ReleaseIPDLReference. r=nical 2017-05-31 10:18:13 -04:00
Botond Ballo 0a4092443d Bug 1368315 - Avoid calling SetContentResponse() on an already-consumed drag block. r=kats
MozReview-Commit-ID: LnObFmoB3Bi

--HG--
extra : rebase_source : f7db4d059ac94789da8837c5d7057c0114dc8e22
2017-05-29 11:21:15 -04:00
vincentliu 23c04fef95 Bug 1362366 - Set DataTextureSourceD3D11 to nullptr once devce change was detected. r=dvander 2017-05-31 17:48:12 +08:00
Botond Ballo 070330a262 Bug 1365761 - Modify the mochitest for bug 1328065 to avoid relying on receiving a mouse event while the mouse is over the scrollbar. r=kats
MozReview-Commit-ID: 5jGiY0n9Hdc

--HG--
extra : rebase_source : fedaf1464966691c117ee76c5a2d1c4a60742c41
2017-06-05 18:43:49 -04:00
Kartikaya Gupta ecbda7b57e Bug 1389143 - Send event regions override information to APZ in layers-free mode. r=jrmuizel
MozReview-Commit-ID: 1jh6sdfe8jX

--HG--
extra : rebase_source : af35415e39a866b39db1edfd804c470fa3bec791
2017-08-18 13:06:31 -04:00
Kartikaya Gupta dfc008e7e4 Bug 1389143 - Send event regions items over to APZ in layers-free mode. r=jrmuizel
This patch collapses the data from event regions display items that have
the same ASR. However, it only does so if there's no other display items
interleaved in between that forced their own scroll layer data.

MozReview-Commit-ID: IkQSISc2bwc

--HG--
extra : rebase_source : d3001675d516c303d5452aafc57c996192e11e98
2017-08-18 13:06:31 -04:00
Kartikaya Gupta 3163471fa5 Bug 1389143 - Preserve the lastASR tracker across recursions. r=jrmuizel
We want to collapse all event regions display items with the same ASR
(and that are not interleaved with other APZ-relevant display items),
regardless of the recursion level in the display list. In order to
facilitate this we need to track the last ASR seen in the display list
regardless of the recursion level.

MozReview-Commit-ID: Lw5ZwwmqnkE

--HG--
extra : rebase_source : 14eba8a04a7cbeaa41313aed969484bf5b6f46ad
2017-08-18 13:06:30 -04:00
Kartikaya Gupta 975c4c2802 Bug 1389143 - Refactor to extract helper method. r=jrmuizel
MozReview-Commit-ID: 5FxrP280i5m

--HG--
extra : rebase_source : 5ca1f3f42d013b1b5adfa64caf061b170e700092
2017-08-18 13:06:30 -04: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
James Willcox 6b5af17980 Bug 1372060 - Relax assertions when missing SurfaceTexture in compositor r=jgilbert
MozReview-Commit-ID: heJALqGBLV
2017-06-26 09:48:43 -05:00
Jonathan Kew bf22003a9a Bug 1364714 - (re-landing) Update Freetype to version 2.8, and fix/annotate tests affected by changes to font metrics & rasterization. r=dholbert,jwatt,ryanvm,jfkthame 2017-08-22 09:20:05 +01:00
Morris Tseng ee42f9770c Bug 1391960 - Call FireDidTransactionCallback when exiting ReadbackSurface. r=nical
If we bailed out in ReadbackSurface function, we didn't call
FireDidTransactionCallback properly. Added ScopedFireTransactionCallback
struct to do this right.

MozReview-Commit-ID: DouTY0YVEhU
2017-08-22 13:47:33 +08:00
Morris Tseng 89a7571411 Bug 1392200 - Check backface:hidden in layers-free mode. r=kats
MozReview-Commit-ID: 9guOx0NPjmV
2017-08-22 13:46:30 +08:00
Lee Salzman e75b1b8c59 Bug 1366446 - Ensure layers TextureClient always lives as long as the SourceSurface using it. r=jrmuizel
MozReview-Commit-ID: HU3TBQQgotE
2017-05-28 13:30:32 -04:00
sotaro 9825a21a17 Bug 1363280 - Fix Updating sImageBridges handling r=dvander,nical 2017-05-31 09:11:53 +09:00
sotaro 1885be3a3f Bug 1366915 part 2 - Make CompositorBridgeChild allocate pipeline id for async image pipeline r=nical 2017-05-30 09:59:44 +09:00
sotaro 3e55c4713f Bug 1366915 part 1 - Remove pipeline id allocation with IPC MozPromise r=nical 2017-05-30 09:59:29 +09:00
Kartikaya Gupta bf29ee0963 Bug 1368487 - Fix content rect passed to scroll layers to be relative to the right thing. r=jrmuizel
MozReview-Commit-ID: 1mbVLqp9o2R
2017-05-29 11:40:58 -04:00
Kartikaya Gupta 2c6ff0ad8b Bug 1368487 - Add some default-disabled logging functionality to WebRenderAPI.cpp r=jrmuizel
MozReview-Commit-ID: DAqeAEyjCTm
2017-05-29 11:40:49 -04:00
Kartikaya Gupta 4bee409ce4 Bug 1367911 - Follow-up to remove invalid assertion. r=me
MozReview-Commit-ID: IdL5yLgserF
2017-05-29 09:57:42 -04:00
Kartikaya Gupta b7ee577f62 Merge m-c to graphics, a=merge
MozReview-Commit-ID: 8IWAJNO52ry
2017-05-29 08:28:04 -04:00
Kartikaya Gupta c77f08c8ad Bug 1367911 - Extract a GetLayersId() helper. r=dvander
We're calling this often enough that it seems good to extract a named
helper method.

MozReview-Commit-ID: gIwdyfafOq
2017-05-28 07:51:53 -04:00
Kartikaya Gupta e4b2bf8de2 Bug 1367911 - Update APZCCallbackHelper to support WebRender. r=dvander
This allows APZCCallbackHelper to send the SetConfirmedTargetAPZC
message over PWebRenderBridge if webrender is enabled, rather than
assuming the layer manager is a ClientLayerManager and then crashing.

MozReview-Commit-ID: 57o9CaCcbTi
2017-05-28 07:51:51 -04:00
Kartikaya Gupta 0f05ab2902 Bug 1367911 - Refactor the SetConfirmedTargetAPZC function to take a layers id. r=dvander
This makes it simpler to reuse this API from WebRenderBridgeParent,
since we can provide a layers id but not a LayerTransactionParent.

MozReview-Commit-ID: DEIGMk9tJEB
2017-05-28 07:51:48 -04:00
Kartikaya Gupta d5c99e4ebb Bug 1367837 - Implement some APZ test util APIs for webrender. r=botond,dvander
This implements some methods exposed on DOMWindowUtils and used by
reftests, for the WebRender codepath. The implementation is very similar
to the implementation in LayerTransactionParent.

MozReview-Commit-ID: HP8OxzIzS7P
2017-05-28 07:48:36 -04:00
Kartikaya Gupta f47534e48a Bug 1367837 - Expose a testing helper method to get an APZC instance from the layers id and scroll id. r=botond
MozReview-Commit-ID: HyEMamx7nDk
2017-05-28 07:48:33 -04:00
Kartikaya Gupta 71133b7ca0 Bug 1367837 - Have the CompositorBridgeParent::FlushApzRepaints function take a layers id instead of a layer tree. r=dvander
This is helpful for reusing the FlushApzRepaints from
WebRenderBridgeParent, since it no longer assumes there's a layers
transaction object.

MozReview-Commit-ID: GVqDDEeZaN3
2017-05-28 07:48:29 -04:00
Kartikaya Gupta c3d1217b06 Merge m-c to graphics, a=merge
MozReview-Commit-ID: 91TVUCwwNt4
2017-05-26 08:28:53 -04:00
Kartikaya Gupta 29bcb40e01 Bug 1367870 - Add stringification helper for WrRect. r=jrmuizel
MozReview-Commit-ID: FMw6tPI2LOJ
2017-05-25 17:49:30 -04:00
Kartikaya Gupta cbaaff5376 Bug 1367870 - Remove unused logging function bodies. r=jrmuizel
Both nsIntPoint and IntRect are specializations of template classes (BasePoint
and BaseRect) that are already covered by the corresponding template methods
in LayersLogging.h. Therefore these methods are not needed (and in fact are not
listed separately in LayersLogging.h).

MozReview-Commit-ID: BIZAOFfWCfI
2017-05-25 17:49:23 -04:00
Kartikaya Gupta 07aa8387a0 Merge m-c to graphics, a=merge
MozReview-Commit-ID: 3cEYFBtGvTZ
2017-05-25 08:06:56 -04:00
Kartikaya Gupta d29002d64b Merge m-c to graphics, a=merge
MozReview-Commit-ID: 2pUMxaNAKCC
2017-05-24 08:14:30 -04:00
sotaro 103c378c7f Bug 1366931 - Fix pipeline id handling of WebRenderBridgeParent::RecvDeleteCompositorAnimations() r=kats 2017-05-24 09:26:29 +09:00
Dennis Ek 907fde9487 Bug 1111333 - Enable double-tap-drag to zoom. r=kats
MozReview-Commit-ID: KpwVNZZdLPd
2017-05-23 19:53:06 +02:00
ohn0 e64bada746 Bug 1367062 - Change std::map to std::unordered_map in APZCTreeManager r=botond
MozReview-Commit-ID: yHXUFw2fx6
***
Bug 1367062 - Change std::map to std::unordered_map in APZCTreeManager
changed gfx/layers/FrameMetrics.h by adding a ScrollableLayerGuidHash class that will be used as the hashing function for std::unordered_maps which use ScrollableLayerGuid as keys.
changed gfx/layers/apz/src/APZCTreeManager.cpp by changing mApzcMap to a std::unordered_map.
changed gfx/layers/apz/src/APZCTreeManager.h by changing mZoomConstraints to a std::unordered_map.

MozReview-Commit-ID: JmoQzh1MvKK

--HG--
extra : rebase_source : cb7bd9419085f83873c9fd019c4a379fae0ee278
2017-05-26 19:41:13 -04:00
Shing Lyu 5d8a5a598c Bug 1361645 - Change reftest condition stylo to styloVsGecko r=dbaron
MozReview-Commit-ID: 3ekoU1zg8xA

--HG--
extra : rebase_source : f62c84516f5ac0d4b4d0c876514b72fa786ec542
2017-05-25 11:26:12 +08:00
Botond Ballo eed69a71e3 Bug 1352863 - Implement support for slider.snapMultiplier during APZ dragging. r=kats
MozReview-Commit-ID: EbmjdNLVsq7

--HG--
extra : rebase_source : 47e5b69976226f2e94545c19d4cce75f1b0b97e1
2017-05-19 20:15:44 -04:00
Botond Ballo 493fce15fc Bug 1352863 - Rename a couple of local variables for clarity. r=kats
MozReview-Commit-ID: 13dMmtyXL0d

--HG--
extra : rebase_source : 47ecaffe037579a590e00727f36b1caf2e00aaa6
2017-05-19 18:43:48 -04:00
Botond Ballo 665ebcbb87 Bug 1352863 - Record the position of the scrollbar thumb at the start of a scrollbar drag. r=kats
MozReview-Commit-ID: JqEi1zJZOJa

--HG--
extra : rebase_source : 8e7c2255c1cf2661489cc7fee0013bb8297c8d06
2017-05-19 20:14:14 -04:00
Botond Ballo 2d97e2ab3c Bug 1352863 - Propagate the visible region from Layer to HitTestingTreeNode. r=kats
The propagation happens via LayerMetricsWrapper or WebRenderScrollDataWrapper.

MozReview-Commit-ID: GBZUnNn3zjN

--HG--
extra : rebase_source : 4c63269480154a95d5faedf1b4972f7d3373cb5a
2017-05-24 15:47:14 -04:00
Botond Ballo 2d90298d62 Bug 1352863 - Add a GetPerpendicularDirection() function to DirectionUtils.h. r=kats
MozReview-Commit-ID: KATLVKvXCwI

--HG--
extra : rebase_source : 296db90f4a6376059961232c63ad2d27197fab51
2017-05-19 20:00:23 -04:00
Botond Ballo ec17a356c2 Bug 1352863 - Move the GetAxis*() functions from AsyncPanZoomController.cpp into a new DirectionUtils.h header. r=kats
Also take advantage of the new CoordOf metafunction to combine some of their overloads.

MozReview-Commit-ID: ETybNn7b5ic

--HG--
extra : rebase_source : 5798103462e454dc61abb7c8a26b997f02c8be36
2017-05-24 15:47:01 -04:00
Botond Ballo 9ca636625a Bug 1366365 - Re-clamp APZ's scroll offset if the scrollable rect changes. r=kats
Even if we don't accept the scroll offset from content, we always accept the
new scrollable rect, so to avoid an out-of-bounds scroll offset, we need to
re-clamp it.

MozReview-Commit-ID: 5JbCUYuDPR6

--HG--
extra : rebase_source : 72638713f97b5ab42633580f54b5a4c9dad1a630
2017-05-19 17:30:24 -04:00
Botond Ballo 93e7b8f2fd Bug 1366365 - Rename APZCTreeManager::FindScrollNode() to FindScrollThumbNode() for clarity. r=kats
MozReview-Commit-ID: FnseNzwnx3g

--HG--
extra : rebase_source : 8bbf626d8797f1c029623dde461919a15a2d5ebc
2017-05-19 15:54:49 -04:00
Boris Chiou 1b7cc40933 Bug 1361663 - Part 1: Use double instead of float for the progress of interpolation. r=birtles
We get the progress as |double|, and then pass it to a function by a |float|
type, and then finally cast it back to |double| for the interpolation.
We should avoid casting it back and forth, so change the function argument to
use |double| type for the progress.

MozReview-Commit-ID: 7QzfVBC7hSt

--HG--
extra : rebase_source : 62467bf0a734b650f524af656658cdfdabca2a5c
2017-05-22 13:35:15 +08:00
Kartikaya Gupta ede9469c8a Bug 1364525 - Handle null-pointer dereference condition. r=botond
This is a pre-existing bug that I ran into while exercising the async scrollbar
code on OS X. The LayerTreeState might not be available, so we detect and skip
those layers.

MozReview-Commit-ID: GiHaq7gQLxq
2017-05-23 10:50:42 -04:00
Kartikaya Gupta 7691215e03 Bug 1364525 - Produce scrollbar thumb transforms. r=botond
This updates PushStateToWR to actually produce the scrollbar thumb transforms
and append them into the provided transform array.

MozReview-Commit-ID: 14xlpRQXhhq
2017-05-23 10:50:42 -04:00
Kartikaya Gupta 96fa13cb2c Bug 1364525 - Update APIs to allow APZ to produce scrollbar transforms. r=pchang,botond
This allows the APZCTreeManager::PushStateToWR function to also produce a set
of transforms to be applied to scrollbar thumbs. The PushStateToWR function
will be updated in the next patch to actually produce the transforms. This patch
also rearranges code in WebRenderBridgeParent::CompositeToTarget so that either
OMTA or APZ can produce animation updates.

MozReview-Commit-ID: 1ghvVG32TC5
2017-05-23 10:50:42 -04:00
Kartikaya Gupta 8902dc4885 Bug 1364525 - Send the animation id for scrollbar thumbs over to the parent in the scroll data. r=botond
This propagates the animation id for a scroll thumb's stacking context over to
the APZ code, and stores it in the HitTestingTreeNode.

MozReview-Commit-ID: 5O13Xko2Bph
2017-05-23 10:50:41 -04:00
Kartikaya Gupta cd79f50c8d Bug 1364525 - Ensure all scroll thumbs have an animations id. r=pchang
In order to have the scrollbar thumbs reflect the async scroll position, we're
going to re-use the API for OMTA. That is, we set an animation id on the
stacking context for the scroll thumb, and we'll update the transform on the
stacking context at composite time based on the async scroll position. For this
to work we need to ensure that the scroll thumb does in fact have an
animation id set on it.

MozReview-Commit-ID: 6TvRemxRUrR
2017-05-23 10:50:41 -04:00
Kartikaya Gupta dadbddaebf Bug 1373012 - Log the clip mask indices in the layers dump. r=mstange
MozReview-Commit-ID: HmwDyV4Pga0

--HG--
extra : rebase_source : 963247be723a175f535b060ab5855390ed4e5df0
2017-06-14 15:18:16 -04:00
Wes Kocher 8b07ba2a07 Merge m-c to inbound a=merge
a=release IGNORE BAD COMMIT MESSAGES
2017-05-19 15:18:51 -07:00
Wes Kocher 15edcfd962 Merge inbound to central, a=merge
MozReview-Commit-ID: EI67EKp8ykS
2017-05-19 15:14:19 -07:00
David Anderson c248fd8d3b Generate shader blobs as part of the build process. (bug 1365859 part 2, r=mshal)
--HG--
extra : rebase_source : 2f1d7762d1c12cd223fa0aab1b964c18ac92e090
2017-05-19 12:32:14 -07:00
David Anderson 8894231cd7 Rewrite genshaders.sh as a Python script that uses a manifest. (bug 1365859 part 1, r=bas)
--HG--
extra : rebase_source : a5b60ab1c5531c7e911fc6c6e522d4e7b8cc2497
2017-05-19 12:32:13 -07:00
David Anderson c0fe8b0e0e Make "prepare" times more inclusive in the compositor diagnostic overlay. (bug 1366037, r=mattwoodrow) 2017-05-19 11:30:34 -07:00
Randall Barker 0c9253b86d Bug 1365161 - Ensure dynamic toolbar static snapshot visibility stays in sync with the real toolbar chrome r=botond,jchen
There were two issues that prevented the static snapshot toolbar and
real chrome toolbar from staying in sync.

1) When a page would resize such as when going fullscreen, if the
root content document was not scrollable, the animator would not receive
root composition page size updates. The page resize is used by the
animator to hide the static snapshot, so it would remain visible while
the real chrome toolbar would be hidden.

2) Certain places in UI java code would toggle the chrome state directly
instead of going through the animator to change the state.

MozReview-Commit-ID: DCQgRFS0UAO
2017-05-19 10:50:02 -07:00
Kartikaya Gupta 5d656fab0f Merge m-c to graphics
MozReview-Commit-ID: HvsAeMjJAIA
2017-05-19 09:30:48 -04:00
sotaro cbec0e500e Bug 1365196 - Throttle GenerateFrame() r=kats,nical 2017-05-19 09:21:38 +09:00
JerryShih 179b8e5c15 Bug 1364922 - Create individual imageKey for each channel in the textureClient. v2. r=nical
WebRenderImageLayer will create the proper number of imageKey for different video format. Then, send the imageKey to The WebRenderBridgeParent.

MozReview-Commit-ID: HMp4KWCCFqU
2017-05-19 00:25:42 +08:00
JerryShih 43d1cc8378 Bug 1364922 - Fix the error calculation of ExternalImageId. r=nical
MozReview-Commit-ID: 1u1fMxR4ugT
2017-05-19 00:25:41 +08:00
JerryShih 76b2651840 Bug 1364922 - Update AddWRImage() interface for multiple ImageKeys. v2. r=nical
Some textureHosts have multiple-channel data. Each channel should use different ImageKey.

MozReview-Commit-ID: 86EGQn65nMG
2017-05-19 00:25:41 +08:00
JerryShih e93a22a8d3 Bug 1364922 - Add a new op OpAddExternalVideoImage for multiple-channel video image. r=nical
MozReview-Commit-ID: 3GV4qBfelr5
2017-05-19 00:25:41 +08:00
JerryShih 08a36ea3d9 Bug 1362049 - Use the MacIOSurface texture directly for video playback. r=nical
Use the MacIOSurface with APPLE_rgb_422 format directly in WR.

MozReview-Commit-ID: 19GLtuJLiPv
2017-05-18 22:59:08 +08:00
JerryShih 15187bbef4 Bug 1362049 - The BufferTextureHost::AddWRImage() and MacIOSurfaceTextureHostOGL::AddWRImage() implementations. v3. r=nical
MozReview-Commit-ID: JJlqFwidliQ
2017-05-18 22:59:07 +08:00
JerryShih 2c3fd143c6 Bug 1362049 - Add AddWRImage() to call the proper WR commands for all TextureHost types. v3. r=nical
Different TextureHost type could use different WR commands. So, make a abstract interface for these different commands.

MozReview-Commit-ID: 63dnOJC2P9r
2017-05-18 22:59:07 +08:00
JerryShih e90c3c1ca4 Bug 1362049 - Update the texture target and texture format in MacIOSurface. v5. r=mattwoodrow
Add LOCAL_GL prefix for all GL constant value.
Turn to use GL_RED and GL_RB if we use core profile.
Turn to use GL_RGB_422_APPLE instead of GL_YCBCR_422_APPLE for core profile.

MozReview-Commit-ID: FCwbrUEFUxI
2017-05-18 22:59:07 +08:00
JerryShih 49684e68a5 Bug 1362049 - Remove the unused MacIOSurfaceTextureSourceOGL. r=mattwoodrow
The MacIOSurfaceTextureSourceOGL doesn't be used in the codebase.

MozReview-Commit-ID: EZ1fHw7J6YD
2017-05-18 22:59:06 +08:00
Kartikaya Gupta aca076b94b Merge m-c to graphics
MozReview-Commit-ID: DFNbcj14mg9

--HG--
rename : memory/mozjemalloc/jemalloc.c => memory/mozjemalloc/mozjemalloc.cpp
rename : memory/mozjemalloc/jemalloc_types.h => memory/mozjemalloc/mozjemalloc_types.h
2017-05-18 08:34:15 -04:00
Andrew Osmond 67c80db4e7 Bug 1363347 - Allow multiple external image IDs to be bound to the same image host if owned by the same WRBridge. r=sotaro 2017-05-18 06:50:03 -04:00
Ethan Lin a036611f1c Bug 1363998 - Part1. Correct the coordinate space of webrender mask layer. r=kats 2017-05-18 17:40:18 +08:00
sotaro 065b0ac164 Bug 1354198 - Fix WebRenderBridgeParent::RecvShutdown() r=nical 2017-05-18 09:31:46 +09:00
Jeff Muizelaar b9411eb4eb Bug 1364626. Ensure our transaction arrives at the compositor before asking the parent to paint. r=dvander
This makes UpdateLayerTree synchronous enough to ensure that the layer
transaction from the child reaches the compositor. Given the comment in
http://searchfox.org/mozilla-central/rev/484d2b7f51b7aed035147bbb4a565061659d9278/dom/interfaces/base/nsIDOMWindowUtils.idl#106
this seems to be the original intent of this function anyways. Without this, we
can have a race between the child talking to the compositor and the child
talking to the parent talking to the compositor.

This also changes GetCompositorBridgeChild to work even when the widget doesn't
have a CompositorBridge
2017-05-17 10:45:33 -04:00
Jeff Muizelaar 0ed20eff4a Revert "Ensure our transaction arrives at the compositor before asking the parent to paint"
This reverts commit e0ec2a72700f.
2017-05-17 10:44:33 -04:00
Jeff Muizelaar b2c7a3fec1 Ensure our transaction arrives at the compositor before asking the parent to paint
This makes UpdateLayerTree synchronous enough to ensure that the layer
transaction from the child reaches the compositor. Given the comment in
http://searchfox.org/mozilla-central/rev/484d2b7f51b7aed035147bbb4a565061659d9278/dom/interfaces/base/nsIDOMWindowUtils.idl#106
this seems to be the original intent of this function anyways. Without this, we
can have a race between the child talking to the compositor and the child
talking to the parent talking to the compositor.

This also changes GetCompositorBridgeChild to work even when the widget doesn't
have a CompositorBridge
2017-05-17 10:42:09 -04:00
sotaro 12f8ed1f22 Bug 1360701 - Remove sync wait during removing pipeline r=nical 2017-05-16 17:28:20 -07:00
Jeff Muizelaar f9396fc921 Bug 1364241. Handle empty transactions by keeping around the blob data. r=mchang
This just wasn't implemented before.
2017-05-16 15:34:07 -04:00
Kartikaya Gupta 77fae9e5d6 Merge m-c to graphics
MozReview-Commit-ID: 6TxOtFjEGyY
2017-05-16 09:16:28 -04:00
Andrew Osmond 7539a95cae Bug 1365009 - Only discard images and compositor animations if GPU process is still available. r=sotaro 2017-05-16 07:08:19 -04:00
sotaro 3121f12bfb Bug 1364302 - Fix HoldExternalImage() handling r=nical 2017-05-15 22:18:54 -07:00
Kartikaya Gupta fc0b73bcdf Bug 1363683 - Update webrender to cset 7f37799d63ed80a07675ad599526290843394c99. r=jrmuizel
In addition to updating gfx/webrender and gfx/webrender_traits, this patch:
- Updates the webrender_bindings Cargo.toml file for version bumps
- Updates the Cargo.lock files and revendors the third-party rust dependecies
- Updates the webrender bindings for a change in the display list construction
  and finalization API in WR csets 425155a and 1eb84eb.
  We now have to pass around a content size parameter to construct a display list,
  and we get back a content size from finalizing the display list. Since we pass
  the finalization results over IPC to WebRenderBridgeParent, we need to update
  the IPDL as well to pass this around.
- Updates the webrender bindings for a change to scroll_node_with_id in WR cset
  48a098f.
- Updates the webrender bindings for a change to push_text in WR cset 3287c15.
2017-05-15 15:13:31 -04:00
Randall Barker 962808afbf Bug 1364194 - Refresh static toolbar snapshot when page width changes r=botond,jchen
MozReview-Commit-ID: HaQo66j640g
2017-05-15 11:30:09 -07:00
Kartikaya Gupta 35374ded53 Merge m-c to graphics
MozReview-Commit-ID: BYH3uvvu4jz
2017-05-15 09:36:37 -04:00
Andrew Osmond 5317ca1f27 Bug 1362839 - Handle GPU resets more gracefully. r=sotaro 2017-05-15 08:23:30 -04:00
Kartikaya Gupta 7accd1c409 Bug 1361497 - Follow-up to fix unified build bustage on Windows. r=bustage
MozReview-Commit-ID: 17o1RJVbmiT
2017-05-12 14:27:57 -04:00
Kartikaya Gupta 779cfe70bd Bug 1361497 - Add a mechanism to push the async scroll data from APZ to WR. r=jrmuizel,botond
This is the WR equivalent (but stripped down to the basics) of the code
in AsyncCompositionManager that advances APZ animations and applies the
async transform to the layer's shadow transform. Currently this doesn't
do anything fancy with the extra scrolling clips, or moving scrollbars,
etc.

MozReview-Commit-ID: BwbNRNHAc6G
2017-05-12 13:58:20 -04:00
Kartikaya Gupta a5c9d69f63 Bug 1361497 - Refactoring to simplify getting the root CompositorBridgeParent and APZCTreeManager. r=jrmuizel
This allows for some code reuse in upcoming patches where we need to get
a hold of the APZCTreeManager.

MozReview-Commit-ID: 8oGiGH07fnF
2017-05-12 13:58:17 -04:00
Kartikaya Gupta 3ba2f96414 Bug 1361497 - Push scrolling clips for scrollable layers in the layer tree. r=jrmuizel
This adds an RAII helper and uses it in RenderLayer functions. When APZ
is enabled, the RAII helper pushes a scrolling clip for each scrollable
metrics on the layer. It also pops off the scrolling clips on
destruction. Note that this should happen before any other things are
pushed into the WR display list for the rendering of a layer, since
those things should be subjected to the enclosing scrolling clips.
If APZ is disabled, this skips pushing the scrolling clips.

MozReview-Commit-ID: 1qv9egKbbok
2017-05-12 13:58:15 -04:00
Kartikaya Gupta d6bf025959 Bug 1361497 - Override AsyncPanZoomEnabled() in WebRenderLayerManager. r=jrmuizel
MozReview-Commit-ID: GlYIRN1Gjw3
2017-05-12 13:58:12 -04:00
James Willcox cf48e4bebd Bug 1322650 - Support a 'continuous' mode for SurfaceTexture r=jgilbert
This is needed to support Flash on Android

MozReview-Commit-ID: 5yNIoZHonla
2017-05-15 09:37:50 -05:00
James Willcox 77f7d855c8 Bug 1322650 - Allow access to TexturePoolOGL from Java r=jchen 2017-05-15 09:37:47 -05:00
James Willcox 395ab599a1 Bug 1322650 - Use SurfaceTexture for WebGL on Android in E10S r=jgilbert
The main advantage here is that it works cross-process.

MozReview-Commit-ID: 7YUTVB4Bydg
2017-05-15 09:37:44 -05:00
Nathan Froyd c1d1748428 Bug 1359490 - add an event loop spinning abstraction function; r=gerald
This function is arguably nicer than calling NS_ProcessNextEvent
manually, is slightly more efficient, and will enable better auditing
for NS_ProcessNextEvent when we do Quantum DOM scheduling changes.
2017-05-15 09:34:19 -04:00
Kartikaya Gupta 85ce3b9a88 Merge m-c to graphics
MozReview-Commit-ID: LHvR5izGDcT
2017-05-12 10:20:09 -04:00
Kartikaya Gupta f262a4e6db Merge m-c to graphics
MozReview-Commit-ID: 2okRQxtQnFa
2017-05-11 07:47:25 -04:00
vincentliu 3d037c531f Bug 1363675 - Get D3D11Device from TextureSourceProvider if it exists. r=dvander 2017-05-12 14:09:53 +08:00
Kartikaya Gupta a4a58a3748 Merge m-c to graphics
MozReview-Commit-ID: Ax2mJsUs80t
2017-05-10 11:21:46 -04:00
Lee Salzman 8c18901f07 Bug 1340627 - part 8 - reftest fuzzing for update to Skia m59. r=mchang
MozReview-Commit-ID: LN29P1I4EsW
2017-05-09 22:31:07 -04:00
Lee Salzman 9e92454bc6 Bug 1340627 - part 6 - fix layers for Skia m59. r=mchang
MozReview-Commit-ID: 6pAV6FKDFQ4
2017-05-09 22:31:07 -04:00
Alexis Beingessner 6ece5add60 Bug 1361751 - Update gecko bindings to webrender to reflect changes in PR 1181. r=kats
MozReview-Commit-ID: Fxt4sNm4vxa
2017-05-08 13:52:16 -04:00
Ethan Lin 4174a69a92 Bug 1362967 - Push clip region in WebRenderDisplayItemLayer. r=kats 2017-05-10 13:51:24 +08:00
sotaro 38717ce0a5 Bug 1360717 - Make WebRenderCompositableHolder could generate WrImageKey r=nical 2017-05-09 01:19:48 -07:00
Kartikaya Gupta 5d5cdc518c Merge m-c to graphics
MozReview-Commit-ID: 2cIoGVmLEuA
2017-05-08 10:50:52 -04:00
Morris Tseng 2e459a5741 Bug 1362324 - Use BlobImage for path type of bullet item. r=jrmuizel
MozReview-Commit-ID: 4ld6biSaFce
2017-05-08 14:14:41 +08:00
Botond Ballo 0818e4ae84 Bug 1349750 - When APZ initiates an async drag, do not wait for a content response. r=kats
MozReview-Commit-ID: 1XgWobrnLBx

--HG--
extra : rebase_source : 8ce307a04ef9b6e184b0c3bc69d2c2ced4e5e4e1
2017-05-12 18:25:38 -04:00
Botond Ballo 2c52e58651 Bug 1349750 - Put async initiation of scrollbar drags behind a pref. r=kats
This allows the feature to ride the trains later than async scrollbar
dragging itself, if desired.

MozReview-Commit-ID: 73ZlCqM5hMN

--HG--
extra : rebase_source : dabc4a4b72210133d8b62256510213183312f18f
2017-05-10 17:57:54 -04:00
Botond Ballo 6606b827b5 Bug 1349750 - Have APZ initiate async scrollbar dragging when possible. r=kats
MozReview-Commit-ID: 1snCEl6H9bN

--HG--
extra : rebase_source : dce1353e5ccebfacd5d100719ebb684dfa0f516b
2017-05-10 19:29:46 -04:00
Botond Ballo 390338b8cd Bug 1349750 - Store the thumb's start offset in ScrollThumbData. r=kats
Also add a comment to AsyncDragMetrics documenting that mScrollbarDragOffset
is relative to the thumb's start offset.

MozReview-Commit-ID: uipsOCzs2N

--HG--
extra : rebase_source : 25183e22cb7ffb9995a2594d6aea106cdef7924a
2017-05-10 19:24:26 -04:00
Botond Ballo 933619aa8d Bug 1349750 - Have AsyncDragMetrics use ScrollDirection instead of rolling its own direction enum. r=kats
MozReview-Commit-ID: FKK4OBx12oa

--HG--
extra : rebase_source : 538579bd965863ecac5d7846f1c5df232b8a2108
2017-05-10 15:22:04 -04:00
Botond Ballo f5c583a72c Bug 1349750 - Add a ConvertScrollbarPoint() helper to AsyncPanZoomController. r=kats
MozReview-Commit-ID: ESbWqhy1tKT

--HG--
extra : rebase_source : a380346fefd9e0fbcbbbcdcd61c0272b727acfed
2017-05-10 19:25:27 -04:00
Botond Ballo e1636dd2cd Bug 1349750 - Add HitTestingTreeNode::IsScrollThumbNode(). r=kats
MozReview-Commit-ID: GMKg3akA9qp

--HG--
extra : rebase_source : 10518e52777e39743587adcca6c73b9f6382646e
2017-05-05 18:05:52 -04:00
Botond Ballo 107be6aac9 Bug 1349750 - Have AsyncPanZoomController expose an IsScrollInfoLayer() method. r=kats
MozReview-Commit-ID: 5TEIcv9svk

--HG--
extra : rebase_source : edd32f6d2988c38df4cdf470fadf155136baed80
2017-05-05 18:02:05 -04:00
Botond Ballo 59c181ae2d Bug 1349750 - If APZ hit testing hits a scrollbar node, return the node for later use. r=kats
MozReview-Commit-ID: Lgz5N3nkPlb

--HG--
extra : rebase_source : edee38f3b9a7bbce6bae90a2a63bcd4bbcd6bef1
2017-05-05 18:08:18 -04:00
Carsten "Tomcat" Book e5197b271a Merge mozilla-central to autoland 2017-05-18 15:00:43 +02:00
Botond Ballo 9127b9d4f3 Bug 1349750 - Move the scroll track extents from AsyncDragMetrics to ScrollThumbData. r=kats
To conserve space in LayerAttributes, we only store the extents along the
relevant axis.

MozReview-Commit-ID: GAL8Oa2NOde

--HG--
extra : rebase_source : 9420d0fb36175e190cbff6e162fd41d8e5240c81
2017-05-05 15:54:27 -04:00
Botond Ballo bae009bd63 Bug 1349750 - Add an 'is async-draggable' flag to ScrollThumbData. r=kats
This flag is set to false if there are any conditions that only the main
thread knows about that prevent the thumb from being async-dragged.

MozReview-Commit-ID: Gl7f7bY0QnA

--HG--
extra : rebase_source : 60ab680a3995e3b5c0e1b4482ca0e7142352bbd2
2017-05-05 16:17:06 -04:00
Kartikaya Gupta 2664b66a6a Bug 1361356 - Properly unapply the stacking context transform and origin translation when building mask layers. r=ethlin
MozReview-Commit-ID: B5XzX6Tq4PZ
2017-05-05 11:44:49 -04:00
Kartikaya Gupta 54c0323dbf Bug 1361807 - Use the transformed bounds for WebRenderRefLayer, as it doesn't push a stacking context. r=nical
MozReview-Commit-ID: B2LlHENCMm8
2017-05-04 10:08:23 -04:00
Kartikaya Gupta eac87bc2bf Merge m-c to graphics
MozReview-Commit-ID: 9HO5vhW5fyh
2017-05-04 09:05:26 -04:00
Botond Ballo 3bc007b384 Bug 1349750 - Move the scroll thumb length from AsyncDragMetrics to ScrollThumbData. r=kats
MozReview-Commit-ID: Atp7Kgn6adM

--HG--
extra : rebase_source : f22d89f6b8397984e48657dda7f68826c3cc90f8
2017-05-03 20:37:14 -04:00
Botond Ballo 2029f1cf93 Bug 1349750 - Store the entire ScrollThumbData in HitTestingTreeNode. r=kats
This is preparation for future changes that will add fields to ScrollThumbData
that will be accessed via HitTestingTreeNode.

To accomplish this, this patch also exposes the entire ScrollThumbData via
LayerMetricsWrapper and WebRenderScrollDataWrapper.

MozReview-Commit-ID: 1Ed8Z80Wk1V

--HG--
extra : rebase_source : 86cce84eab0cd8bcd2998f1682137e9514bb1fb5
2017-05-03 20:25:09 -04:00
Botond Ballo 3981a3686a Bug 1349750 - Remove the no-longer-used WebRenderScrollData[Wrapper]::GetScrollThumbLength(). r=kats
Also remove a vestigial declaration of the previously removed method
HitTestingTreeNode::GetScrollThumbLength().

MozReview-Commit-ID: 3BvFNeGwPXd

--HG--
extra : rebase_source : 6cc6d2f2e3ecc4dedce2b83f6b0faf819f4be0f8
2017-05-03 20:23:42 -04:00
Botond Ballo 6c0eea50b3 Bug 1349750 - Group scroll thumb-related information in Layer into a ScrollThumbData structure. r=kats
The patch also renames Layer::SetScrollbarData() to Layer::SetScrollThumbData()
for clarity.

MozReview-Commit-ID: DVwJ3DMl3Zs

--HG--
extra : rebase_source : 7b2bfccf1351c82bb16296635e69d5488c87a50f
2017-05-10 14:02:15 -04:00
Kartikaya Gupta b6b23a1376 Merge m-c to graphics
MozReview-Commit-ID: DVUE3Wys3HV
2017-05-03 08:52:43 -04:00
Kartikaya Gupta 0d7cd03e4b Bug 1361357 - Try fixing clip on WRDILayer. r=ethlin
This should fix some wrong-looking code that computes the clip for
WebRenderDisplayItemLayer instances. As this code is not exercised very
much it's hard to know if this change is actually correct.

MozReview-Commit-ID: BSsBpBmzWgd
2017-05-03 08:51:23 -04:00
Kartikaya Gupta cadd5716a2 Bug 1360246 - Remove the ParentBounds and TransformedVisibleBoundsRelativeToParent functions. r=nical
These functions also have built-in assumptions about the stacking
context structure mapping to the layer tree structure which are not
necessarily valid. So we remove these functions and update code that
uses them.

MozReview-Commit-ID: UkXXAF59qv
2017-05-03 08:48:08 -04:00
Kartikaya Gupta 48e0e2221d Bug 1360246 - Remove the RelativeToParent functions by propagating StackingContextHelper chains. r=nical
The only remaining callers of RelativeToParent() are in
StackingContextHelper itself, which we can remove now by having the SCH
take a parent SCH and use it instead of RelativeToParent(). This patch
implements this change.

This makes a failing test pass, because of how preserve-3d container
layers work. Specifically, preserve-3d container layers render their
descendants in z-order, not in tree order. If those children were assuming
that their parent had already pushed a stacking context, that assumption
may have been false because the parent might have not yet been rendered
because of z-ordering. By using the StackingContextHelper chain instead
of the layer tree ancestry, we fix the stacking-context-relative coordinates
being used in the descendant subtree of preserve-3d container layers.

MozReview-Commit-ID: HzZvBuAlMdB
2017-05-03 08:48:08 -04:00
Kartikaya Gupta 989470c342 Bug 1360246 - Update code to use StackingContextHelper::ToRelativeWr* instead of RelativeToParent. r=nical
This updates more code that was using RelativeToParent() to use the
stacking context helper's ToRelativeWr* functions instead. This get us
closer to breaking the assumption that the WR stacking context order maps
1:1 to the layer tree structure.

MozReview-Commit-ID: HQrbvCgPOW4
2017-05-03 08:48:08 -04:00
Kartikaya Gupta 0ec3e2d4dd Bug 1360246 - Propagate the StackingContextHelper to the rest of the displaylist-building code. r=nical
This propagates the StackingContextHelper to the rest of the code that
builds WR display items, because we will need it in future patches to
stop using RelativeToParent.

MozReview-Commit-ID: 3PlQrJRhH36
2017-05-03 08:48:08 -04:00
Kartikaya Gupta eb38bf66c1 Bug 1360246 - Clean up WebRenderRefLayer::RenderLayer. r=nical
This cleans up WebRenderRefLayer::RenderLayer to use typed coordinate
systems and the StackingContextHelper. Note that this patch contains a
functional change, because the clip rect pushed no longer includes the
transform on the ref layer itself. It's not clear to me why we were doing
that, and didn't seem correct.

MozReview-Commit-ID: K7FoeLnXc56
2017-05-03 08:48:07 -04:00
Kartikaya Gupta 55a7794c28 Bug 1360246 - Clean up WebRenderTextLayer::RenderLayer. r=nical
This uses the StackingContextHelper and typed helper functions in
WebRenderLayer to simplify WebRenderTextLayer::RenderLayer. It also
removes the implicit assumption in WebRenderTextLayer that the parent
layer pushed a stacking context, which is an assumption we will
probably break in the future.

MozReview-Commit-ID: CARoGVQd56i
2017-05-03 08:48:07 -04:00
Kartikaya Gupta 9c0fee2d43 Bug 1360246 - Propagate the StackingContextHelper through CreateWebRenderCommands. r=nical
This is needed for the next patch, because the bullet frame WR rendering
code will need a StackingContextHelper to pass to the PushGlyphs call.
It also helps with some of the later patches in this series, when we get
rid of the RelativeToParent calls.

MozReview-Commit-ID: Is0aciHhy2N
2017-05-03 08:48:07 -04:00
Kartikaya Gupta d5a099eb03 Bug 1360246 - Propagate a StackingContextHelper all the way through the RenderLayer traversal. r=nical
This is needed in part 3 to update WebRenderTextLayer::RenderLayer, so
that it no longer assumes the parent container layer has pushed a
stacking context, and instead explicitly uses the StackingContextHelper.

MozReview-Commit-ID: 9twUmDgUipX
2017-05-03 08:48:06 -04:00
Kartikaya Gupta 7259e787f4 Merge m-c to graphics
MozReview-Commit-ID: 9XwZUWIhGir
2017-05-02 09:45:11 -04:00
peter chang d7f8d0e8c4 Bug 1358437 - fix compiler error, r=me
MozReview-Commit-ID: H2VAWFiONAf
2017-05-02 10:56:52 +08:00
peter chang 8f5fde5b20 Bug 1358437 - pass layer's transform/opacity to compositor, r?kats
Need to pass the default transform/opacity to compositor if animations
exist because it is possible that gecko fails to get animated value
after animation sampling, like an animation with delay.

MozReview-Commit-ID: IK06hWvaSPf
2017-05-02 10:38:22 +08:00
peter chang fed042e433 Bug 1358437 - Setup correct opacity/transform in stacking context when there exists opacity/transform aniamtions. r?kats
Pass empty opacity(transform) in stacking context when there exists opacity(transform) animations and
the final opacity(transform) value will be resolved on the compositor after animation sampling

MozReview-Commit-ID: 6pF9Oe8Ks2I
2017-05-02 10:29:54 +08:00
peter chang e8e398dcd1 Bug 1358437 - pass layer's transform attributes for transform animation, r?kats
MozReview-Commit-ID: J7JHuwvWuet
2017-05-02 10:29:42 +08:00
peter chang c03a85af76 Bug 1357320 - Dispatches the discarded compositor animations id list in one async call, r?kats
MozReview-Commit-ID: 8cCNCzxMKpY
2017-05-02 10:26:13 +08:00
peter chang 320e68f0dd Bug 1357320 - Deal with the lifetime of compositor animations, r?kats
First, hook the Layer's ClearAnimation API to delete unnecessary
animations in next layer transaction. Second, add another async
DeleteCompositorAnimations API to delete animations on the compositor,
especially calling this API before WebRenderLayerManager got destroyed.

MozReview-Commit-ID: 4mbj5IgsXYa
2017-05-02 10:26:13 +08:00
Iris Hsiao 34b5af799e Merge mozilla-central to mozilla-inbound 2017-05-18 14:16:22 +08:00
Brian Birtles 5308137759 Bug 1363107 - Check if the startTime is set before using it in SampleAnimationForEachNode; r=hiro
We are seeing occasional failed release assertions from calling
animation.startTime().get_TimeDuration() in SampleAnimationForEachNode on
Windows.

My theory is that in some circumstances (perhaps graphic-driver related?) when
creating a layer transaction we fail to call Layer::StartPendingAnimations and
end up sending pending animations to the compositor. Prior to bug 1334583 that
would have only triggered a debug assertion so it may have gone unnoticed if it
depends on the system configuration.

This patch makes us check that the startTime is set before we try to access it
in order to avoid triggering a release-time assertion. If the startTime is not
set we will use the hold time which should give us the correct behavior for
a still-pending animation. (Furthermore, the holdTime is set unconditionally
when we create animations so it should be correct -- but even if it were not
set explicitly, its initial zero value would still likely produce a reasonable
result until the start time was updated on a subsequent layer transaction. At
very least, it should not crash. Likewise, if it was set to an incorrect value.)

This patch also strengthens the debug assertion in SampleAnimationForEachNode to
check that not only is start time not-null, but that it is set to a TimeDuration
since MaybeTimeDuration also includes a third uninitialized "None" state.
2017-05-18 14:06:36 +09:00
Botond Ballo eb687c3599 Bug 1364622 - Consider the async transforms on the scroll thumb when computing the drag start offset during APZ initiation of scrollbar dragging. r=kats
MozReview-Commit-ID: 8GA53FX7AEk

--HG--
extra : rebase_source : 1406cf44ee8354e732ba0d4e066c3a0de4ce4b77
2017-05-17 15:03:15 -04:00
Botond Ballo 600ec000fe Bug 1364622 - Consider async transforms on scroll thumb layers during hit testing. r=kats
MozReview-Commit-ID: 9avcNOKmmqF

--HG--
extra : rebase_source : 0f21e336171cc369ff9bb98caa484d5f64e87c5a
2017-05-15 20:18:48 -04:00
Botond Ballo b1bad294f4 Bug 1364622 - Add a helper function HitTestingTreeNode::IsAncestorOf(). r=kats
MozReview-Commit-ID: Et3dokACnMa

--HG--
extra : rebase_source : 821ce1451940e97d87db99683cee9b3328124c42
2017-05-15 20:18:05 -04:00
Botond Ballo cc0d93aebc Bug 1364622 - Make APZCTreeManager::GetTargetNode() const. r=kats
MozReview-Commit-ID: iroBJvekoX

--HG--
extra : rebase_source : c4f86883f3254617d6834b53f42050ee687d6b2e
2017-05-15 20:17:42 -04:00
Botond Ballo ae015859e7 Bug 1364622 - Add a utility function AsyncPanZoomController::CallWithLastContentPaintMetrics(). r=kats
MozReview-Commit-ID: Juh622Qoh2I

--HG--
extra : rebase_source : cb603b519a5db41cd74ebdf2a9245480e9549fac
2017-05-15 19:38:51 -04:00
Botond Ballo dbb6fb2a96 Bug 1364622 - Factor out a helper function for computing the current async transform for a HitTestingTreeNode. r=kats
MozReview-Commit-ID: 8ySehvzTMDl

--HG--
extra : rebase_source : 9da6da9c2a6580b7b028356d2a04265ebd18d9ec
2017-05-17 15:02:18 -04:00
Botond Ballo 9460cdd08b Bug 1364622 - Introduce a helper function for computing the async transform for a scroll thumb layer. r=kats
MozReview-Commit-ID: DFFcmBxzI84

--HG--
extra : rebase_source : 3fdd6a00215ba8bfc9a717d3ab0e7ba0e21d4700
2017-05-15 18:35:16 -04:00
Botond Ballo 66cb80d204 Bug 1365088 - Avoid calling HitTestingTreeNode::Untransform() twice for each node during hit testing. r=kats
The patch also adds another gtest that exercises hit testing, and fixes a
coordinate space bug in the gtest fixture.

MozReview-Commit-ID: 3QYTofkKSZj

--HG--
extra : rebase_source : 7108c4b57bdd3ada41dc57ab022825a1057b899d
2017-05-17 12:49:23 -04:00
Jeff Muizelaar 8c32ac0090 Bug 1360001. Add WebRenderPaintedLayerBlob for painting with BlobImages. r=kats
This is a bit of a rough implementation but it works
enough to start.
2017-05-01 21:58:52 -04:00
Wes Kocher 1b5ad2c128 Merge inbound to central, a=merge
MozReview-Commit-ID: DfRZi0gKjit
2017-05-10 16:48:03 -07:00
Wes Kocher f4f5d51edf Merge autoland to central, a=merge
MozReview-Commit-ID: 2gKDtRuJJyq
2017-05-10 15:25:51 -07:00
David Anderson 5632494742 Remove unnecessary MOZ_COUNT_CTOR/DTORs on reference counted compositor objects. (bug 1360963, r=mattwoodrow)
--HG--
extra : rebase_source : 82eab30ab0896cfbdcc7cbd64f9598d29a5e69b4
2017-05-10 10:58:20 -07:00
Wes Kocher 959de6c3e8 Backed out 9 changesets (bug 1340627) for graphical glitches a=backout
Backed out changeset 0b1371055c7f (bug 1340627)
Backed out changeset f152be1fadb7 (bug 1340627)
Backed out changeset c691e2ab6a0c (bug 1340627)
Backed out changeset 3cb4bceb8d79 (bug 1340627)
Backed out changeset 026aadd76d06 (bug 1340627)
Backed out changeset fdbd5d281287 (bug 1340627)
Backed out changeset 75fb0d9858a9 (bug 1340627)
Backed out changeset 0d4ec7d38a00 (bug 1340627)
Backed out changeset af6f19870b2a (bug 1340627)

MozReview-Commit-ID: 9dHr7xMZezY

--HG--
rename : gfx/skia/skia/src/core/SkBlitRow.h => gfx/skia/skia/include/core/SkBlitRow.h
rename : gfx/skia/skia/src/effects/SkGaussianEdgeShader.h => gfx/skia/skia/include/effects/SkGaussianEdgeShader.h
rename : gfx/skia/skia/src/xml/SkXMLParser.h => gfx/skia/skia/include/xml/SkXMLParser.h
rename : gfx/skia/skia/include/private/SkMessageBus.h => gfx/skia/skia/src/core/SkMessageBus.h
rename : gfx/skia/skia/src/gpu/ops/GrAAConvexPathRenderer.h => gfx/skia/skia/src/gpu/batches/GrAAConvexPathRenderer.h
rename : gfx/skia/skia/src/gpu/ops/GrAAConvexTessellator.h => gfx/skia/skia/src/gpu/batches/GrAAConvexTessellator.h
rename : gfx/skia/skia/src/gpu/ops/GrAAHairLinePathRenderer.h => gfx/skia/skia/src/gpu/batches/GrAAHairLinePathRenderer.h
rename : gfx/skia/skia/src/gpu/ops/GrAALinearizingConvexPathRenderer.h => gfx/skia/skia/src/gpu/batches/GrAALinearizingConvexPathRenderer.h
rename : gfx/skia/skia/src/gpu/ops/GrPathStencilSettings.h => gfx/skia/skia/src/gpu/batches/GrPathStencilSettings.h
rename : gfx/skia/skia/src/gpu/ops/GrStencilAndCoverPathRenderer.h => gfx/skia/skia/src/gpu/batches/GrStencilAndCoverPathRenderer.h
rename : gfx/skia/skia/include/private/GrGLSL_impl.h => gfx/skia/skia/src/gpu/glsl/GrGLSL_impl.h
extra : source : 761b3f55f10f3df16601ce62e4d15b0c558c0cfb
2017-05-10 10:01:18 -07:00
David Anderson 70d5ae464a Remove LayerManagerComposite's geometry changed flag. (bug 1363249, r=mattwoodrow) 2017-05-10 10:49:31 -07:00
Andrew McCreight 9eb219a062 Bug 1361825 - Clear mAnimationStorage in CompositorBridgeParent::StopAndClearResources(). r=pchang
MozReview-Commit-ID: XJdckUwXCx

--HG--
extra : rebase_source : b3fc0843ae206cd50684d0887450d3644dd16a98
2017-05-08 11:48:23 -07:00
JW Wang 01417acb4d Bug 1365516 - Remove the call to AbstractThread::GetCurrent() in WebRenderImageLayer.cpp. r=sotaro
MozReview-Commit-ID: 5UMQuqEMZCu

--HG--
extra : rebase_source : 3572dc4ce88c5d7cfdcd96b57913fa5ef3cb04e9
extra : source : 16c28cad5889952df3c7ec02f292f0bf6861c3e8
2017-05-18 14:23:09 +08:00
Botond Ballo 1645a7ef86 Bug 1362889 - Ensure the MockContentController in APZ GTests doesn't outlive the test fixture. r=kats
MozReview-Commit-ID: AuSC5w1FXWG

--HG--
extra : rebase_source : 809bc22c63d6a3e16357eebf686b03442e189df5
2017-05-08 17:13:17 -04:00
Wes Kocher df3f95a52f Merge inbound to m-c a=merge
MozReview-Commit-ID: 4SpokMW1d3I
2017-05-02 17:35:06 -07:00
Brian Birtles 5267613207 Bug 1334583 - Pass a separate timeOrigin and startTime for compositor animations; r=hiro
By passing the startTime as a TimeDuration we are able to represent times in the
distant past (and with the same range as we can represent on the main thread so
that if we do encounter range errors in future, they should not differ between
the main thread and the compositor).

This patch includes a crashtest. I have verified that, without the code changes
included in this patch, this crashtest fails on debug builds on OSX.

MozReview-Commit-ID: EDuKLzfEC0K

--HG--
extra : rebase_source : 1883080fdfac8c33f70698145f21e67cbdfdd4f2
2017-05-02 16:49:51 +09:00
Brian Birtles ec43d6df6d Bug 1361260 - Incorporate playbackRate when calculating the start time of a pending compositor animation; r=hiro
MozReview-Commit-ID: FBmT5ImBcYJ

--HG--
extra : rebase_source : 76058d69b844adb0725b7522fcbdfd8541f2b71f
2017-05-02 16:43:21 +09:00
Brian Birtles d8df0f7aa8 Bug 1361234 - Fix start time calculation for pending animations on layers; r=hiro
In bug 1223658 we separated out the delay from the start time but we failed to
remove it from this calculation. As a result, when a pending animation begins it
will have the delay applied twice (once here, and once when it is sampled on the
compositor). This will happen until the layer is next updated.

This bug was not exposed by any existing tests since we don't use this code path
when the refresh driver is under test control. Furthermore, the one test that
was supposed to cover this was refactored in such a way that it stopped testing
this code path. That test is restored earlier in this patch series and enabled
in this patch.

MozReview-Commit-ID: B2KR7YaPsMK

--HG--
extra : rebase_source : 6c888252813fbfc01baf5d4bb1728d989ee1586c
2017-05-02 16:41:13 +09:00
Kartikaya Gupta 9fefc7a64a Merge m-c to graphics
MozReview-Commit-ID: 82en2F0AFQF
2017-04-30 19:10:35 -04:00
Ethan Lin 59b75a786f Bug 1360449 - Remove duplicate WrManager functions. r=kats 2017-05-01 00:59:26 +08:00
Randall Barker c9357cb3b0 Bug 1358774 - Prevent dynamic toolbar from changing state when transitioning from multiple touch sources to a single touch source r=botond
The MultiTouchInput::MULTITOUCH_END generated from transitioning from
multiple touch sources to a single source would often cause the content
to shift under the remaining finger which would look like a fling and
cause the content to rapidly scroll. This patch treats the transition from
multiple touch source to a single source as if the touch event were
starting over by resetting all the variables tracking the touch drag
that is in progress.

MozReview-Commit-ID: 42L1Q622fww
2017-04-28 15:15:12 -07:00