you typically only need the color swap if using an SPI interfaced display. I would try turning that off. The display might also be in 24bit mode which LVGL doesn’t support. It supports 16bit and 32bit. so if it is in 24bit mode you either need to iterate over the buffer in the flush function and remove the alpha channel or set the display to 16bit color and LVGL to 16bit color
The display connection is parallel 8 bits and the color depth is 16 bits. SSD1963 driver supports 18 bits. What would be the best solution? Can this problem be solved at all?
so if you have it set to 8 lane mode and you have the color depth set to 16bit that is incorrect. LVGL doesn’t support 24 bit color frame buffers it goes from 16 bit to 32 bit. You would have to write a custom flush function to strip out the 8 bits (alpha) to make it 24 bit to send on 8 lanes. You can use an additional pin and set the IC to 9 lane mode using command 0xF0 and writing 0x06. Then you can use 16bit color depth. I believe you need to have the byte order set to BGR565 for that driver IC.
This is the data sheet for the driver IC pages 17 and 78 cover the bit depth/number of lanes and how to set it.
The issue might be related to the lane mode configuration or color depth settings. For 8-lane mode, make sure the color depth aligns with RGB565 since LVGL doesn’t support 24-bit color buffers. If possible, try switching to 9-lane mode using command 0xF0 with 0x06 and set the driver to BGR565.