50 Commits

Author SHA1 Message Date
Chinmay Garde
63fbe60fa6 Display resident memory statistics on the performance overlay. (flutter/engine#3314) 2017-01-03 12:27:30 -08:00
Chinmay Garde
327e5163cf Dont override the explicitly set paint bounds in Layer::Preroll. (flutter/engine#3313) 2016-12-13 17:14:25 -08:00
Jason Simmons
5045f38837 Null check before queueing deletion of Skia objects (flutter/engine#3298)
Fixes https://github.com/flutter/flutter/issues/7182
2016-12-08 12:43:50 -08:00
Adam Barth
6312be1f15 Use initialized memory for composited bounds (flutter/engine#3291)
SkRect objects need to be manually initialized. Previously, we were using
unintialized memory in our bounds calculations.
2016-12-02 14:18:11 -08:00
Adam Barth
323a082f5d Rename hittable to hitTestable (flutter/engine#3275)
Apparently hittable is not politically correct.
2016-11-28 16:09:56 -08:00
Adam Barth
670329e1bf Add prune to child scene layers (flutter/engine#3272)
Also, change the hit testing geometry so that we get our hits at the root.
2016-11-28 12:28:18 -08:00
Adam Barth
85abbfaa3e Fix Mozart blends of child views (flutter/engine#3248)
We need to compute the paint bounds of ChildViewLayers during Preroll.
Also, we need to allocate a BlendPtr before writing into it.
2016-11-18 23:49:30 -08:00
Adam Barth
6e603372ba Composite child views in proper paint order (flutter/engine#3243)
We push a bit up the tree during preroll to learn whether there system
composited layers below each layer. During update scene, we squash down
to paint tasks, which we execute after publishing the new scene.
2016-11-18 12:54:54 -08:00
Adam Barth
c693907f61 Fix Mozart child views (flutter/engine#3232)
When we pipelined the drawing commands we caused UpdateScene to be called
before Preroll, which isn't allowed. Now we call Preroll, UpdateScene, and
Paint separately.
2016-11-16 15:30:57 -08:00
Jason Simmons
d9392e7fbb Move destruction of PictureLayer's SkPicture to the IO thread (flutter/engine#3219)
The picture may hold references to images backed by GPU textures that must
be deleted on the IO thread.
2016-11-11 13:43:23 -08:00
Adam Barth
1d7337b4d8 Switch Flutter to //lib/fidl (flutter/engine#3206) 2016-11-07 15:51:42 -08:00
Chinmay Garde
b09b35cc06 Tell the raster cache when checkerboarding preferences have been updated. (flutter/engine#3205) 2016-11-07 15:29:03 -08:00
Chinmay Garde
20ad790b7f Allow checkerboarding raster cache entries for debugging purposes (can be toggled from Dart). (flutter/engine#3200) 2016-11-03 13:59:57 -07:00
Adam Barth
a4f6c12e73 Update Skia (flutter/engine#3157) 2016-10-20 13:23:09 -07:00
Adam Barth
cef37e6728 Use antialiased clips (flutter/engine#3124)
The Skia team tells us that these go faster.
2016-10-12 18:28:10 -07:00
Jeff Brown
82d8a27854 Port Flutter to Mozart. (flutter/engine#3094)
Example: $ mojo:launcher mojo:spinning_square
2016-10-04 12:54:54 -07:00
Jeff Brown
69b52df977 Update skia to e038489a743d6c0ab1cb208862c305180815bc8e. (flutter/engine#3074) 2016-09-28 19:39:19 -07:00
Chinmay Garde
332de9c7d2 When rasterizing to a recorder backed canvas for SKP tracing, don’t attempt to update the raster cache. (flutter/engine#2983)
We could get into a situation where the second time we rasterize a picture for an SKP, the raster cache detects that the same picture is being repeated in subsequent onscreen frames and then proceeds to rasterize the contents to an offscreen texture. This not only causes an unnecessary cache entry, but also shows the cached image in the final SKP trace (which is not what was originally displayed on screen).
2016-08-30 14:52:39 -07:00
Chinmay Garde
0df374dd83 Force anti-aliasing on clipRRect calls. (flutter/engine#2982)
Per recommendation from the Skia team. Benefits from optimizations applied in Skia for Chrome.
2016-08-30 14:11:21 -07:00
Chinmay Garde
a36164b0b7 Keep track on the layer tree construction time in the animator. (flutter/engine#2968) 2016-08-23 17:03:38 -07:00
Jason Simmons
70cc2b0e33 Scale picture layers to the picture's cull rect (flutter/engine#2967) 2016-08-23 14:46:23 -07:00
Chinmay Garde
e27ac27b87 Simplify PictureLayer::Paint. (flutter/engine#2962) 2016-08-22 15:11:11 -07:00
Adam Barth
8cfd887da7 Get //flutter/flow building on Fuchsia (flutter/engine#2899) 2016-08-10 14:03:19 -07:00
Adam Barth
16584a5a4e Update paths to account for buildroot 2016-08-09 13:52:15 -07:00
Chinmay Garde
1be74c6698 Remove unused checkerboard.cc (flutter/engine#2865) 2016-08-05 16:23:12 -07:00
Adam Barth
3fbc245f7e Remove skia::RefPtr (flutter/engine#2851)
Also, remove the hacks that integrate Skia ref counting with WTF. Now we
just use sk_sp everywhere for managing Skia ref counts.
2016-08-01 22:21:37 -07:00
Adam Barth
2eb635524d Finish removing //base dependency from //flow (flutter/engine#2848)
This patch introduces a //glue library that isolates our dependency on //base.
This will let us clean up our //base dependencies ahead of actually being able
to fully remove them.
2016-08-01 16:27:48 -07:00
Adam Barth
9586997a02 Port //flow to //lib/ftl (flutter/engine#2847)
This patch removes almost all //base dependency of //flow. The only dependency
left is on tracing.
2016-08-01 15:11:56 -07:00
Adam Barth
c53f3f5c36 Add a way to hint the compositor (flutter/engine#2816)
The code that draws the picture knows more about the picture (and the future)
than we do. This patch gives them a way to hint us about what's going to
happen with the picture in the future.
2016-07-22 11:07:14 -07:00
Ian Hickson
3a88860803 clang -Wextra (more all that -Wall) (flutter/engine#2766)
I noticed this while doing the libjpeg_turbo roll.
2016-06-17 12:38:10 -07:00
Eric Seidel
ae3cf88f92 Remove ContainerLayer::paintChildren trace per @abarth (#2709) 2016-05-25 14:20:51 -07:00
mmclenna
2ecb969075 Additional instrumentation for tracing engine performance (flutter/engine#2682)
* Added instrumentation for timings.

* A few more traces for better granularity.
2016-05-12 13:34:57 -07:00
Adam Barth
bd5781371c Revert "Record layer tree to an SkPicture before rasterization (#2628)"
This reverts commit 73790140e751ebc4dd57802a63e06bd694fc97a3.

This commit appears to have caused
https://github.com/flutter/flutter/issues/3658
2016-05-01 14:23:13 -07:00
Adam Barth
73790140e7 Record layer tree to an SkPicture before rasterization (flutter/engine#2628)
This lets Skia run an optimization pass over the SkPicture before actually
issuing GL commands.
2016-04-28 10:15:38 -07:00
Adam Barth
5210b088eb Update Skia (#2626) 2016-04-27 14:59:06 -07:00
Adam Barth
75b5912bd2 Break dependency from Layer to PaintContext (flutter/engine#2609)
Instead, make Layer::Paint take a new PaintContext that has just exactly
the state that it needs, mirroring PrerollContext. Also, rename
PaintContext to CompositorContext because it holds the context for the
whole compositor.
2016-04-21 23:05:41 -07:00
Adam Barth
785c11d6d9 Fix style in //flow/instrumentation (flutter/engine#2608)
This patch makes these files better match Google C++ style.

Also, add the engine lap time when running on Mojo.
2016-04-21 22:36:46 -07:00
Adam Barth
98fc65a85b Improve paint bounds computation in flow (flutter/engine#2607)
We now compute the bounds for all container layers, including clips, and
use those bounds to tighten down our clips and save layers.
2016-04-21 21:50:44 -07:00
Adam Barth
9c8595512e Make OpacityLayer hit SkRecordNoopSaveLayerDrawRestores (flutter/engine#2604)
Previously we were applying opacity in a different way than Skia
expects. Now we use the exact pattern that Skia expects so that we hit
more optimizations inside SkRecordOptimize.

After this patch, we don't actually get the optimization because we
don't yet run SkRecordOptimize over the composited tree. A later patch
will actually cause us to run SkRecordOptimize.
2016-04-21 07:55:37 -07:00
Jason Simmons
c1b21af2c5 Fix a typo ("threshold") (#2583) 2016-04-07 10:37:33 -07:00
Adam Barth
424df08728 Add support for backdrop filters in the compositor
Particularly, add support for blur filters to implement backdrop blur effects.
2016-04-01 17:15:36 -07:00
Adam Barth
1bdaa49f9a Update code to account for Mozart changes
The layout protocol in Mozart changed. Now we need to pipe a scene version
through the system to the compositor.
2016-03-30 15:13:58 -07:00
Adam Barth
ac113c2965 Update Skia
This required a bunch of changes because of the new sk_sp type Skia has
introduced into their API.
2016-03-21 14:59:49 -07:00
Hixie
695b7df241 Performance Overlay fixes
- fix dartdocs for addPerformanceOverlay
- make PerformanceOverlayLayer honour its x, y, and height.
- fix the y axis of PerformanceOverlayLayer to only show 3x16ms, since
  if it's more than 16ms it really doesn't matter what it is.
- make the label on the PerformanceOverlayLayer show the worst time on
  record not the instantaneous time.
- pin the fps to a maximum of 60Hz
2016-03-17 17:14:04 -07:00
Adam Barth
e1713c3f1d Fix device pixel ratios in Mozart for reals
We need to adjust the transform matrix to undo the device scale.
2016-03-11 17:01:06 -08:00
Adam Barth
63976f2ef4 Flutter embedded in Flutter via Mozart is double scaled
We weren't correctly dividing by the device pixel ratio when asking Mozart to
present our child scene.
2016-03-11 13:36:59 -08:00
Jeff Brown
4ab948ecee Specify a clip rect for ChildSceneLayers.
When linking in a scene, it's a good idea to specify its clip rectangle
to ensure that its content does not draw or capture input from its
surrounding space.

A future version of the Mozart view manager may automatically wrap a
view's scene with a clip rectangle to avoid composition gotchas like this
but it currently doesn't.  So the net effect is that if you embed a view
without specifying a clip, it can draw or capture input from anywhere
within its container.
2016-03-10 18:33:08 -08:00
Adam Barth
cef642e308 Make Mozart draw child views
Previously we weren't factoring in the layer's offset properly and we were
drawing the child views below the background layer.
2016-02-08 14:36:38 -08:00
Adam Barth
9dbf3d72f8 Include child scenes when uploading to Mozart
Previously we just dropped child scenes on the floor. Now we upload them
to Mozart. However, we just draw them on top of all the other content
and don't apply any clips or blends.
2016-02-03 14:16:09 -08:00
Adam Barth
e9171f9608 Move Flow layers to //flow/layers 2016-01-30 23:35:22 -08:00