Commit Graph

27024 Commits

Author SHA1 Message Date
JerryShih
9fdb7a255f Bug 1357299 - P2: Remove the unused IsWrappingNativeHandle() function in WebRenderTextureHost. r=nical
All WR texture related codes are move into GetWRImageKeys(), AddWRImage() and PushExternalImage().
Each texture type could generate its WR commands individually. So, this "mIsWrappingNativeHandle" flag is not used anymore.

MozReview-Commit-ID: 1TITkGRemAr
2017-08-07 18:15:21 +08:00
JerryShih
0081892f19 Bug 1357299 - P1-1: Fix the wrong return value for DestroyStreamKHR(). r=jgilbert
MozReview-Commit-ID: 4OMHJka03Kd
2017-08-07 18:15:21 +08:00
JerryShih
866d845e94 Bug 1357299 - P1: Fix the wrong ext string for QueryDisplayAttribEXT. v2. r=jgilbert
MozReview-Commit-ID: 3lZG2GrxXHF
2017-08-07 18:15:21 +08:00
sotaro
9be589ac3c Bug 1387352 - Avoids falling into the fallback codepath for async ImageContainers in layers-free mode r=kats 2017-08-07 11:09:50 +09:00
David Anderson
783e6ecfd6 Add diagnostics for the crash in bug 1387467. r=milan 2017-08-05 01:32:25 -07:00
Sebastian Hengst
39ccebaf18 merge mozilla-inbound to mozilla-central. r=merge a=merge
MozReview-Commit-ID: 9IxbB2vCH4S
2017-08-05 11:55:25 +02:00
Milan Sreckovic
56c2b6e6f7 Bug 1386277: Add set methods for width and height that change nothing else, as well as the Swap method r=bas
MozReview-Commit-ID: 6TZ977mvH5C

--HG--
extra : rebase_source : 3f124c682ac914f3fde27c396c2fb21b324ed521
2017-08-03 15:29:35 -04:00
Sebastian Hengst
765cc1b925 merge mozilla-inbound to mozilla-central. r=merge a=merge
MozReview-Commit-ID: JhesEg4Bxjy
2017-08-04 19:28:27 +02:00
sotaro
a773ee4276 Bug 1354411 - Rebuild CompositorSessions if WebRender is disabled r=kats
When WebRender creation is failed, WebRender is disabled in gecko. There is a case that WebRenderBridgeParents exist when WebRender is disabled. To handle this, gecko needs to rebuild all CompositorSessions.

There is also a problem related to gfxVars::UseWebRender on compositor thread. If e10s is enabled, but no-gpu process(default on linux and mac), gfxVars::UseWebRender change is soon notified by compositor thread tasks. If WebRender creation failure happens at 2nd WebRender creation, several WebRenderBridgeParents for 1st WebRender could exist. IPC messages from WebRenderLayerManager are normally async, then there is a chance that the WebRenderBridgeParents receive the messages after the gfxVars::UseWebRender change. Further the gfxVars::UseWebRender change in content process could be delayed than WebRenderBridgeParents, then content process does not have a way to stop sending PWebRenderBridge IPC until the change of gfxVars::UseWebRender is received. WebRenderBridgeParent related tasks handle the message, but some tasks are done based on gfxVars::UseWebRender. At this time, gfxVars::UseWebRender returned false on compositor thread, then it cause unexpected result for WebRenderBridgeParent and WebRender. To addres this inconsistent situation, WebRenderBridgeParent related tasks on compositor thread stop to use gfxVars::UseWebRender.
2017-08-04 14:36:41 +09:00
David Anderson
b56bbf2305 Change the subdoc invalidation callback to handle overflow. (bug 1345891 part 5, r=mattwoodrow) 2017-08-03 21:22:49 -07:00
David Anderson
aae46b02d1 Handle 3d context bounds overflow in LayerTreeInvalidation. (bug 1345891 part 4, r=mattwoodrow) 2017-08-03 21:22:49 -07:00
David Anderson
2cc63ceef3 Handle invalidation bounds overflow in ContainerLayerMLGPU. (bug 1345891 part 3, r=mattwoodrow) 2017-08-03 21:22:49 -07:00
David Anderson
bb8c6e5f61 Handle bounds overflow in consumers of LayerTreeInvalidation. (bug 1345891 part 2, r=mattwoodrow) 2017-08-03 21:22:48 -07:00
David Anderson
e74ca7f347 Refactor LayerTreeInvalidation::ComputeChangeInternal's signature to handle overflow. (bug 1345891 part 1, r=mattwoodrow) 2017-08-03 21:22:48 -07:00
Mason Chang
7dc5a03ec2 Bug 1386073 Don't set RotatedBuffer's returned DrawTarget transform with omtp. r=dvander 2017-08-03 20:51:30 -07:00
Ehsan Akhgari
fd868a0072 Bug 1387158 - Silence the -Wcomma compiler warnings in Types.h macros iterating over Corners and Sides; r=dholbert 2017-08-03 23:04:47 -04:00
Wes Kocher
2196b718d3 Merge inbound to central, a=merge
MozReview-Commit-ID: DlSLhaepjeU
2017-08-03 18:06:53 -07:00
Mason Chang
68b377c1ce Bug 1383916 Prep a DrawTarget to be drawn to on the paint thread. r=dvander 2017-08-03 08:50:32 -07:00
JerryShih
fcec675802 Bug 1368531 - Put the task gfxPlatformFontList::InitOtherFamilyNames() into idle queue. r=jfkthame
Add a boolean value in FindFamily() to check if gecko needs to defer the
InitOtherFamilyNames() task into idle queue.

Add a new telemetry data FONTLIST_INITOTHERFAMILYNAMES_NO_DEFERRING for the
execution time of InitOtherFamilyNames() running regularly at main thread
instead of in idle queue.

MozReview-Commit-ID: A3YPDcHtXrX
2017-08-02 20:33:00 -04:00
Sebastian Hengst
5cfce14aba merge mozilla-central to mozilla-inbound. r=merge a=merge 2017-08-03 12:17:50 +02:00
Sebastian Hengst
50d2d60772 merge mozilla-inbound to mozilla-central. r=merge a=merge
MozReview-Commit-ID: 5MywkQxECqB
2017-08-03 11:46:00 +02:00
Ethan Lin
2f3e874c80 Bug 1386553 - Move boundary calculations from each item's CreateWebRenderCommands to StackingContextHelper constructor. r=kats
MozReview-Commit-ID: 7PJIghki2g2

--HG--
extra : rebase_source : cc54e11719239814eee6f6e6f7360fbc0d10f0ad
2017-08-03 17:41:41 +08:00
David Anderson
79f94b4bc8 Skip over layers with degenerate transforms. (bug 1381352, r=mattwoodrow) 2017-08-02 23:48:44 -07:00
sotaro
1b714b3485 Bug 1386903 - Fix IPDL reference handling of CrossProcessCompositorBridgeParent::AllocPWebRenderBridgeParent() r=nical 2017-08-03 18:36:55 +09:00
Sebastian Hengst
a445a59613 Backed out changeset 009af86a3026 (bug 1239292) for build bustage at StyleSheetInlines.h(77). r=backout on a CLOSED TREE 2017-08-03 11:29:24 +02:00
Nicolas Silva
6e6cc6226b Bug 1239292 - Remove the gfx job scheduler. r=jrmuizel
We gave up on the iea of parallel tile rendering in favor of different approaches, so the job scheduler isn't used at all. The several seconds spend testing the job scheduler in each push is a waste of infra. In addition, rust is a better avenue to tackle this type of system.
2017-08-03 10:54:56 +02:00
Sebastian Hengst
a1ff1e3d1d Backed out changeset e5b859d66536 (bug 1386553) for Windows bustage at layers/StackingContextHelper.h(50). r=backout on a CLOSED TREE 2017-08-03 09:57:53 +02:00
Ethan Lin
a05d601f59 Bug 1386553 - Move boundary calculations from each item's CreateWebRenderCommands to StackingContextHelper constructor. r=kats
MozReview-Commit-ID: 7PJIghki2g2
2017-08-03 15:24:25 +08:00
Morris Tseng
65beb79d45 Bug 1379920 - Support canvas in layers free mode. r=kats
MozReview-Commit-ID: 42jOb3fzodb
2017-08-03 13:55:15 +08:00
Morris Tseng
27195d489d Bug 1379920 - Introduce mLastCanvasDatas. r=kats
mLastCanvasDatas store used WebRenderCanvasData in last full
transaction. So that in next empty transaction, we can update canvas
content through mLastCanvasDatas.

MozReview-Commit-ID: 2H2m8R7Kzwf
2017-08-03 13:55:15 +08:00
Morris Tseng
23c9ce9b7b Bug 1379920 - Introduce WebRenderCanvasData. r=kats
MozReview-Commit-ID: 4aBfWib1bQq
2017-08-03 13:55:14 +08:00
Morris Tseng
f3d4ff499f Bug 1379920 - Introduce CanvasRenderer and its derived classes. r=nical,jrmuizel
This patch move common canvas interfaces out of layer. So I create a
base class CanvasRenderer which move interfaces from CanvasLayer.
CopyableCanvasRenderer from CopyableCanvasLayer, ClientCanvasRenderer
from ClientCanvasLayer and WebRenderCanvasRenderer from
WebRenderCanvasLayer. And finally, WebRenderCanvasRendererSync for the
non layers free mode and WebRenderCanvasRendererAsync for the layers
free mode.

Summary all changes in this patch.
* Move class CanvasLayer::Data to CanvasRenderer.h and rename it to
CanvasInitializeData. Because this class not only use by layer but also
* Move BasicCanvasLayer::UpdateSurface to
CopyableCanvasRenderer::ReadbackSurface.
* CanvasClient::Update now accepts ShareableCanvasRenderer as parameter.
not CanvasLayer.
use by layers-free mode. Move it out of layer's class makes more sense.
* Add InitializeCanvasRenderer in the canvas related classes to
initialize CanvasRenderer without involved layer.
* All canvas layer has function "CreateCanvasRendererInternal" that
initialize corresponding CanvasRenderer.

* Description of all CanvasRenderer classes:
** CanvasRenderer: Based classes.
** CopyableCanvasRenderer: Can readback canvas content to a
SourceSurface. Use by BasicCanvasLayer.
** ShareableCanvasRenderer: Provide IPC capabilities that allow sending
canvas content over IPC. This is pure virtual class because the IPC handling is
different in different LayerManager.
** ClientCanvasRenderer: Implement IPC handling for ClientLayerManager.
Use by ClientCanvasLayer.
** WebRenderCanvasRenderer: Implement IPC handling for
WebRenderLayerManager.
** WebRenderCanvasRendererSync: Use by WebRenderCanvasLayer.
** WebRenderCanvasRendererAsync: Use by layers-free mode in WebRender.

class diagram shows below:

                      +--------------+
                      |CanvasRenderer|
                      +-------+------+
                              ^
                              |
                  +----------------------+
                  |CopyableCanvasRenderer|
                  +----------------------+
                              ^
                              |
                  +-----------+-----------+
                  |ShareableCanvasRenderer|
                  +-----+-----------------+
                        ^      ^
          +-------------+      +-------+
          |                            |
+--------------------+       +---------+-------------+
|ClientCanvasRenderer|       |WebRenderCanvasRenderer|
+--------------------+       +--------+--+-----------+
                                      ^  ^
              +-----------------------+  +----+
              |                               |
+-------------+-------------+   +-------------+--------------+
|WebRenderCanvasRendererSync|   |WebRenderCanvasRendererAsync|
+---------------------------+   +----------------------------+

MozReview-Commit-ID: 5hqQ19W169r
2017-08-03 13:55:14 +08:00
Morris Tseng
4fa6ccb4b3 Bug 1379920 - Rename Copy/ShareableCanvasLayer to Copy/ShareableCanvasRenderer. r=nical,jrmuizel
MozReview-Commit-ID: 9PItJtYtpCY

--HG--
rename : gfx/layers/CopyableCanvasLayer.cpp => gfx/layers/CopyableCanvasRenderer.cpp
rename : gfx/layers/CopyableCanvasLayer.h => gfx/layers/CopyableCanvasRenderer.h
rename : gfx/layers/ShareableCanvasLayer.cpp => gfx/layers/ShareableCanvasRenderer.cpp
rename : gfx/layers/ShareableCanvasLayer.h => gfx/layers/ShareableCanvasRenderer.h
2017-08-03 13:55:14 +08:00
Morris Tseng
2ecf605b8b Bug 1379920 - Add aAsync param to AddPipelineIdForAsyncCompositable and rename it to AddPipelineIdForCompositable. r=sotaro
When empty transaction in layers free mode, we don't rebuild whole
display list. But the canvas content will be updated and send the
content to parent by CanvasClient. We need some mechanism just like
async video which can update the content without rebuild the dl. But
CanvasClient doesn't use ImageBridge at all. So I slightly modify
AddPipelineIdForAsyncCompositable to let it support the Compostiable
either store in ImageBridge or WebRenderBridgeParent.

MozReview-Commit-ID: 3mKv13Pgc2k
2017-08-03 13:55:13 +08:00
Morris Tseng
c956c9f91d Bug 1379920 - Fix unified build error. r=nical
MozReview-Commit-ID: Dx50fOh737p
2017-08-03 13:55:13 +08:00
Morris Tseng
fbee651cc7 Bug 1378606 - Support mix-blend-mode in layers-free mode.
MozReview-Commit-ID: LNORKj1bUYq
2017-08-03 11:27:45 +08:00
Morris Tseng
5c89592091 Bug 1383212 - Store WebRenderLayerManager by RefPtr instead of raw pointer. r=kats
MozReview-Commit-ID: ArzdU60bIOE
2017-08-03 11:20:53 +08:00
Wes Kocher
851b59bdbe Merge m-c to inbound a=merge
MozReview-Commit-ID: 1p4eNdfSz9p
2017-08-02 17:46:32 -07:00
Wes Kocher
baf6cddc4c Merge inbound to central, a=merge
MozReview-Commit-ID: 9NFjSEt96iT
2017-08-02 17:11:51 -07:00
Sebastian Hengst
c2b9c2c204 Backed out changeset e1d538cd1cf8 (bug 1368531) for bustage on Windows: 'gfxPlatformFontList::InitOtherFamilyNamesRunnable::Cancel': overriding virtual function differs from 'mozilla::CancelableRunnable::Cancel' only by calling convention. r=backout 2017-08-02 21:12:51 +02:00
David Anderson
6fc9eaab4a Don't flush async paints on the main thread. (bug 1386517, r=mattwoodrow) 2017-08-02 11:37:31 -07:00
Randall Barker
844ff5f090 Bug 1380843 - Add gfx preference so GLScreenBuffer may be toggled between SurfaceFactory_EGLImage and SurfaceFactory_SurfaceTexture r=jgilbert
MozReview-Commit-ID: E6YOeIqo4UK
2017-08-02 17:09:38 -07:00
Randall Barker
96a2116ce5 Bug 1370544 - Ensure EGLSurface is created with the same EGLConfig as the context r=jgilbert
MozReview-Commit-ID: 1cN7VzCa2lV
2017-08-02 17:09:37 -07:00
JerryShih
0138441875 Bug 1368531 - Put the task gfxPlatformFontList::InitOtherFamilyNames() into idle queue. r=jfkthame
Add a boolean value in FindFamily() to check if gecko needs to defer the
InitOtherFamilyNames() task into idle queue.

Add a new telemetry data FONTLIST_INITOTHERFAMILYNAMES_NO_DEFERRING for the
execution time of InitOtherFamilyNames() running regularly at main thread
instead of in idle queue.

MozReview-Commit-ID: A3YPDcHtXrX
2017-08-01 01:07:00 -04:00
Botond Ballo
a69196a7bc Bug 1385468 - Notify browser.xml when APZ cancels an AutoscrollAnimation. r=kats
The notification is sent via GeckoContentController, PAPZCTreeManager if
necessary (to go from the GPU process to the parent process), and the
observer service.

Naturally, the notification is not sent in the case where it's browser.xml
that initiates the shutdown.

MozReview-Commit-ID: IAaSf4HiDF4

--HG--
extra : rebase_source : 80855ac7d3ae44c393dde96650b330cc737f69d6
2017-07-31 19:15:26 -04:00
David Anderson
ba247834e2 Always visit children of container layers, in case they have asynchronous animations outside of the precomputed visible bounds. (bug 1382382, r=mattwoodrow) 2017-08-02 14:24:13 -07:00
sotaro
a17b90875f Bug 1386505 - Fix IPDL reference handling of CompositorBridgeParent::AllocPWebRenderBridgeParent() r=nical 2017-08-02 22:21:17 +09:00
Phil Ringnalda
2ef9ec6589 Backed out changeset 525c6c747a7a (bug 1383916) for Windows 8 reftest failures
CLOSED TREE

MozReview-Commit-ID: LvxYj7DmsGX
2017-08-01 23:07:18 -07:00
David Anderson
c5e4aacb3f Handle resampled painted layers after occlusion culling. (bug 1385961, r=mattwoodrow)
--HG--
extra : rebase_source : 239abc310f202c527f0f1cb64f5d2d01cd3be15a
2017-08-01 15:40:32 -07:00
Mason Chang
788361e0d9 Bug 1383916. Prep and flush draw targets on the paint thread with OMTP. r=dvander 2017-07-31 20:56:01 -07:00