Skip to content
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

[Impeller] Add stroke benchmarks that create UVs with no transform #50847

Merged
merged 1 commit into from
Feb 22, 2024

Conversation

flar
Copy link
Contributor

@flar flar commented Feb 22, 2024

The current stroke benchmarks exercise their PositionUVWriter variants with a worst case texture mapping that includes an effect transform. These benchmarks won't track any improvements we make to the case that does not include a transform.

This PR adds new benchmarks that track performance of computing texture coords with just a set of texture bounds and no transform.

@flar
Copy link
Contributor Author

flar commented Feb 22, 2024

The current naming is preserved to keep association with previous data, for example:

BM_StrokePolyline/stroke_Quadratic_Butt_Bevel - uses a PositionWriter (no UVs)
BM_StrokePolyline/stroke_Quadratic_Butt_Bevel_uv - uses a PositionUVWriter with bounds and a Matrix like before
BM_StrokePolyline/stroke_Quadratic_Butt_Bevel_uvNoTx - (new) uses a PositionUVWriter with just bounds, no Matrix

@flar
Copy link
Contributor Author

flar commented Feb 22, 2024

This is in preparation for an optimization that will improve the performance of UVWriters with a transform by up to 30% and UVWriters with no transform by potentially even more. (Basically moving the transform of texture_coords into a tight loop in the GetData method rather than doing the transform as each vertex is appended.)

Spoiler of performance improvements to come

Performance of aggressive vs lazy UV computations

@flar flar force-pushed the impeller-stroke-benchmarks-uv-no-tx branch from c445796 to d017d4d Compare February 22, 2024 06:52
Copy link
Member

@jonahwilliams jonahwilliams left a comment

Choose a reason for hiding this comment

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

LGTM!

@flar flar added the autosubmit Merge PR when tree becomes green via auto submit App label Feb 22, 2024
@auto-submit auto-submit bot merged commit 843ecc5 into flutter:main Feb 22, 2024
26 checks passed
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Feb 22, 2024
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Feb 22, 2024
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Feb 22, 2024
auto-submit bot pushed a commit to flutter/flutter that referenced this pull request Feb 22, 2024
…143972)

flutter/engine@06448ee...cb6115d

2024-02-22 dnfield@google.com Avoid generated plugin registrant warnings for scenario_app (flutter/engine#50874)
2024-02-22 15619084+vashworth@users.noreply.github.com Delete and create iOS simulator before running Scenario app test (flutter/engine#50835)
2024-02-22 skia-flutter-autoroll@skia.org Roll Skia from b9c16065b76d to dd8cd405d145 (2 revisions) (flutter/engine#50872)
2024-02-22 zanderso@users.noreply.github.com Remove 'bringup: true' from 'Mac mac_unopt' (flutter/engine#50865)
2024-02-22 31859944+LongCatIsLooong@users.noreply.github.com Pass the missing strut half leading flag over to skia paragraph builder (flutter/engine#50385)
2024-02-22 jacksongardner@google.com Implement frame timing callbacks in Skwasm. (flutter/engine#50737)
2024-02-22 flar@google.com [Impeller] Add stroke benchmarks that create UVs with no transform (flutter/engine#50847)
2024-02-22 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Remove WindowManager reflection in SingleViewPresentation.java (#49996)" (flutter/engine#50873)
2024-02-22 zanderso@users.noreply.github.com Use RBE on more Windows builders (flutter/engine#50866)
2024-02-22 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[Impeller] cache onscreen render targets. (#50751)" (flutter/engine#50871)

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 jimgraham@google.com,rmistry@google.com,zra@google.com 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 Feb 23, 2024
auto-submit bot pushed a commit to flutter/flutter that referenced this pull request Feb 23, 2024
…sions) (#143989)

Manual roll requested by goderbauer@google.com

flutter/engine@06448ee...0f3ad23

2024-02-22 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Implement frame timing callbacks in Skwasm. (#50737)" (flutter/engine#50895)
2024-02-22 skia-flutter-autoroll@skia.org Roll Dart SDK from 0f0f7400c38a to e2f2d9b464e9 (4 revisions) (flutter/engine#50881)
2024-02-22 skia-flutter-autoroll@skia.org Roll Skia from a285cd79614c to 58772db6bc46 (3 revisions) (flutter/engine#50884)
2024-02-22 30870216+gaaclarke@users.noreply.github.com [Impeller] moved the kernel size assert to a more appropriate location. (flutter/engine#50880)
2024-02-22 15619084+vashworth@users.noreply.github.com Build macOS engine as an xcframework (flutter/engine#50300)
2024-02-22 skia-flutter-autoroll@skia.org Roll Skia from dd8cd405d145 to a285cd79614c (3 revisions) (flutter/engine#50878)
2024-02-22 dnfield@google.com Avoid generated plugin registrant warnings for scenario_app (flutter/engine#50874)
2024-02-22 15619084+vashworth@users.noreply.github.com Delete and create iOS simulator before running Scenario app test (flutter/engine#50835)
2024-02-22 skia-flutter-autoroll@skia.org Roll Skia from b9c16065b76d to dd8cd405d145 (2 revisions) (flutter/engine#50872)
2024-02-22 zanderso@users.noreply.github.com Remove 'bringup: true' from 'Mac mac_unopt' (flutter/engine#50865)
2024-02-22 31859944+LongCatIsLooong@users.noreply.github.com Pass the missing strut half leading flag over to skia paragraph builder (flutter/engine#50385)
2024-02-22 jacksongardner@google.com Implement frame timing callbacks in Skwasm. (flutter/engine#50737)
2024-02-22 flar@google.com [Impeller] Add stroke benchmarks that create UVs with no transform (flutter/engine#50847)
2024-02-22 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Remove WindowManager reflection in SingleViewPresentation.java (#49996)" (flutter/engine#50873)
2024-02-22 zanderso@users.noreply.github.com Use RBE on more Windows builders (flutter/engine#50866)
2024-02-22 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[Impeller] cache onscreen render targets. (#50751)" (flutter/engine#50871)

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 goderbauer@google.com,jimgraham@google.com,rmistry@google.com,zra@google.com 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
autosubmit Merge PR when tree becomes green via auto submit App e: impeller
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants