Rosenzweig: Desktop OpenGL 3.1 on Mali GPUs with Panfrost

Post Syndicated from original https://lwn.net/Articles/842578/rss

Alyssa Rosenzweig presents
a progress report
on the Panfrost driver for Arm Mali Midgard and
Bifrost GPUs, which now provides non-conformant OpenGL ES 3.0 on Bifrost
and desktop OpenGL 3.1 on Midgard. “Architecturally, Bifrost shares most of its fixed-function data structures with Midgard, but features a brand new instruction set. Our work for bringing up OpenGL ES 3.0 on Bifrost reflects this division. Some fixed-function features, like instancing and transform feedback, worked without any Bifrost-specific changes since we already did bring-up on Midgard. Other shader features, like uniform buffer objects, required “from scratch” implementations in the Bifrost compiler, a task facilitated by the compiler’s maturing intermediate representation with first-class builder support. Yet other features like multiple render targets required some Bifrost-specific code while leveraging other code shared with Midgard. All in all, the work progressed much more quickly the second time around, a testament to the power of code sharing. But there is no need to limit sharing to just Panfrost GPUs; open source drivers can share code across vendors.