This repository was archived by the owner on Feb 25, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 6k
Reland "[DisplayList] Allow random access to ops through indexing" #54676
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
There are 2 commits. The first one is just the re-revert (reland). The second includes the bug fix and the new unit test to verify the behavior. |
jonahwilliams
approved these changes
Aug 21, 2024
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
engine-flutter-autoroll
added a commit
to engine-flutter-autoroll/flutter
that referenced
this pull request
Aug 21, 2024
engine-flutter-autoroll
added a commit
to engine-flutter-autoroll/flutter
that referenced
this pull request
Aug 21, 2024
engine-flutter-autoroll
added a commit
to engine-flutter-autoroll/flutter
that referenced
this pull request
Aug 21, 2024
auto-submit bot
pushed a commit
to flutter/flutter
that referenced
this pull request
Aug 21, 2024
…153884) flutter/engine@b94e009...f493c21 2024-08-21 [email protected] [iOS] Tweak note about OpenGL support on mac in a user facing log. (flutter/engine#54690) 2024-08-21 [email protected] [Impeller] use blit pass to resize decoded images. (flutter/engine#54606) 2024-08-21 [email protected] Remove spammy warning message on `FlutterView` (flutter/engine#54686) 2024-08-21 [email protected] [Impeller] Perform integrity checks for Vulkan pipeline caches. (flutter/engine#54654) 2024-08-21 [email protected] docs: use test: all rather than editing .ci.yaml (flutter/engine#54667) 2024-08-21 [email protected] Reland "[DisplayList] Allow random access to ops through indexing" (flutter/engine#54676) 2024-08-21 [email protected] Roll Skia from 51ac9d93850c to 249d3f07c4d5 (2 revisions) (flutter/engine#54684) 2024-08-21 [email protected] iOS,macOS: Don't archive extra framework metadata (flutter/engine#54674) 2024-08-21 [email protected] Roll Dart SDK from 48f9b96d71e7 to 060e40916514 (1 revision) (flutter/engine#54682) 2024-08-21 [email protected] [web] annotate obscured text fields as passwords (flutter/engine#54664) 2024-08-21 [email protected] Roll Skia from c31e2ca59bd9 to 51ac9d93850c (2 revisions) (flutter/engine#54681) 2024-08-21 [email protected] [engine] reland weaken affinity of raster/ui to non-e core instead of only fast core (flutter/engine#54616) 2024-08-21 [email protected] Roll Skia from c00866df101a to c31e2ca59bd9 (2 revisions) (flutter/engine#54680) 2024-08-21 [email protected] Roll Skia from 39e5118034f4 to c00866df101a (1 revision) (flutter/engine#54678) 2024-08-21 [email protected] Roll Skia from 221ada80b174 to 39e5118034f4 (1 revision) (flutter/engine#54677) 2024-08-21 [email protected] Roll Skia from d576296091e0 to 221ada80b174 (2 revisions) (flutter/engine#54675) 2024-08-21 [email protected] Roll Dart SDK from 49f655b526c7 to 48f9b96d71e7 (1 revision) (flutter/engine#54672) 2024-08-21 [email protected] Roll Fuchsia Linux SDK from 3a16kOsyFmJh3lo7e... to XGzE3idakwfQZ68pb... (flutter/engine#54671) Also rolling transitive DEPS: fuchsia/sdk/core/linux-amd64 from 3a16kOsyFmJh to XGzE3idakwfQ If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human is aware of the problem. To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
auto-submit bot
added a commit
to flutter/flutter
that referenced
this pull request
Aug 22, 2024
…visions) (#153884)" (#153899) Reverts: #153884 Initiated by: jason-simmons Reason for reverting: flutter/engine@f8d553a introduced a log message that is not expected by the `run_debug_test_android` devicelab test Reverting until an engine build is available with the log removed (see flutter/engine#54699) Original PR Author: engine-flutter-autoroll Reviewed By: {fluttergithubbot} This change reverts the following previous change: flutter/engine@b94e009...f493c21 2024-08-21 [email protected] [iOS] Tweak note about OpenGL support on mac in a user facing log. (flutter/engine#54690) 2024-08-21 [email protected] [Impeller] use blit pass to resize decoded images. (flutter/engine#54606) 2024-08-21 [email protected] Remove spammy warning message on `FlutterView` (flutter/engine#54686) 2024-08-21 [email protected] [Impeller] Perform integrity checks for Vulkan pipeline caches. (flutter/engine#54654) 2024-08-21 [email protected] docs: use test: all rather than editing .ci.yaml (flutter/engine#54667) 2024-08-21 [email protected] Reland "[DisplayList] Allow random access to ops through indexing" (flutter/engine#54676) 2024-08-21 [email protected] Roll Skia from 51ac9d93850c to 249d3f07c4d5 (2 revisions) (flutter/engine#54684) 2024-08-21 [email protected] iOS,macOS: Don't archive extra framework metadata (flutter/engine#54674) 2024-08-21 [email protected] Roll Dart SDK from 48f9b96d71e7 to 060e40916514 (1 revision) (flutter/engine#54682) 2024-08-21 [email protected] [web] annotate obscured text fields as passwords (flutter/engine#54664) 2024-08-21 [email protected] Roll Skia from c31e2ca59bd9 to 51ac9d93850c (2 revisions) (flutter/engine#54681) 2024-08-21 [email protected] [engine] reland weaken affinity of raster/ui to non-e core instead of only fast core (flutter/engine#54616) 2024-08-21 [email protected] Roll Skia from c00866df101a to c31e2ca59bd9 (2 revisions) (flutter/engine#54680) 2024-08-21 [email protected] Roll Skia from 39e5118034f4 to c00866df101a (1 revision) (flutter/engine#54678) 2024-08-21 [email protected] Roll Skia from 221ada80b174 to 39e5118034f4 (1 revision) (flutter/engine#54677) 2024-08-21 [email protected] Roll Skia from d576296091e0 to 221ada80b174 (2 revisions) (flutter/engine#54675) 2024-08-21 [email protected] Roll Dart SDK from 49f655b526c7 to 48f9b96d71e7 (1 revision) (flutter/engine#54672) 2024-08-21 [email protected] Roll Fuchsia Linux SDK from 3a16kOsyFmJh3lo7e... to XGzE3idakwfQZ68pb... (flutter/engine#54671) Also rolling transitive DEPS: fuchsia/sdk/core/linux-amd64 from 3a16kOsyFmJh to XGzE3idakwfQ If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human is aware of the problem. To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
engine-flutter-autoroll
added a commit
to engine-flutter-autoroll/flutter
that referenced
this pull request
Aug 22, 2024
auto-submit bot
pushed a commit
to flutter/flutter
that referenced
this pull request
Aug 22, 2024
…153902) flutter/engine@b94e009...85d4be0 2024-08-22 [email protected] Export GPU symbols for embedder (flutter/engine#54662) 2024-08-22 [email protected] [Impeller] Remove a log message in the Vulkan back end that is visible during engine startup (flutter/engine#54699) 2024-08-22 [email protected] Roll Skia from 3cd00377cefc to 34aa8ce13af6 (3 revisions) (flutter/engine#54698) 2024-08-21 [email protected] macOS: Make framework creation consistent with iOS (flutter/engine#54685) 2024-08-21 [email protected] Roll Skia from 69f4bd859025 to 3cd00377cefc (8 revisions) (flutter/engine#54693) 2024-08-21 [email protected] Roll Dart SDK from 060e40916514 to 025bf8d376d3 (1 revision) (flutter/engine#54692) 2024-08-21 [email protected] Split tests out of Linux Android artifact creation builds (flutter/engine#54683) 2024-08-21 [email protected] Roll Skia from 249d3f07c4d5 to 69f4bd859025 (5 revisions) (flutter/engine#54691) 2024-08-21 [email protected] [iOS] Tweak note about OpenGL support on mac in a user facing log. (flutter/engine#54690) 2024-08-21 [email protected] [Impeller] use blit pass to resize decoded images. (flutter/engine#54606) 2024-08-21 [email protected] Remove spammy warning message on `FlutterView` (flutter/engine#54686) 2024-08-21 [email protected] [Impeller] Perform integrity checks for Vulkan pipeline caches. (flutter/engine#54654) 2024-08-21 [email protected] docs: use test: all rather than editing .ci.yaml (flutter/engine#54667) 2024-08-21 [email protected] Reland "[DisplayList] Allow random access to ops through indexing" (flutter/engine#54676) 2024-08-21 [email protected] Roll Skia from 51ac9d93850c to 249d3f07c4d5 (2 revisions) (flutter/engine#54684) 2024-08-21 [email protected] iOS,macOS: Don't archive extra framework metadata (flutter/engine#54674) 2024-08-21 [email protected] Roll Dart SDK from 48f9b96d71e7 to 060e40916514 (1 revision) (flutter/engine#54682) 2024-08-21 [email protected] [web] annotate obscured text fields as passwords (flutter/engine#54664) 2024-08-21 [email protected] Roll Skia from c31e2ca59bd9 to 51ac9d93850c (2 revisions) (flutter/engine#54681) 2024-08-21 [email protected] [engine] reland weaken affinity of raster/ui to non-e core instead of only fast core (flutter/engine#54616) 2024-08-21 [email protected] Roll Skia from c00866df101a to c31e2ca59bd9 (2 revisions) (flutter/engine#54680) 2024-08-21 [email protected] Roll Skia from 39e5118034f4 to c00866df101a (1 revision) (flutter/engine#54678) 2024-08-21 [email protected] Roll Skia from 221ada80b174 to 39e5118034f4 (1 revision) (flutter/engine#54677) 2024-08-21 [email protected] Roll Skia from d576296091e0 to 221ada80b174 (2 revisions) (flutter/engine#54675) 2024-08-21 [email protected] Roll Dart SDK from 49f655b526c7 to 48f9b96d71e7 (1 revision) (flutter/engine#54672) 2024-08-21 [email protected] Roll Fuchsia Linux SDK from 3a16kOsyFmJh3lo7e... to XGzE3idakwfQZ68pb... (flutter/engine#54671) Also rolling transitive DEPS: fuchsia/sdk/core/linux-amd64 from 3a16kOsyFmJh to XGzE3idakwfQ If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human is aware of the problem. To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
There were some performance improvements due to this PR as seen in this graph. The selected commit is when these changes were reverted and the 2 nearby improvements are when this PR was originally landed and then again when it was relanded. |
Buchimi
pushed a commit
to Buchimi/flutter
that referenced
this pull request
Sep 2, 2024
…lutter#153884) flutter/engine@b94e009...f493c21 2024-08-21 [email protected] [iOS] Tweak note about OpenGL support on mac in a user facing log. (flutter/engine#54690) 2024-08-21 [email protected] [Impeller] use blit pass to resize decoded images. (flutter/engine#54606) 2024-08-21 [email protected] Remove spammy warning message on `FlutterView` (flutter/engine#54686) 2024-08-21 [email protected] [Impeller] Perform integrity checks for Vulkan pipeline caches. (flutter/engine#54654) 2024-08-21 [email protected] docs: use test: all rather than editing .ci.yaml (flutter/engine#54667) 2024-08-21 [email protected] Reland "[DisplayList] Allow random access to ops through indexing" (flutter/engine#54676) 2024-08-21 [email protected] Roll Skia from 51ac9d93850c to 249d3f07c4d5 (2 revisions) (flutter/engine#54684) 2024-08-21 [email protected] iOS,macOS: Don't archive extra framework metadata (flutter/engine#54674) 2024-08-21 [email protected] Roll Dart SDK from 48f9b96d71e7 to 060e40916514 (1 revision) (flutter/engine#54682) 2024-08-21 [email protected] [web] annotate obscured text fields as passwords (flutter/engine#54664) 2024-08-21 [email protected] Roll Skia from c31e2ca59bd9 to 51ac9d93850c (2 revisions) (flutter/engine#54681) 2024-08-21 [email protected] [engine] reland weaken affinity of raster/ui to non-e core instead of only fast core (flutter/engine#54616) 2024-08-21 [email protected] Roll Skia from c00866df101a to c31e2ca59bd9 (2 revisions) (flutter/engine#54680) 2024-08-21 [email protected] Roll Skia from 39e5118034f4 to c00866df101a (1 revision) (flutter/engine#54678) 2024-08-21 [email protected] Roll Skia from 221ada80b174 to 39e5118034f4 (1 revision) (flutter/engine#54677) 2024-08-21 [email protected] Roll Skia from d576296091e0 to 221ada80b174 (2 revisions) (flutter/engine#54675) 2024-08-21 [email protected] Roll Dart SDK from 49f655b526c7 to 48f9b96d71e7 (1 revision) (flutter/engine#54672) 2024-08-21 [email protected] Roll Fuchsia Linux SDK from 3a16kOsyFmJh3lo7e... to XGzE3idakwfQZ68pb... (flutter/engine#54671) Also rolling transitive DEPS: fuchsia/sdk/core/linux-amd64 from 3a16kOsyFmJh to XGzE3idakwfQ If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human is aware of the problem. To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Buchimi
pushed a commit
to Buchimi/flutter
that referenced
this pull request
Sep 2, 2024
…visions) (flutter#153884)" (flutter#153899) Reverts: flutter#153884 Initiated by: jason-simmons Reason for reverting: flutter/engine@f8d553a introduced a log message that is not expected by the `run_debug_test_android` devicelab test Reverting until an engine build is available with the log removed (see flutter/engine#54699) Original PR Author: engine-flutter-autoroll Reviewed By: {fluttergithubbot} This change reverts the following previous change: flutter/engine@b94e009...f493c21 2024-08-21 [email protected] [iOS] Tweak note about OpenGL support on mac in a user facing log. (flutter/engine#54690) 2024-08-21 [email protected] [Impeller] use blit pass to resize decoded images. (flutter/engine#54606) 2024-08-21 [email protected] Remove spammy warning message on `FlutterView` (flutter/engine#54686) 2024-08-21 [email protected] [Impeller] Perform integrity checks for Vulkan pipeline caches. (flutter/engine#54654) 2024-08-21 [email protected] docs: use test: all rather than editing .ci.yaml (flutter/engine#54667) 2024-08-21 [email protected] Reland "[DisplayList] Allow random access to ops through indexing" (flutter/engine#54676) 2024-08-21 [email protected] Roll Skia from 51ac9d93850c to 249d3f07c4d5 (2 revisions) (flutter/engine#54684) 2024-08-21 [email protected] iOS,macOS: Don't archive extra framework metadata (flutter/engine#54674) 2024-08-21 [email protected] Roll Dart SDK from 48f9b96d71e7 to 060e40916514 (1 revision) (flutter/engine#54682) 2024-08-21 [email protected] [web] annotate obscured text fields as passwords (flutter/engine#54664) 2024-08-21 [email protected] Roll Skia from c31e2ca59bd9 to 51ac9d93850c (2 revisions) (flutter/engine#54681) 2024-08-21 [email protected] [engine] reland weaken affinity of raster/ui to non-e core instead of only fast core (flutter/engine#54616) 2024-08-21 [email protected] Roll Skia from c00866df101a to c31e2ca59bd9 (2 revisions) (flutter/engine#54680) 2024-08-21 [email protected] Roll Skia from 39e5118034f4 to c00866df101a (1 revision) (flutter/engine#54678) 2024-08-21 [email protected] Roll Skia from 221ada80b174 to 39e5118034f4 (1 revision) (flutter/engine#54677) 2024-08-21 [email protected] Roll Skia from d576296091e0 to 221ada80b174 (2 revisions) (flutter/engine#54675) 2024-08-21 [email protected] Roll Dart SDK from 49f655b526c7 to 48f9b96d71e7 (1 revision) (flutter/engine#54672) 2024-08-21 [email protected] Roll Fuchsia Linux SDK from 3a16kOsyFmJh3lo7e... to XGzE3idakwfQZ68pb... (flutter/engine#54671) Also rolling transitive DEPS: fuchsia/sdk/core/linux-amd64 from 3a16kOsyFmJh to XGzE3idakwfQ If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human is aware of the problem. To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Buchimi
pushed a commit
to Buchimi/flutter
that referenced
this pull request
Sep 2, 2024
…lutter#153902) flutter/engine@b94e009...85d4be0 2024-08-22 [email protected] Export GPU symbols for embedder (flutter/engine#54662) 2024-08-22 [email protected] [Impeller] Remove a log message in the Vulkan back end that is visible during engine startup (flutter/engine#54699) 2024-08-22 [email protected] Roll Skia from 3cd00377cefc to 34aa8ce13af6 (3 revisions) (flutter/engine#54698) 2024-08-21 [email protected] macOS: Make framework creation consistent with iOS (flutter/engine#54685) 2024-08-21 [email protected] Roll Skia from 69f4bd859025 to 3cd00377cefc (8 revisions) (flutter/engine#54693) 2024-08-21 [email protected] Roll Dart SDK from 060e40916514 to 025bf8d376d3 (1 revision) (flutter/engine#54692) 2024-08-21 [email protected] Split tests out of Linux Android artifact creation builds (flutter/engine#54683) 2024-08-21 [email protected] Roll Skia from 249d3f07c4d5 to 69f4bd859025 (5 revisions) (flutter/engine#54691) 2024-08-21 [email protected] [iOS] Tweak note about OpenGL support on mac in a user facing log. (flutter/engine#54690) 2024-08-21 [email protected] [Impeller] use blit pass to resize decoded images. (flutter/engine#54606) 2024-08-21 [email protected] Remove spammy warning message on `FlutterView` (flutter/engine#54686) 2024-08-21 [email protected] [Impeller] Perform integrity checks for Vulkan pipeline caches. (flutter/engine#54654) 2024-08-21 [email protected] docs: use test: all rather than editing .ci.yaml (flutter/engine#54667) 2024-08-21 [email protected] Reland "[DisplayList] Allow random access to ops through indexing" (flutter/engine#54676) 2024-08-21 [email protected] Roll Skia from 51ac9d93850c to 249d3f07c4d5 (2 revisions) (flutter/engine#54684) 2024-08-21 [email protected] iOS,macOS: Don't archive extra framework metadata (flutter/engine#54674) 2024-08-21 [email protected] Roll Dart SDK from 48f9b96d71e7 to 060e40916514 (1 revision) (flutter/engine#54682) 2024-08-21 [email protected] [web] annotate obscured text fields as passwords (flutter/engine#54664) 2024-08-21 [email protected] Roll Skia from c31e2ca59bd9 to 51ac9d93850c (2 revisions) (flutter/engine#54681) 2024-08-21 [email protected] [engine] reland weaken affinity of raster/ui to non-e core instead of only fast core (flutter/engine#54616) 2024-08-21 [email protected] Roll Skia from c00866df101a to c31e2ca59bd9 (2 revisions) (flutter/engine#54680) 2024-08-21 [email protected] Roll Skia from 39e5118034f4 to c00866df101a (1 revision) (flutter/engine#54678) 2024-08-21 [email protected] Roll Skia from 221ada80b174 to 39e5118034f4 (1 revision) (flutter/engine#54677) 2024-08-21 [email protected] Roll Skia from d576296091e0 to 221ada80b174 (2 revisions) (flutter/engine#54675) 2024-08-21 [email protected] Roll Dart SDK from 49f655b526c7 to 48f9b96d71e7 (1 revision) (flutter/engine#54672) 2024-08-21 [email protected] Roll Fuchsia Linux SDK from 3a16kOsyFmJh3lo7e... to XGzE3idakwfQZ68pb... (flutter/engine#54671) Also rolling transitive DEPS: fuchsia/sdk/core/linux-amd64 from 3a16kOsyFmJh to XGzE3idakwfQ If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human is aware of the problem. To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
auto-submit bot
pushed a commit
that referenced
this pull request
Oct 25, 2024
After landing #54676 we had the DLBuilder using legacy size fields in the DLOp records to manage traversing the records, but we constructed a more direct "offset vector" for the DisplayList to enable random access to the ops. The offset vector was created on the fly during the `Build()` method and then the size fields in the DLOp records were largely unused and redundant. This PR gets rid of the remaining uses of the DLOp size fields and has the Builder produce the offsets vector directly during recording.
nick9822
pushed a commit
to nick9822/flutter
that referenced
this pull request
Dec 18, 2024
…ne#56101) After landing flutter/engine#54676 we had the DLBuilder using legacy size fields in the DLOp records to manage traversing the records, but we constructed a more direct "offset vector" for the DisplayList to enable random access to the ops. The offset vector was created on the fly during the `Build()` method and then the size fields in the DLOp records were largely unused and redundant. This PR gets rid of the remaining uses of the DLOp size fields and has the Builder produce the offsets vector directly during recording.
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Now also fixes: flutter/flutter#153737
Being able to reorder rendering commands leads to optimization opportunities in the graphics package. A graphics package being fed from a DisplayList either has to take the commands in the order given or implement their own storage format for the rendering data.
With this new dispatching mechanism, the graphics package can both query basic information about the recorded ops and even dispatch them by the index into the list. Query information includes either the "category" of the op (clip/transform/render, etc.) or a specific op type enum. The package can dispatch some categories (or ops) immediately and remember other categories (or ops) along with their state for dispatching later.