AST2500 GPU driver is very slow due to MMIO framebuffer copies

Notes on AST2500 DRM GPU driver performance issues
by

The ast Linux DRM GPU driver is extremely slow at page flipping.

A simple test app which performs atomic commits on a 1080p display takes ~45ms per page flip.

The issue seems to be horrendously slow copying of framebuffers to VRAM.

perf top hotspot

AST2500 cards appear to support DMA however the ast driver doesn't use it.

ast2520a2gp_datasheet

It may be possible to adapt XDMA code in github:eddiejames/xdma-test for the ast GPU driver.
I'll update this article if I get that working or fail to.


Cite as BibTeX
@misc{ast2500-slow-framebuffer,
    author = {Luna Nova},
    title = {AST2500 GPU driver is very slow due to MMIO framebuffer copies},
    year = {2024},
    url = {https://lunnova.dev/articles/ast2500-slow-framebuffer/},
    howpublished = {https://lunnova.dev/articles/ast2500-slow-framebuffer/},
    urldate = {2024-11-09},
    note = {lunnova.dev - Notes on AST2500 DRM GPU driver performance issues}
}

tagged linux performance