17ec681f3SmrgPanfrost
27ec681f3Smrg========
37ec681f3Smrg
47ec681f3SmrgThe Panfrost driver stack includes an OpenGL ES implementation for Arm Mali
57ec681f3SmrgGPUs based on the Midgard and Bifrost microarchitectures. It is **conformant**
67ec681f3Smrgon Mali G52 but **non-conformant** on other GPUs. The following hardware is
77ec681f3Smrgcurrently supported:
87ec681f3Smrg
97ec681f3Smrg=========  ============ ============ =======
107ec681f3SmrgProduct    Architecture OpenGL ES    OpenGL
117ec681f3Smrg=========  ============ ============ =======
127ec681f3SmrgMali T720  Midgard (v4) 2.0          2.1
137ec681f3SmrgMali T760  Midgard (v5) 3.1          3.1
147ec681f3SmrgMali T820  Midgard (v5) 3.1          3.1
157ec681f3SmrgMali T860  Midgard (v5) 3.1          3.1
167ec681f3SmrgMali G72   Bifrost (v6) 3.1          3.1
177ec681f3SmrgMali G31   Bifrost (v7) 3.1          3.1
187ec681f3SmrgMali G52   Bifrost (v7) 3.1          3.1
197ec681f3Smrg=========  ============ ============ =======
207ec681f3Smrg
217ec681f3SmrgOther Midgard and Bifrost chips (T604, T620, T830, T880, G71, G51, G76) may
227ec681f3Smrgwork but may be buggy. End users are advised against using Panfrost on
237ec681f3Smrgunsupported hardware. Developers interested in porting will need to allowlist
247ec681f3Smrgthe hardware (``src/gallium/drivers/panfrost/pan_screen.c``).
257ec681f3Smrg
267ec681f3SmrgOlder Mali chips based on the Utgard architecture (Mali 400, Mali 450) are
277ec681f3Smrgsupported in the Lima driver, not Panfrost. Lima is also available in Mesa.
287ec681f3Smrg
297ec681f3SmrgOther graphics APIs (Vulkan, OpenCL) are not supported at this time.
307ec681f3Smrg
317ec681f3SmrgBuilding
327ec681f3Smrg--------
337ec681f3Smrg
347ec681f3SmrgPanfrost's OpenGL support is a Gallium driver. Since Mali GPUs are 3D-only and
357ec681f3Smrgdo not include a display controller, Mesa uses kmsro to support display
367ec681f3Smrgcontrollers paired with Mali GPUs. If your board with a Panfrost supported GPU
377ec681f3Smrghas a display controller with mainline Linux support not supported by kmsro,
387ec681f3Smrgit's easy to add support, see the commit ``cff7de4bb597e9`` as an example.
397ec681f3Smrg
407ec681f3SmrgLLVM is *not* required by Panfrost's compilers. LLVM support in Mesa can
417ec681f3Smrgsafely be disabled for most OpenGL ES users with Panfrost.
427ec681f3Smrg
437ec681f3SmrgBuild like ``meson . build/ -Ddri-drivers= -Dvulkan-drivers=
447ec681f3Smrg-Dgallium-drivers=panfrost -Dllvm=disabled`` for a build directory
457ec681f3Smrg``build``.
467ec681f3Smrg
477ec681f3SmrgFor general information on building Mesa, read :doc:`the install documentation
487ec681f3Smrg<../install>`.
497ec681f3Smrg
507ec681f3SmrgChat
517ec681f3Smrg----
527ec681f3Smrg
537ec681f3SmrgPanfrost developers and users hang out on IRC at ``#panfrost`` on OFTC. Note
547ec681f3Smrgthat registering and authenticating with `NickServ` is required to prevent
557ec681f3Smrgspam. `Join the chat. <https://webchat.oftc.net/?channels=#panfrost>`_
56