64 Commits

Author SHA1 Message Date
Adam Barth
6e3228cf81 Revert "Record layer tree to an SkPicture before rasterization (#2628)"
This reverts commit 5bc5c7b5246d62af70780ec7ba0203ac3f318226.

This commit appears to have caused
https://github.com/flutter/flutter/issues/3658
2016-05-01 14:23:13 -07:00
Adam Barth
5bc5c7b524 Record layer tree to an SkPicture before rasterization (#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
625e937442 Update Skia (#2626) 2016-04-27 14:59:06 -07:00
James Robinson
24adf9dbdc Merge pull request #2611 from jamesr/better_tracing
Improve tracing in graphics stack, esp on Mojo
2016-04-22 12:38:55 -07:00
Adam Barth
b9ff394182 Break dependency from Layer to PaintContext (#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
dda79d0312 Fix style in //flow/instrumentation (#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
Tony Gentilcore
4062813e70 Set GLContext before calling MGLEcho. 2016-04-21 15:57:21 -07:00
Adam Barth
70d40c91d3 Use MGLEcho to provide back pressure for Mozart (#2606)
Related to https://github.com/domokit/mojo/issues/684
2016-04-21 14:25:00 -07:00
Adam Barth
d813b3d58c Update to mojo a37b8c21cedc3d1b94f7be276e513cdea88e09ac 2016-04-21 14:12:34 -07:00
Jason Simmons
7182341f85 Merge pull request #2579 from jason-simmons/skia_skp_capture
Add an HTTP server for exporting Flutter debug info and a request han…
2016-04-06 10:22:46 -07:00
Adam Barth
2123899cc6 Jank insted of flicker in Mozart
Currently there's no good way of synchronizing layout changes with children in

Mozart. Previously we flickered when we were out of sync with our child. Now we

jank instead because that's a more acceptable artifact while we work on

improving Mozart.



Fixes https://github.com/flutter/flutter/issues/3024
2016-04-04 12:17:39 -07:00
Adam Barth
4e6fd739d1 Merge pull request #2566 from abarth/roll_mojo
Update Mojo
2016-03-30 15:27:57 -07:00
Chinmay Garde
d43bae3eeb Don't crash if the scene has no root layer set. 2016-03-30 15:14:17 -07:00
Adam Barth
3f7d5ef6f8 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
e3c3be1c21 Handle 0x0 sizes in Mozart
When we're created off-screen, Mozart gives us a 0x0 view to populate. Rather
than trying to draw a 0x0 texture, we just acknolwedge the frame request
immediately. This matches what we do in the non-Mozart rasterizer.
2016-03-15 13:37:17 -07:00
Adam Barth
3f4224d069 Update mojo_sdk 2016-03-10 12:58:18 -08:00
Adam Barth
e416866484 Enable Mozart hit testing
We now mark our root node as opaque to hit testing. We don't seem to be getting
events in child views, however.
2016-03-04 11:21:51 -08:00
Adam Barth
f7265449bf Move ganesh_canvas to sky/shell/gpu/direct/
We only use the ganesh canvas in the direct configuration. This patch moves the
class into the directory to make that clear.
2016-02-17 11:16:14 -08:00
Adam Barth
c773bcac44 Attach a stencil buffer
Skia can go faster (and crashes less) when we have a stencil buffer.

Fixes https://github.com/flutter/flutter/issues/1931
2016-02-17 11:02:03 -08:00
Adam Barth
d3dbc1cda4 Polish Mojo platform implementation
* Use Node::Combinator::PRUNE, which stops the Mozart launcher from showing red
  when we're loading child views. Instead of blocking the whole app, we'll now
  just prune away the children that aren't ready. Eventually we'll want
  to let authors control these operations.

* Grab the service registry in AcceptConnection rather than CreateView. The
  CreateView comes from the Mozart launcher, which isn't where we want to get
  the service registry. Now we get the service registry from the first app to
  connect, which isn't right either but at least works while we sort out what
  we really want.
2016-02-11 12:43:37 -08:00
Adam Barth
4b921cbb5e 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
e3bf0fa3c1 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
Jason Simmons
052d65cc14 Clear the Flow raster cache when a GrContext is destroyed
After an application is suspended and the GrContext associated with the
Flutter view is destroyed, the raster cache still contains images tied
to the defunct context.  The SkyShell process will crash if these images
are used after the application resumes.
2016-02-01 10:36:09 -08:00
Adam Barth
c3c5af1fbe Move Flow layers to //flow/layers 2016-01-30 23:35:22 -08:00
Adam Barth
411c6bfa4b Port flutter.mojo to Mozart
Everything should work except the keyboard.
2016-01-28 16:04:19 -08:00
Adam Barth
e22e75ea50 Merge pull request #2302 from abarth/rm_scoped_ptr
Remove almost all uses of base::scoped_ptr
2016-01-27 08:38:41 -08:00
Adam Barth
142c5dc5ec Remove almost all uses of base::scoped_ptr
We now use std::unique_ptr more consistently.
2016-01-27 01:05:47 -08:00
Adam Barth
c3a78a1796 Remove dependencies on ui/gfx/geometry
We have enough geometry classes kicking around. We don't need the
ui/gfx/geometry types too.
2016-01-26 23:57:20 -08:00
Adam Barth
0b629d419f Move //sky/compositor to //flow
Now that the compositor doesn't have any tricky deps, we can make it a
top-level project, which saves a bunch of typing.
2016-01-12 22:39:51 -08:00
Adam Barth
6d1af600b1 Trim unneeded depedendencies from sky/compositor
Now we just depend on Skia and Base, which makes the compositor easier
to understand.

Also, update our skia/ext/refptr.h to match the current version of the
code in Chromium. This version adds support for several useful C++11
patterns.
2016-01-12 22:02:08 -08:00
Adam Barth
2e5d3c4977 Preroll rasterization
Prerolling the rasterization tasks reduces the number of render target
switches because we don't interrupt the main render target.
2016-01-08 13:17:13 -08:00
Adam Barth
198094e427 Fix crash with empty rect
Don't attempt to draw with a zero-by-zero window.
2015-12-08 14:46:35 -08:00
Adam Barth
535afcb092 Improve the crash fix in rasterizer_mojo
The previous version can still crash if we try to draw between the time when we
initialize context_ and when we actually make the MGL context current.
2015-12-08 12:51:50 -08:00
Adam Barth
535eb30855 Don't crash when RasterizerMojo::Draw happens without a context
If we don't have a context, we can't draw, so bail out early.
2015-12-08 11:32:30 -08:00
Chinmay Garde
72814b2712 Ensure GL context as soon as the accelerated widget is available 2015-12-03 14:54:32 -08:00
Florian Loitsch
372355ad22 Make rasterizer a mojo service. 2015-12-02 16:28:39 -08:00
George Kulakowski
e08bd29aba Flip y coordinate on FNL as a workaround 2015-11-30 14:10:07 -08:00
Collin Jackson
0904164fd6 Fix https://github.com/flutter/flutter/issues/371 renaming "sky" and "chromium" to "flutter" in logs and Mac Shell UI 2015-11-16 14:54:18 -08:00
Adam Barth
56601fcfa3 Wire sky_shell.mojo to draw via MGL
After this patch, we can execute Dart code and draw the result via MGL. We
still need to plumb in services.
2015-11-14 07:42:25 -08:00
Adam Barth
96b847cd43 Wire sky_shell.mojo up to native_viewport
After this patch, we can execute Dart code an create an X window. There's a
sketch of some graphics code, but it's not wired up yet.
2015-11-13 14:00:34 -08:00
Adam Barth
8a6ef54343 Move GPU code into direct
I'll add another subdirectory to GPU for Mojo soon.
2015-11-12 19:56:38 -08:00
Chinmay Garde
6d7a56b7ed Disable instrumentation when rendering to a trace file 2015-10-06 17:29:58 -07:00
Chinmay Garde
b95b5292b8 Setup infrastructure to capture SKP traces when the frame interval exceeds certain thresholds 2015-10-06 17:03:10 -07:00
Chinmay Garde
418ed6f689 Allow visualizing engine and rasterizer statistics simultaneously 2015-09-30 17:18:37 -07:00
Chinmay Garde
60176eb6fa Account for the canvas flush and surface swap buffers durations in the instrumented frame times (via the ScopedFrame) 2015-09-30 15:07:57 -07:00
Chinmay Garde
f222d57e4d When capturing a frame, pass the frame size to the top level picture 2015-09-22 14:33:27 -07:00
Chinmay Garde
28aa97988d Move picture_serializer from sky/shell/gpu to sky/compositor 2015-09-21 16:22:33 -07:00
Chinmay Garde
0a2984c959 Remove the SERIALIZE_LAYER_TREE macro 2015-09-21 15:46:39 -07:00
Chinmay Garde
ef4df93e06 SkPicture tracing to file follows same path as rendering into the OpenGL context 2015-09-21 15:45:09 -07:00
Chinmay Garde
a3af5bd1e8 Remove picture_rasterize.h|cc 2015-09-18 14:31:05 -07:00