mirror of https://gitlab.freedesktop.org/mesa/mesa
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. This has been tested with some GBM test programs, as well as kmscube and weston. All of those run without modifications, but I'm sure there is a lot that can be improved. Some fixes contributed by Hector Martin <marcan@marcan.st>. Changes in v2: - duplicate file descriptor in winsys to avoid potential issues - require nouveau when building the tegra driver - check for nouveau driver name on render node - remove unneeded dependency on libdrm_tegra - remove zombie references to libudev - add missing headers to C_SOURCES variable - drop unneeded tegra/ prefix for includes - open device files with O_CLOEXEC - update copyrights Changes in v3: - properly unwrap resources in ->resource_copy_region() - support vertex buffers passed by user pointer - allocate custom stream and const uploader - silence error message on pre-Tegra124 - support X without explicit PRIME Changes in v4: - ship Meson build files in distribution tarball - drop duplicate driver_tegra dependency Reviewed-by: Emil Velikov <emil.velikov@collabora.com> Acked-by: Emil Velikov <emil.velikov@collabora.com> Tested-by: Andre Heider <a.heider@gmail.com> Reviewed-by: Dmitry Osipenko <digetx@gmail.com> Reviewed-by: Dylan Baker <dylan@pnwbakers.com> Signed-off-by: Thierry Reding <treding@nvidia.com> |
||
---|---|---|
.. | ||
README | ||
drm.h | ||
drm_fourcc.h | ||
drm_mode.h | ||
i915_drm.h | ||
tegra_drm.h | ||
vc4_drm.h |
README
This directory contains a copy of the installed kernel headers required by the anv & i965 drivers to communicate with the kernel. Whenever either of those driver needs new definitions for new kernel APIs, these files should be updated. These files in master should only be updated once the changes have landed in the drm-next tree. You can copy files installed after running this from the kernel repository, at version the drivers require : $ make headers_install INSTALL_HDR_PATH=/path/to/install The last update was done at the following kernel commit : commit ca797d29cd63e7b71b4eea29aff3b1cefd1ecb59 Merge: 2c1c55cb75a9 010d118c2061 Author: Dave Airlie <airlied@redhat.com> Date: Mon Dec 4 09:40:35 2017 +1000 Merge tag 'drm-intel-next-2017-11-17-1' of git://anongit.freedesktop.org/drm/drm-intel into drm-next