How to increase fps?


I’ve found a semi working repository for the nintendo switch, that i want to use. My own attempts in porting it over failed miserably at my makefile, which did not want to include LVGL whatsoever.

Ive edited the repo to get the inputs working again but when testing, i noticed that i get 15-20fps maximum.

What MCU/Processor/Board and compiler are you using?

Nintendo Switch; The console has 4gb ram, quad-core ARM Cortex-A57 CPU can go to 1,75ghz and its Nvidia Maxwell GPU, up to 1,6 ghz. Resolution is 1280x720. Compiler is GCC

What LVGL version are you using?

good question (looks like 6.1.1)

What do you want to achieve?

30-60 fps

What have you tried so far?

removing shadows and other options & added a second buffer as described in a forum post

Code to reproduce

This code has non working controls, which i have edited locally. Everything else is unmodified.

Screenshot and/or video

It doesnt come across as bad on video as in person

What DISPLAY REFRASH RATE value you use? What delay between lv_task_handler() calls?

I dont think the refresh rate is a problem. I am using the tileview example and get around 13 fps, while core 1 is at 100%. i have 3 more cores, is there an easy way to split the load?

I dont know where this display refresh rate value is. delay between lv_task_handler() calls was 5ms. 1ms didnt change it at all.

I managed to squeeze more fps out of it by increasing the buffer, aswell as removing asserts, playing with refresh rates and the task handler.

i get about 66 fps and 20% usage on core 1 when idling.
animations cause the fps to dip in the 20s and the core usage increases to 100%. It feels way smoother but i dont like 1 core being used 100% while i have 3 other cores that are just idling.

Hi there,

Would you please share what you did to increase the buffer? I’m having the same issue you had.


Hey! I am not sure, but you can try to increase LV_MEM_SIZE in lv_conf.h

Thank you! I will try that.