How to improve UI speed to remove flickering / tearing on my display. DMA and two buffers?

4 things I want you to do.

1: I want you to increase the size of the partial buffers. instead of dividing by 10 divide by 8.

2: I want you to do is to edit your lv_config.h file and change the default refr time from 33 to 20. If you use menuconfig to make adjustment to LVGL then locate the default refr time and set it in menuconfig.

3: change this code…

void app_main()
{

    vTaskDelay(1000 / portTICK_PERIOD_MS);

    TaskHandle_t taskHandle = NULL;
    xTaskCreatePinnedToCore(lvgl_task, "LVGL task", 8192, NULL, 4, &taskHandle, 0); // stack, params, prio, handle, core

    while (true)
    {

        vTaskDelay(100 / portTICK_PERIOD_MS);
    }
}

to read

void app_main()
{

    vTaskDelay(1000 / portTICK_PERIOD_MS);

    TaskHandle_t taskHandle = NULL;
    xTaskCreatePinnedToCore(lvgl_task, "LVGL task", 8192, NULL, 4, &taskHandle, 0); // stack, params, prio, handle, core
}

no reason to have that while loop which takes up processor cycles.

4: use host 2 for the SPI. Host 3 is GPIO gpio matrix only and is limited to something along the lines of a 28mhz transfer speed. you want to use the IOMUX which is a hardware SPI so you will be able to get the maximum of 80mhz. You nmeed to make sure the pin assignments align properly. Just dlancing at your pin assignments for the SPI it looks to be using the hardware SPI pins.

If you are still having an issue after that I will make some code changes and send you the file so you can see if the same issue happens. I have a suspicion that the exceedingly large amount of code that is running to something as simple as changing the value of the slider could be causing a significant amount of slow down. I would be curious to see if the same thing happens when setting the value of a native slider directly without using any of the ui designers code.