xref: /aosp_15_r20/external/mesa3d/docs/drivers/panfrost.rst (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1*61046927SAndroid Build Coastguard WorkerPanfrost
2*61046927SAndroid Build Coastguard Worker========
3*61046927SAndroid Build Coastguard Worker
4*61046927SAndroid Build Coastguard WorkerThe Panfrost driver stack includes an OpenGL ES implementation for Arm Mali
5*61046927SAndroid Build Coastguard WorkerGPUs based on the Midgard and Bifrost microarchitectures. It is **conformant**
6*61046927SAndroid Build Coastguard Workeron `Mali-G52 <https://www.khronos.org/conformance/adopters/conformant-products/opengles#submission_949>`_,
7*61046927SAndroid Build Coastguard Worker`Mali-G57 <https://www.khronos.org/conformance/adopters/conformant-products/opengles#submission_980>`_
8*61046927SAndroid Build Coastguard Workerand `Mali-G610 <https://www.khronos.org/conformance/adopters/conformant-products/opengles#submission_1053>`_,
9*61046927SAndroid Build Coastguard Workerbut **non-conformant** on other GPUs. The following hardware is currently
10*61046927SAndroid Build Coastguard Workersupported:
11*61046927SAndroid Build Coastguard Worker
12*61046927SAndroid Build Coastguard Worker+--------------------+---------------+-----------+--------+
13*61046927SAndroid Build Coastguard Worker| Models             | Architecture  | OpenGL ES | OpenGL |
14*61046927SAndroid Build Coastguard Worker+====================+===============+===========+========+
15*61046927SAndroid Build Coastguard Worker| T600, T620, T720   | Midgard (v4)  | 2.0       | 2.1    |
16*61046927SAndroid Build Coastguard Worker+--------------------+---------------+-----------+--------+
17*61046927SAndroid Build Coastguard Worker| T760, T820, T830   | Midgard (v5)  | 3.1       | 3.1    |
18*61046927SAndroid Build Coastguard Worker| T860, T880         |               |           |        |
19*61046927SAndroid Build Coastguard Worker+--------------------+---------------+-----------+--------+
20*61046927SAndroid Build Coastguard Worker| G72                | Bifrost (v6)  | 3.1       | 3.1    |
21*61046927SAndroid Build Coastguard Worker+--------------------+---------------+-----------+--------+
22*61046927SAndroid Build Coastguard Worker| G31, G51, G52, G76 | Bifrost (v7)  | 3.1       | 3.1    |
23*61046927SAndroid Build Coastguard Worker+--------------------+---------------+-----------+--------+
24*61046927SAndroid Build Coastguard Worker| G57                | Valhall (v9)  | 3.1       | 3.1    |
25*61046927SAndroid Build Coastguard Worker+--------------------+---------------+-----------+--------+
26*61046927SAndroid Build Coastguard Worker| G310, G610         | Valhall (v10) | 3.1       | 3.1    |
27*61046927SAndroid Build Coastguard Worker+--------------------+---------------+-----------+--------+
28*61046927SAndroid Build Coastguard Worker
29*61046927SAndroid Build Coastguard WorkerOther Midgard and Bifrost chips (e.g. G71) are not yet supported.
30*61046927SAndroid Build Coastguard Worker
31*61046927SAndroid Build Coastguard WorkerOlder Mali chips based on the Utgard architecture (Mali-400, Mali-450) are
32*61046927SAndroid Build Coastguard Workersupported in the :doc:`Lima <lima>` driver, not Panfrost. Lima is also
33*61046927SAndroid Build Coastguard Workeravailable in Mesa.
34*61046927SAndroid Build Coastguard Worker
35*61046927SAndroid Build Coastguard WorkerOther graphics APIs (Vulkan, OpenCL) are not supported at this time.
36*61046927SAndroid Build Coastguard Worker
37*61046927SAndroid Build Coastguard WorkerBuilding
38*61046927SAndroid Build Coastguard Worker--------
39*61046927SAndroid Build Coastguard Worker
40*61046927SAndroid Build Coastguard WorkerPanfrost's OpenGL support is a Gallium driver. Since Mali GPUs are 3D-only and
41*61046927SAndroid Build Coastguard Workerdo not include a display controller, Mesa uses kmsro to support display
42*61046927SAndroid Build Coastguard Workercontrollers paired with Mali GPUs. If your board with a Panfrost supported GPU
43*61046927SAndroid Build Coastguard Workerhas a display controller with mainline Linux support not supported by kmsro,
44*61046927SAndroid Build Coastguard Workerit's easy to add support, see the commit ``cff7de4bb597e9`` as an example.
45*61046927SAndroid Build Coastguard Worker
46*61046927SAndroid Build Coastguard WorkerLLVM is *not* required by Panfrost's compilers. LLVM support in Mesa can
47*61046927SAndroid Build Coastguard Workersafely be disabled for most OpenGL ES users with Panfrost.
48*61046927SAndroid Build Coastguard Worker
49*61046927SAndroid Build Coastguard WorkerBuild like ``meson . build/ -Dvulkan-drivers=
50*61046927SAndroid Build Coastguard Worker-Dgallium-drivers=panfrost -Dllvm=disabled`` for a build directory
51*61046927SAndroid Build Coastguard Worker``build``.
52*61046927SAndroid Build Coastguard Worker
53*61046927SAndroid Build Coastguard WorkerFor general information on building Mesa, read :doc:`the install documentation
54*61046927SAndroid Build Coastguard Worker<../install>`.
55*61046927SAndroid Build Coastguard Worker
56*61046927SAndroid Build Coastguard WorkerChat
57*61046927SAndroid Build Coastguard Worker----
58*61046927SAndroid Build Coastguard Worker
59*61046927SAndroid Build Coastguard WorkerPanfrost developers and users hang out on IRC at ``#panfrost`` on OFTC. Note
60*61046927SAndroid Build Coastguard Workerthat registering and authenticating with ``NickServ`` is required to prevent
61*61046927SAndroid Build Coastguard Workerspam. `Join the chat. <https://webchat.oftc.net/?channels=panfrost>`_
62*61046927SAndroid Build Coastguard Worker
63*61046927SAndroid Build Coastguard WorkerTechnical details
64*61046927SAndroid Build Coastguard Worker-----------------
65*61046927SAndroid Build Coastguard Worker
66*61046927SAndroid Build Coastguard WorkerYou can read more technical details about Panfrost here:
67*61046927SAndroid Build Coastguard Worker
68*61046927SAndroid Build Coastguard Worker.. toctree::
69*61046927SAndroid Build Coastguard Worker   :glob:
70*61046927SAndroid Build Coastguard Worker
71*61046927SAndroid Build Coastguard Worker   panfrost/*
72