New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 659746 link

Starred by 1 user

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 3
Type: Feature



Sign in to add a comment

[Jellyfish] Get to performance parity with mainline compositor

Project Member Reported by vmi...@chromium.org, Oct 26 2016

Issue description

This is an issue to track performance issues and fixes on the Jellyfish graphics service prototype (https://github.com/danakj/chromium/commits/jellyfish) and mainline CC.

The goal is to track current performance differences, fixes, and results of performance experiments on the Jellyfish branch.
 

Comment 1 by vmi...@chromium.org, Oct 26 2016

The Animometer Leaves benchmark can reach ~500 Leaves on my Linux desktop with Software Raster.

chromium_leaves_reference.png shows the trace of typical frames on this test.  The test is Main Thread bound, but also does a large amount of raster thread work and GPU thread work copying tiles in Software Raster.  Main-Thread-Before-Activation scheduling (MFBA) enables the Main Thread to pipeline with the raster work.

jellyfish_leaves_2.png shows Jellyfish performance as of 10/24; over 50x worse than mainline.  This is mostly because of a few bugs in image decoding.

jellyfish_leaves_3.png is after fixes to the image decoding issues, and enabling 4 raster threads for the display compositor.
chromium_leaves_reference.png
259 KB View Download
jellyfish_leaves_2.png
300 KB View Download
jellyfish_leaves_3.png
321 KB View Download

Comment 2 by vmi...@chromium.org, Oct 26 2016

Cc: briander...@chromium.org sunn...@chromium.org
In #3 jellyfish_leaves_3.png the following look like the main remaining issues:

- We're not getting the equivalent of MFBA scheduling, so about half the performance is lost due to no pipelining.

- Solid Color Analysis is slow (~10x slower than mainline CC).  This seems likely to be a culling issue with our display lists after de-serialization.

- Serialization ~1.3ms, Deserialization ~4.7ms, on critical paths.

- The raster time seems to be about ~20% higher; possibly also related to a culling issue.

Comment 3 by vmi...@chromium.org, Oct 26 2016

Components: Internals>Compositing>Rasterization

Comment 4 by vmi...@chromium.org, Oct 27 2016

The Solid Color Analysis slowdown cause is that we disabled DisplayItemListSettings::use_cached_picture mode on Jellyfish.

A fix is adding an early out in DisplayItemList::Raster().  This is already implemented in newer DisplayItemList upstream.

https://github.com/danakj/chromium/commit/eea8f1ed9d6896a66bf0d981221ab6736e986bf0

Sign in to add a comment