InfiniTimeOrg / InfiniTimeOrg/InfiniSim

Slowdown with excess draws

Open
#162 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
C++
Stars
203
Forks
97
PR merge metrics
No merged PRs in 30d

Description

When drawing many times to the screen using Pinetime::Components::LittleVgl::FlushDisplay, Infinisim slows down greatly. This appears when there is in the order of several tens of draws per frame.
I've created an example app which shows this here: https://github.com/Feksaaargh/InfiniTime/tree/infinisim-draw-slowdown. This example has 50 5x5px particles, each of which are blanked out and redrawn every 40ms for 2500 draws per second.

https://github.com/user-attachments/assets/3b83db55-9654-43aa-afbf-53b6a31b2563

https://github.com/user-attachments/assets/b4c652ab-de6f-4daf-899a-874bd7bb6685

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with Pinetime::Components::LittleVgl::FlushDisplay and reproduce the slowdown using the example app from the linked infinisim-draw-slowdown branch. Measure behavior with several tens of draws per frame, including the 50-particle case producing about 2500 draws per second. Done means the simulator no longer slows greatly under that workload.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
performance
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.