Previously we were using the cull rect of the SkPicture to size the GPU buffer,
but Skia is too smart and shrinkwraps the cull rect, which meant we weren't
sizing the GPU buffer to the right size.
Fixes#814
This updates to mojo commit d259eb58aa59 and limits the roll script to
only pull in the parts of //mojo that are currently being used. More
stuff will be dropped in the future.
This patch simplifies the SkPicture we generate for Skia. Instead of drawing
everything into a nested SkPicture, we now draw everything into the top-level
picture, which requires us to apply the device scale factor in Dart.
Now we actually use the vsync signal to trigger work. Previously, we'd hit the
pipeline depth limit too early and fall back to swap buffers-triggered
rendering.
Also, rename Vsync to VSync on recommendation from jamesr.
Instead of using back pressure from swap buffers to drive the engine, this
patch using the vsync signal from the Android framework. We still respect
back pressure from swap buffers if we get too far ahead.
Previously, there was a race condition whereby we could end up with three
requests in the pipeline. Now we update the number of outstanding requests
synchronously, which avoids the race.
Previously, we weren't overlapping any work between the UI and the GPU threads
because each waited for the other to finish. After this patch, we now have a
pipeline depth of 2, which means we can be working on two frames at once, one
for each thread. In the future, we should dynamically adjust the pipeline
depth.
- Add missing dependencies caught by gn's new stricter checker
- Update opentype code to use new OTS API. This code is updated from HEAD
Blink.
- Add base dependency to wtf to avoid redefining marcos from base/macros.h
- Update callers of various base string utility functions to use base
namespace.