-
-
Notifications
You must be signed in to change notification settings - Fork 319
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
Benchmark app frame time improvements #1776
Benchmark app frame time improvements #1776
Conversation
for more information, see https://pre-commit.ci
Bloaty Results 🐋Compared to main
Full report: https://maplibre-native.s3.eu-central-1.amazonaws.com/bloaty-results/pr-1776-compared-to-main.txtCompared to d387090 (legacy)
Full report: https://maplibre-native.s3.eu-central-1.amazonaws.com/bloaty-results/pr-1776-compared-to-legacy.txt |
…surement of the frame time.
for more information, see https://pre-commit.ci
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.
Looks reasonable, but someone with more familiarity with the MLN View should weigh in.
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.
Could you share some more details about why these changes were needed here, as well as your test results?
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.
On my iPad mini 5:
| boston | 3.2210 ms | 4.7509 ms |
| paris | 2.5287 ms | 12.5014 ms |
| paris2 | 2.1421 ms | 12.5297 ms |
| alps | 2.9439 ms | 21.9420 ms |
| us east | 2.0176 ms | 14.9323 ms |
| greater la | 2.2015 ms | 14.6801 ms |
| sf | 4.0980 ms | 18.4790 ms |
| oakland | 2.5990 ms | 8.9986 ms |
| germany | 3.4378 ms | 22.3297 ms |
Average frame encoding time: 2.7988 ms
Average frame rendering time: 14.5715 ms
Old implementation was rendering directly to the In order have an accurate measurement and not being affected by this waiting time (when new drawable is available) I had to render the map to an offscreen texture, using the headless frontend. In this way I can render frame after frame without being limited by vsync of 60 fps and measure correctly the encoding time of the gpu command. |
Refactored benchmark app to use headless frontend for an accurate measurement of the frame time.
Make sure to set the Benchmark app on
Release
, withoutDebug executable
set and disableMetal API validation
: