Skip to content

☂️ - Take advantage of new DisplayList format #85737

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
25 of 48 tasks
flar opened this issue Jul 1, 2021 · 8 comments
Closed
25 of 48 tasks

☂️ - Take advantage of new DisplayList format #85737

flar opened this issue Jul 1, 2021 · 8 comments
Labels
c: new feature Nothing broken; request for a new capability c: performance Relates to speed or footprint issues (see "perf:" labels) engine flutter/engine repository. See also e: labels. P1 High-priority issues at the top of the work list

Comments

@flar
Copy link
Contributor

flar commented Jul 1, 2021

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)

@zanderso zanderso added engine flutter/engine repository. See also e: labels. c: new feature Nothing broken; request for a new capability c: performance Relates to speed or footprint issues (see "perf:" labels) labels Jul 2, 2021
@chinmaygarde chinmaygarde added the P1 High-priority issues at the top of the work list label Jul 15, 2021
@chinmaygarde
Copy link
Member

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

@zanderso
Copy link
Member

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

@FelixZhang00
Copy link

@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
Copy link
Contributor Author

flar commented Dec 3, 2021

@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
Copy link

@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
Copy link
Contributor Author

flar commented Dec 4, 2021

@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.

@chinmaygarde
Copy link
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
Copy link

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.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Jul 29, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
c: new feature Nothing broken; request for a new capability c: performance Relates to speed or footprint issues (see "perf:" labels) engine flutter/engine repository. See also e: labels. P1 High-priority issues at the top of the work list
Projects
Status: Done
Development

No branches or pull requests

5 participants