Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Conversation

@iskakaushik
Copy link
Contributor

@iskakaushik iskakaushik commented Jul 2, 2019

  • Change the queue to a deque
  • Threading notes: We continue preserve the semantics of the empty_ semaphore after this change. There should only ever be max 1 task more in the queue after we Complete the continuation. We can change the while to an if but letting it be for now.
  • Add tests for pipeline for both continuation mechanisms.
  • Also assert that DoDraw only happens on the GPU thread.

Kaushik Iska added 3 commits July 2, 2019 14:21
Copy link
Member

@gaaclarke gaaclarke left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought our policy was to not add things unless they are used. Should you also include the change that necessitates this change?

As far as the code and the tests LGTM. I wonder if we should just switch to a priority queue instead of having push to front and back?

@iskakaushik
Copy link
Contributor Author

iskakaushik commented Jul 3, 2019

On IOS when we have embedded UI views in the view hierarchy and they have changed, we wish to merge the platform and GPU threads. We will be able to make this decision after Preroll. Once that decision has been made, we wish to re-process this layer_tree(current item in the pipeline) again with the highest priority after merging the threads.

  1. One step of that is to add the ability to push items to the front of the pipeline.
  2. Also added support for embedded views to signal when to trigger the thread merge External view embedder can tell if embedded views have mutated #9653
  3. Added the functionality to merge task queues: Add the functionality to merge and unmerge MessageLoopTaskQueues #9436
  4. Will follow this up to make this higher priority task also be higher priority for the task runner.

These are all so we can address: flutter/flutter#23975.
Additional notes at go/flutter-dynamic-thread-merging

Copy link
Member

@gaaclarke gaaclarke left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@iskakaushik iskakaushik merged commit b547356 into flutter:master Jul 3, 2019
@iskakaushik iskakaushik deleted the make-pipeline-deque branch July 3, 2019 00:37
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jul 3, 2019
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jul 3, 2019
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jul 3, 2019
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jul 3, 2019
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jul 3, 2019
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jul 3, 2019
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jul 3, 2019
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jul 3, 2019
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jul 3, 2019
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jul 3, 2019
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jul 3, 2019
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jul 3, 2019
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jul 4, 2019
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jul 4, 2019
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jul 4, 2019
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jul 4, 2019
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jul 4, 2019
engine-flutter-autoroll added a commit to flutter/flutter that referenced this pull request Jul 4, 2019
flutter/engine@7d3e722...3c51a7b

git log 7d3e722..3c51a7b --no-merges --oneline
3c51a7b Roll src/third_party/skia 11eb847a2080..857c9f955edb (2 commits) (flutter/engine#9676)
7f828dd Raster now returns an enum rather than boolean (flutter/engine#9661)
11b6afe  Roll src/third_party/dart 67ab3be10d...b5aeaa6796 (flutter/engine#9675)
3c4dbe2 Revert " Roll src/third_party/dart 67ab3be10d...43891316ca (#9670)" (flutter/engine#9673)
5e596f2  Roll src/third_party/dart 67ab3be10d...43891316ca (flutter/engine#9670)
46a2239 Roll src/third_party/skia 5b52c52141ac..11eb847a2080 (6 commits) (flutter/engine#9671)
b84f89b Allow embedders to add callbacks for responses to platform messages from the framework. (flutter/engine#9655)
8dac2e9 Begin separating macOS engine from view controller (flutter/engine#9654)
d3616c7 Roll src/third_party/skia 0e0113dcbd9a..5b52c52141ac (8 commits) (flutter/engine#9665)
cea2c36 Mutators Stack refactoring (flutter/engine#9663)
6a8782f Roll src/third_party/skia 93eeff578b08..0e0113dcbd9a (9 commits) (flutter/engine#9662)
791143f ExternalViewEmbedder can CancelFrame after pre-roll (flutter/engine#9660)
d637f29 External view embedder can tell if embedded views have mutated (flutter/engine#9653)
ceee3d7 Roll src/third_party/skia 38ae3f42fec1..93eeff578b08 (1 commits) (flutter/engine#9659)
d757290 Roll src/third_party/skia febc162c7898..38ae3f42fec1 (3 commits) (flutter/engine#9658)
58133ab Roll src/third_party/skia 3de5c6388142..febc162c7898 (2 commits) (flutter/engine#9657)
29342dd Roll src/third_party/skia 1e2cb444e0c1..3de5c6388142 (8 commits) (flutter/engine#9656)
b547356 Pipeline allows continuations that can produce to front (flutter/engine#9652)
8306ee6 Move the mutators stack handling to preroll (flutter/engine#9651)
511b9f2 Roll src/third_party/skia 215ff3325230..1e2cb444e0c1 (12 commits) (flutter/engine#9650)

The AutoRoll server is located here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff ([email protected]), and stop
the roller if necessary.
johnsonmh pushed a commit to johnsonmh/flutter that referenced this pull request Jul 30, 2019
flutter/engine@7d3e722...3c51a7b

git log 7d3e722..3c51a7b --no-merges --oneline
3c51a7b Roll src/third_party/skia 11eb847a2080..857c9f955edb (2 commits) (flutter/engine#9676)
7f828dd Raster now returns an enum rather than boolean (flutter/engine#9661)
11b6afe  Roll src/third_party/dart 67ab3be10d...b5aeaa6796 (flutter/engine#9675)
3c4dbe2 Revert &flutter#34; Roll src/third_party/dart 67ab3be10d...43891316ca (flutter#9670)&flutter#34; (flutter/engine#9673)
5e596f2  Roll src/third_party/dart 67ab3be10d...43891316ca (flutter/engine#9670)
46a2239 Roll src/third_party/skia 5b52c52141ac..11eb847a2080 (6 commits) (flutter/engine#9671)
b84f89b Allow embedders to add callbacks for responses to platform messages from the framework. (flutter/engine#9655)
8dac2e9 Begin separating macOS engine from view controller (flutter/engine#9654)
d3616c7 Roll src/third_party/skia 0e0113dcbd9a..5b52c52141ac (8 commits) (flutter/engine#9665)
cea2c36 Mutators Stack refactoring (flutter/engine#9663)
6a8782f Roll src/third_party/skia 93eeff578b08..0e0113dcbd9a (9 commits) (flutter/engine#9662)
791143f ExternalViewEmbedder can CancelFrame after pre-roll (flutter/engine#9660)
d637f29 External view embedder can tell if embedded views have mutated (flutter/engine#9653)
ceee3d7 Roll src/third_party/skia 38ae3f42fec1..93eeff578b08 (1 commits) (flutter/engine#9659)
d757290 Roll src/third_party/skia febc162c7898..38ae3f42fec1 (3 commits) (flutter/engine#9658)
58133ab Roll src/third_party/skia 3de5c6388142..febc162c7898 (2 commits) (flutter/engine#9657)
29342dd Roll src/third_party/skia 1e2cb444e0c1..3de5c6388142 (8 commits) (flutter/engine#9656)
b547356 Pipeline allows continuations that can produce to front (flutter/engine#9652)
8306ee6 Move the mutators stack handling to preroll (flutter/engine#9651)
511b9f2 Roll src/third_party/skia 215ff3325230..1e2cb444e0c1 (12 commits) (flutter/engine#9650)

The AutoRoll server is located here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff ([email protected]), and stop
the roller if necessary.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants