NVIDIA Developer Posts Open-Source Tegra Support For Mesa - Tegra K1 & Newer
NVIDIA developer Thierry Reding on Wednesday posted a series of patches for providing NVIDIA Tegra support in Mesa in conjunction with the Nouveau DRM driver.
The five patches provide for initial NVIDIA Tegra support in Mesa, including frame-buffer modifier support for the Nouveau DRM driver. Using these patches allow for running a completely open-source graphics stack on Tegra SoCs like the Tegra X1 (Tegra210) without needing to use NVIDIA's proprietary driver. Use-cases like Wayland, kmscube, and more are supported.
The Tegra stacks makes use of the existing Nouveau NVC0 driver for rendering, but Tegra support in Mesa is needed for display support. As explained via the patch set:
There has already been Tegra DRM support within the mainline Linux kernel for a while now. These latest 5 patches for Mesa at just under 3,000 lines of code should make open-source 3D happy. NVIDIA has been much more interested on the open-source Tegra graphics driver side than on the desktop side due to more customer demand for open-source in the embedded space where Tegra is doing very well, including customer interest in proper upstream Wayland support. Hopefully we'll see more desktop open-source driver contributions from NVIDIA still this year.
Presumably this initial Tegra Mesa support and Nouveau frame-buffer modifier support will land with plenty of time for making Mesa 18.1.
The five patches provide for initial NVIDIA Tegra support in Mesa, including frame-buffer modifier support for the Nouveau DRM driver. Using these patches allow for running a completely open-source graphics stack on Tegra SoCs like the Tegra X1 (Tegra210) without needing to use NVIDIA's proprietary driver. Use-cases like Wayland, kmscube, and more are supported.
Jetson TK1 developer board for the Tegra K1 SoC.
The Tegra stacks makes use of the existing Nouveau NVC0 driver for rendering, but Tegra support in Mesa is needed for display support. As explained via the patch set:
Tegra K1 and later use a GPU that can be driven by the Nouveau driver. But the GPU is a pure render node and has no display engine, hence the scanout needs to happen on the Tegra display hardware. The GPU and the display engine each have a separate DRM device node exposed by the kernel.
To make the setup appear as a single device, this driver instantiates a Nouveau screen with each instance of a Tegra screen and forwards GPU requests to the Nouveau screen. For purposes of scanout it will import buffers created on the GPU into the display driver. Handles that userspace requests are those of the display driver so that they can be used to create framebuffers.
There has already been Tegra DRM support within the mainline Linux kernel for a while now. These latest 5 patches for Mesa at just under 3,000 lines of code should make open-source 3D happy. NVIDIA has been much more interested on the open-source Tegra graphics driver side than on the desktop side due to more customer demand for open-source in the embedded space where Tegra is doing very well, including customer interest in proper upstream Wayland support. Hopefully we'll see more desktop open-source driver contributions from NVIDIA still this year.
Jetson TX2
Presumably this initial Tegra Mesa support and Nouveau frame-buffer modifier support will land with plenty of time for making Mesa 18.1.
21 Comments