If anybody is using LVGL with Raspberry Pico, I suggest looking considering the Pico PIO for high throughput interface with the display.
Below is a proof of concept that uses a PIO state machine and 8 bits parallel data path to a ILI9488 TFT controller. The byte rate is 30M/sec which results in 15M pixels/sec (two bytes per pixels).
The proof of concept supports both 8 and 16 bits color depths with on-the-fly 8 bit to 16 bits color mapping to meet the 16 bits requirement of the TFT controller. Using LVGL 8 bits allows to have RAM buffer than contains the entire 320x480 screen, which provides smooth display due to the short display update time.
The PIO uses an 8 entries FIFO, and supports single byte mode for commands and data and dual byte mode for the pixels, as required by the ILI9488. The strobe WR pulses are generated automatically and the state machine is fine tuned for proper setup and hold times.
The hardware FIFO is also supported by the DMA but since the firmware runs fast enough to keep it full, I didn’t bothered with DMA.