Module: Mesa
Branch: master
Commit: 8033200560f6d76b1f84480cc0df809112389686
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=8033200560f6d76b1f84480cc0df809112389686

Author: Eric Anholt <[email protected]>
Date:   Thu Oct 15 14:15:42 2020 -0700

docs/v3d: Add a little stub of v3d documentation.

Reviewed-by: Erik Faye-Lund <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7174>

---

 docs/contents.rst    |  1 +
 docs/drivers/v3d.rst | 47 +++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 48 insertions(+)

diff --git a/docs/contents.rst b/docs/contents.rst
index 2873bbf43b7..9e321c02b15 100644
--- a/docs/contents.rst
+++ b/docs/contents.rst
@@ -54,6 +54,7 @@
    drivers/freedreno
    drivers/llvmpipe
    drivers/openswr
+   drivers/v3d
    drivers/vc4
    drivers/vmware-guest
    drivers/zink
diff --git a/docs/drivers/v3d.rst b/docs/drivers/v3d.rst
new file mode 100644
index 00000000000..2873369d533
--- /dev/null
+++ b/docs/drivers/v3d.rst
@@ -0,0 +1,47 @@
+V3D
+===
+
+Mesa's ``v3d`` graphics driver stack includes a `conformant GLES3.1
+driver
+<https://www.khronos.org/conformance/adopters/conformant-products/opengles#submission_882>`__
+called ``v3d`` and a Vulkan graphics driver called ``v3dv``, notably
+used on the Raspberry Pi 4.
+
+The v3d Mesa drivers communicate directly with the `v3d
+<https://www.kernel.org/doc/html/latest/gpu/v3d.html>`__ kernel DRM
+driver for scheduling GPU commands.  Additionally, on the Raspberry Pi
+4, the kernel uses the vc4 DRM driver for display support, so Mesa
+exposes a ``vc4_dri.so`` using the kmsro helpers to do
+behind-the-scenes buffer management between the two kernel drivers,
+while executing rendering on the v3d kernel module.
+
+Initial development work was done on the Broadcom 7268 (V3D 3.3) and
+7278 (V3D 4.1).  Development since then has been on V3D 4.2, and
+though the 3.3 and 4.1 support continues to remain in tree, it is not
+tested any more.  Broadcom's reference software platforms do not make
+use of the open source v3d stack, but porting a particular hardware
+implementation to use it would still be possible.
+
+Hardware Documentation
+----------------------
+
+Broadcom never released a public specification for the V3D 3.x or 4.x
+series.
+
+For driver developers, Broadcom publicly released a `specification
+<https://docs.broadcom.com/doc/12358545>`__ PDF for the 21553, which
+is closely related to the vc4 GPU present in the Raspberry Pi.  They
+also released a `snapshot <https://docs.broadcom.com/docs/12358546>`__
+of a corresponding Android graphics driver.  That graphics driver was
+ported to Raspbian for a demo, but was not expected to have ongoing
+development.
+
+Developers with NDA access with Broadcom or Raspberry Pi can get
+access to the V3D architecture specification for documentation of the
+GPU's programming model.  There is also a C++ software simulator
+called simpenrose, and the Mesa driver includes a backend
+(``src/broadcom/drm-shim/``) to use simpenrose from an x86 system with
+the i915 graphics driver with all of the vc4 rendering commands
+emulated on simpenrose and memcpyed to the real GPU.  Note that
+simpenrose's API drifts over time, so you need to be syned up with
+whatever version Mesa was last being developed against.

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to