Skip to content

Run the DisplayList Primitive Rendering benchmarks in post-submit - #185865

Merged
auto-submit[bot] merged 2 commits into
flutter:masterfrom
flar:run-primitive-render-benchmarks-on-CI
May 5, 2026
Merged

Run the DisplayList Primitive Rendering benchmarks in post-submit#185865
auto-submit[bot] merged 2 commits into
flutter:masterfrom
flar:run-primitive-render-benchmarks-on-CI

Conversation

@flar

@flar flar commented Apr 30, 2026

Copy link
Copy Markdown
Contributor

We've defined new primitive rendering benchmarks to measure our ongoing work on the shaders that render our various primitive shapes, but these benchmarks are only currently run manually. This PR adds them to the suite of benchmarks that is run on every commit on Linux and uploads their results to the GCP store that contains our benchmark history.

Currently we are not uploading those historical benchmark json result files to Skia perf, but with this change we will at least have the history for them.

Fixes: #185708

Pre-launch Checklist

  • I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
  • I read the [AI contribution guidelines] and understand my responsibilities, or I am not using AI tools.
  • I read the [Tree Hygiene] wiki page, which explains my responsibilities.
  • I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement].
  • I signed the [CLA].
  • I listed at least one issue that this PR fixes in the description above.
  • I updated/added relevant documentation (doc comments with ///).
  • I added new tests to check the change I am making, or this PR is [test-exempt].
  • I followed the [breaking change policy] and added [Data Driven Fixes] where supported.
  • All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel on [Discord].

If this change needs to override an active code freeze, provide a comment explaining why. The code freeze workflow can be overridden by code reviewers. See pinned issues for any active code freezes with guidance.

Note: The Flutter team is currently trialing the use of Gemini Code Assist for GitHub. Comments from the gemini-code-assist bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed.

@flutter-dashboard flutter-dashboard Bot added the CICD Run CI/CD label Apr 30, 2026
@github-actions github-actions Bot added the engine flutter/engine related. See also e: labels. label Apr 30, 2026

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Code Review

This pull request introduces a new benchmark target, primitive_rendering_benchmarks, and refactors the display_list_benchmarks configuration in engine/src/flutter/display_list/BUILD.gn. The changes also update CI builder configurations and benchmark execution scripts to include the new target. Feedback was provided to simplify the defines assignment in the GN file to improve readability.

Comment thread engine/src/flutter/display_list/BUILD.gn Outdated
@github-actions github-actions Bot removed the CICD Run CI/CD label May 1, 2026
@flar flar added the CICD Run CI/CD label May 1, 2026
@flar
flar requested review from gaaclarke and jtmcdole May 1, 2026 05:08
@flar

flar commented May 1, 2026

Copy link
Copy Markdown
Contributor Author

One issue with this is that the scripts are only run on Linux currently and I think that may only enable the SkiaSoftware backend for the benchmarks. We should add a task that runs these scripts on Mac as well to get results for all of the Metal backends (SkiaMetal, ImpellerMetal, ImpellerMetalSDF).

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

does this new file get gobbled up in the same gcp file as the others because its in the same output folder or is there something else we need to do?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Yes, they all end up in the out/foo directory and the upload script should find them there. I tested with --no-upload and it found (and parsed and didn't upload) all 9 of them.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Checking the GCP buckets this morning shows that the file jumps from 119k to 160k around the time that this PR was merged, and it contains the new benchmark data.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CICD Run CI/CD engine flutter/engine related. See also e: labels.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

DisplayList primitive rendering benchmark is not being run in post-submit

2 participants