Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ili9488: Start updating to new display port interface #137

Merged
merged 2 commits into from
Nov 18, 2021
Merged

Conversation

C47D
Copy link
Collaborator

@C47D C47D commented Oct 26, 2021

No description provided.

@C47D C47D marked this pull request as draft October 26, 2021 05:29
@C47D
Copy link
Collaborator Author

C47D commented Oct 27, 2021

I've been trying to remember why do we allocate memory in the flush callback, and I think it's because this particular display can only work with RGB666 in SPI mode (I might be wrong tho).

So I guess we could try to use another color depth, one that doesn't require any memory allocation?

@JojoS62
Copy link

JojoS62 commented Oct 28, 2021

lvgl/lvgl#2737 (comment)

@C47D
Copy link
Collaborator Author

C47D commented Oct 30, 2021

@JojoS62 Thanks for pointing that issue out, my intention of avoiding the memory allocation is to make the driver as "platform" or "mcu" independent as possible. Are you currently using the ILI9488 display controller with higher color depth?

@JojoS62
Copy link

JojoS62 commented Oct 30, 2021

I'm following the lvgl development in general, and have looked also how different drivers are implemented.
I haven't used the ILI94xx yet, and I would not use higher resolutions with SPI. I was also not aware that these drivers do not offer RGB565 with SPI, so even more worse. I understand that the ESP32 has not enough pins for parallel interfacing, but then this controller is simply not well suited for such displays. Technically, it can be used, but for the cost of speed. There is a nice table of different controllers/displays that are supported with ESP, maybe it can be extended by a note or measurements of performance.
For this driver, I would also try to use 32 bit color depth and reduce to 18 bit in the flush, I guess this is a better solution than frequent memory allocations. I don't know how these are implemented on the ESP, but in general, memory allocations in a RTOS require some locking to avoid concurrent allocations. So this may slow down the driver also.

@C47D
Copy link
Collaborator Author

C47D commented Oct 30, 2021

I would not use higher resolutions with SPI. I was also not aware that these drivers do not offer RGB565 with SPI, so even more worse.

Yup, I agree on this.

There is a nice table of different controllers/displays that are supported with ESP, maybe it can be extended by a note or measurements of performance.

Made that table long ago, I will add a column with basic notes. Maybe it's better to open a new issue to address this. See #139

For this driver, I would also try to use 32 bit color depth and reduce to 18 bit in the flush, I guess this is a better solution than frequent memory allocations.

Will try this option, but it's been a while since I write a driver for LVGL 😸

Thanks for the suggestions

@tore-espressif
Copy link
Collaborator

Yep, it seems that ILI9488 is not a good place to start with refactoring 🤷
Related: #103 (comment)

@C47D
Copy link
Collaborator Author

C47D commented Nov 4, 2021

Well, the refactoring has been going for some time, this might be the third display that is updated. But I agree, this controller is a special case.

Can we merge it as it is, and leave the display optimization for another request?

@C47D C47D marked this pull request as ready for review November 18, 2021 02:59
@C47D C47D merged commit c7607e9 into develop Nov 18, 2021
@C47D C47D deleted the update_ili9488 branch February 2, 2022 22:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants