Draft
Conversation
- Reduced MapRenderTask stack from 16KB to 8KB (8KB SRAM recovered). - Reduced cliTask stack from 12KB to 4KB (8KB SRAM recovered). - Rebalanced task affinity: Moved MapRenderTask and cliTask to Core 1. - Dedicated Core 0 to real-time I/O (GPS and Sensor tasks) to prevent latency. - Adjusted MapRenderTask priority to 2 to ensure UI (Prio 3) responsiveness. - Improved gpsTask loop by replacing portMAX_DELAY with a 100ms timeout. - Validated stack High Water Marks across all targets post-refactor.
…imization - Migrated Notify Bar, Compass, MAP orientation, and NAV widgets to asynchronous reactive updates. - Eliminated redundant manual polling timers to improve CPU efficiency.
…ear to render task
- Tune mapRenderTask yield to 40ms/25FPS, doubling continuous draw time. - Fix UI desync forcing async redraw on zoom and GPS toggle events. - Unroll render passes. Iterate layers once instead of twice, removing redundant pass checks and the intermediate renderNavFeature function.
- Implement fast Y-axis rejection in renderNavText to skip expensive AABB calculations. - Significantly reduce Core 0 CPU load during the text rendering pass on dense urban tiles. - Improve final perceived rendering speed of labels.
- Replace floating-point math with integer arithmetic in darkenRGB565
to reduce CPU overhead during road casing and polygon outline rendering.
- Fix inverted Level of Detail (LOD) logic in renderNavLineString:
Aggressive simplification (3px) is now correctly applied at low zooms (Z<=12)
and maximum precision (1px) at high zooms (Z>=15).
- Implement Zero-Allocation: Pre-reserve vector capacities for featurePool,
layers, and buffers to eliminate costly PSRAM reallocations during rendering.
- Add Color Caching: Implement a single-entry cache in darkenRGB565 to skip
redundant integer math for repeated road and polygon outline colors.
- Yield Tuning: Increase the rendering burst interval from 32 to 128 elements
to reduce FreeRTOS context-switching overhead on Core 0.
- Improved overall stability and eliminated CPU micro-stutters during panning.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.