You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Calculate more fine-grained FPS statistics in Android renderer (#10591)
## Summary
- Improves FPS statistics logging in `FpsManager` to distinguish between
different types of frame skips and rendering delays
- Adds tracking for frames missed due to frame pacing vs frames missed
due to slow rendering
- Provides more detailed performance metrics for debugging rendering
issues
## Changes
- Added `choreographerPacingSkips` counter to track VSYNC skips
specifically due to intentional frame pacing
- Added `missedMapRenderFrames` counter to track map render frames
missed due to rendering taking too long (calculated based on the
configured map render frame rate, not just screen refresh rate)
- Enhanced logging to report:
- Average map core rendering time in milliseconds and FPS
- Number of map render frames missed
- VSYNC skips broken down by total and pacing-related
- Added documentation comments explaining the purpose of each counter
- Improved clarity of log messages to differentiate between different
performance metrics
## Context
The previous FPS statistics lumped all frame skips together, making it
difficult to distinguish between:
1. Intentional skips due to frame pacing (when rendering at lower than
screen refresh rate)
2. Missed frames due to rendering taking too long
This change provides clearer visibility into rendering performance for
debugging and optimization.
cc @mapbox/maps-android
cc @mapbox/sdk-platform
---------
Co-authored-by: Peng Liu <[email protected]>
GitOrigin-RevId: 54119ce0ea8f24177d0b3e955c6b00b668ee53cc
Copy file name to clipboardExpand all lines: CHANGELOG.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,6 +8,7 @@ Mapbox welcomes participation and contributions from everyone.
8
8
9
9
## Features ✨ and improvements 🏁
10
10
*[compose] Add declarative animation API to experimental `Marker` composable with two animation triggers: `appearAnimation` and `disappearAnimation`. Each trigger accepts a list of `MarkerAnimationEffect` including `wiggle` (pendulum rotation), `scale`, `fadeIn`, and `fadeOut`. Effects can be customized with parameters (e.g., `scale(from = 0.5f, to = 1.5f)`, `fade(from = 0.5f, to = 1.0f)`) and combined for rich animations. See `MarkersActivity` example for usage.
11
+
* Improve FPS statistics logging when `mapView.setOnFpsChangedListener()` is used with separate tracking for frame pacing skips and missed render frames for better performance debugging.
11
12
12
13
## Bug fixes 🐞
13
14
* Fix NPE crash in `PointAnnotationClusterActivity` example when the remote GeoJSON endpoint returns a non-successful HTTP response.
0 commit comments