Skip to content

☂️ - Take advantage of new DisplayList format #85737

Closed
@flar

Description

@flar

Now that we have an open DisplayList format for the Flutter engine, we should be able to look at some further optimizations that have been blocked by our reliance on SkPicture. This issue will track the planned and wished changes that we can now consider. Individual work on these items should be correlated here with an Issue or PR number.

One near-term change that will be needed before any follow-on work takes effect will be to flip the switch to enable the new DisplayList format by default (see PR: flutter/engine#27130)

Activity

added
engineflutter/engine repository. See also e: labels.
c: new featureNothing broken; request for a new capability
c: performanceRelates to speed or footprint issues (see "perf:" labels)
on Jul 2, 2021
added
P1High-priority issues at the top of the work list
on Jul 15, 2021
chinmaygarde

chinmaygarde commented on Jul 15, 2021

@chinmaygarde
Member

We discussed this yesterday and Zach is going to compile a concrete list of work items from this list.

zanderso

zanderso commented on Jul 16, 2021

@zanderso
Member

I've categorized the items. After that I'll work on filing individual issues, and linking them up here.

changed the title [-]Take advantage of new DisplayList format[/-] [+]☂️ - Take advantage of new DisplayList format[/+] on Jul 16, 2021
FelixZhang00

FelixZhang00 commented on Dec 3, 2021

@FelixZhang00

@flar Can we use parallel work threads to reduce time like chromium did.
see also: https://chromium-review.googlesource.com/c/chromium/src/+/1169150

flar

flar commented on Dec 3, 2021

@flar
ContributorAuthor

@flar Can we use parallel work threads to reduce time like chromium did. see also: https://chromium-review.googlesource.com/c/chromium/src/+/1169150

It looks like you are asking if we can use a recorder to split the work between UI and raster threads. That has always been the design of Flutter since the early days. The DisplayList is just a new recording format that replaces the Skia recording format, but the basic division of labor remains "record on UI thread, rasterize on raster thread".

FelixZhang00

FelixZhang00 commented on Dec 4, 2021

@FelixZhang00

@flar Can we use parallel work threads to reduce time like chromium did. see also: https://chromium-review.googlesource.com/c/chromium/src/+/1169150

It looks like you are asking if we can use a recorder to split the work between UI and raster threads. That has always been the design of Flutter since the early days. The DisplayList is just a new recording format that replaces the Skia recording format, but the basic division of labor remains "record on UI thread, rasterize on raster thread".

Thanks for your reply.
What I mean is that we divide layer into tiles and raster tiles with a pool of dedicated raster threads.

flar

flar commented on Dec 4, 2021

@flar
ContributorAuthor

@flar Can we use parallel work threads to reduce time like chromium did. see also: https://chromium-review.googlesource.com/c/chromium/src/+/1169150

It looks like you are asking if we can use a recorder to split the work between UI and raster threads. That has always been the design of Flutter since the early days. The DisplayList is just a new recording format that replaces the Skia recording format, but the basic division of labor remains "record on UI thread, rasterize on raster thread".

Thanks for your reply. What I mean is that we divide layer into tiles and raster tiles with a pool of dedicated raster threads.

That would be out of the scope of this PR which is more about capabilities of the storage format itself. You should file a separate engine issue for that idea. DL might be able to add some features to make that more feasible, but such a change would require extensive changes to the way that the layer trees are painted.

moved this to To Triage in Display Liston Jun 28, 2022
moved this from To Triage to No status in Display Liston Jun 28, 2022
moved this to To Triage in Display Liston Jun 28, 2022
moved this from To Triage to Done in Display Liston Jun 28, 2022
chinmaygarde

chinmaygarde commented on Jun 28, 2022

@chinmaygarde
Member

I have migrated the contents of this umbrella issue to a GitHub project here Display List (go/display-list-project for Googlers).

github-actions

github-actions commented on Jul 29, 2022

@github-actions

This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of flutter doctor -v and a minimal reproduction of the issue.

locked as resolved and limited conversation to collaborators on Jul 29, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1High-priority issues at the top of the work listc: new featureNothing broken; request for a new capabilityc: performanceRelates to speed or footprint issues (see "perf:" labels)engineflutter/engine repository. See also e: labels.

    Type

    No type

    Projects

    Status

    ✅ Done

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @chinmaygarde@FelixZhang00@zanderso@flar@darshankawar

        Issue actions

          ☂️ - Take advantage of new DisplayList format · Issue #85737 · flutter/flutter