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

146 Коммитов

Автор SHA1 Сообщение Дата
David Anderson 79f94b4bc8 Skip over layers with degenerate transforms. (bug 1381352, r=mattwoodrow) 2017-08-02 23:48:44 -07: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 c956c9f91d Bug 1379920 - Fix unified build error. r=nical
MozReview-Commit-ID: Dx50fOh737p
2017-08-03 13:55:13 +08: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
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
Wes Kocher 3c2dc39278 Merge m-c to inbound, a=merge
MozReview-Commit-ID: BgPWEtPV0sy
2017-07-31 17:49:47 -07:00
David Anderson 264a0b8e7e Fix a coordinate space bug in the cached invalid region of container layers. (bug 1381666 part 3, r=mattwoodrow) 2017-07-31 12:28:54 -07:00
David Anderson 4d45c02ee0 Add helper functions for dumping MLGTextures as files. (bug 1381666 part 2, r=mattwoodrow) 2017-07-31 12:28:41 -07:00
David Anderson b05dbf58c2 Add helpers for debugging Advanced Layers with RenderDoc. (bug 1381666 part 1, r=mattwoodrow) 2017-07-31 12:28:26 -07:00
Botond Ballo 50e175b0bc Bug 1105109 - Fix unified compilation errors. r=kats
MozReview-Commit-ID: DB3JNwlE3Dw

--HG--
extra : rebase_source : 3d0a92cb9f7dd850d25d6d7b5fbe6eb3291e0d67
2017-07-28 20:17:19 -04: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
Ethan Lin a48f3ac6fe Bug 1378602 - Part2. Move animation data from layer to AnimationInfo. r=kats
MozReview-Commit-ID: 4gv8EfPgsii
2017-07-21 14:21:47 +08:00
David Anderson d53eee5b25 Fix crash when ancestor masks have no overlapping area. (bug 1381479, r=bas) 2017-07-20 15:10:40 -07:00
David Anderson 416337ceb9 Fix Advanced Layers not forcing a clear for the window theme. (bug 1378095 part 2, r=mattwoodrow) 2017-07-13 01:12:05 -07:00
David Anderson ddfbc3d0ae Add a helper for automating ClearView and clear-shader operations. (bug 1378095 part 1, r=mattwoodrow) 2017-07-13 01:11:58 -07:00
David Anderson 6e75188a07 Cache MLGBuffers for systems that don't support constant buffer offsetting. (bug 1379714 part 2, r=bas) 2017-07-11 21:18:45 -07:00
David Anderson 4877a071cd Remove Advanced Layers' buffer cache in preparation for a new one. (bug 1379714 part 1, r=bas) 2017-07-11 21:17:30 -07:00
David Anderson 399881cdfc Report when constant buffer offsetting doesn't work. (bug 1379413 part 2, r=bas)
--HG--
extra : rebase_source : 881471eca6ae17e4b9810bc34b609d58c6eb0b3d
2017-07-11 00:13:26 -07:00
David Anderson ad257fcdb1 Use a runtime test for constant buffer offsetting. (bug 1379413 part 1, r=bas)
--HG--
extra : rebase_source : 9ceae88aac296f8429b9fc83d48aa0b6de325056
2017-07-11 00:13:21 -07:00
David Anderson 88d86847fe Don't use constant buffers for ancillary vertex data. (bug 1379314 part 3, r=mattwoodrow) 2017-07-11 00:05:30 -07:00
David Anderson 912a83e3b7 Refactor how vertices are added to unit-triangle shaders. (bug 1379314 part 2, r=mattwoodrow) 2017-07-11 00:04:50 -07:00
David Anderson 16a351a5e5 Use unit triangles for full polgyon shaders. (bug 1379314 part 1, r=mattwoodrow)
Previously, we submitted polygons as a list of triangles, duplicating
some ancillary data with each vertex. As we move away from constant
buffers for some of this ancillary data, it will bloat the size of each
vertex. To avoid this, we will now instance over a unit triangle
instead. Each instance contains three triangle coordinates and ancillary
data can be shared between them. The target vertex is computed similarly
to how we handle rects in the unit quad shaders.
2017-07-11 00:04:14 -07:00
David Anderson 1b64928d17 Don't draw diagnostic overlays during drawWindow. (bug 1379828, r=mattwoodrow) 2017-07-10 19:09:34 -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 0360dc3a99 Fix OpenGL texture coordinate flipping in Advanced Layers. (bug 1377303, r=mattwoodrow) 2017-06-30 11:45:02 -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
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
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
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
David Anderson 6ec4a2c568 Remove leftover files from incomplete backout of bug 1365879 (r=me). 2017-06-23 12:31:05 -07: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