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

[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 flar requested a review from jonahwilliams February 22, 2024 01:14
@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
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 subscribe to this conversation on GitHub. Already have an account? Sign in.
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