mesa/include
Thierry Reding 1755f608f5 tegra: Initial support
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>
2018-03-09 11:48:22 +01:00
..
CL clover: Update OpenCL headers to version 1.2 from Khronos. 2014-04-29 13:01:10 +02:00
D3D9 Introduce .editorconfig 2016-08-31 17:06:54 -07:00
EGL eglmesaext: add forward declaration for struct wl_buffers 2017-10-13 12:56:12 +01:00
GL mesa: add xbgr support adjacent to xrgb 2018-02-19 22:33:58 -05:00
GLES gles: Restore some lost typedefs 2017-08-01 18:26:15 +01:00
GLES2 include: Add GL_MESA_program_binary_formats to GL/GLES2 ext.h files 2017-12-08 16:44:35 +11:00
GLES3 Update Khronos-supplied headers 2017-06-30 15:29:50 +02:00
HaikuGL include/haiku: fix comment typo 2014-08-28 21:41:29 -04:00
KHR egl: Update headers from Khronos 2017-08-11 11:16:00 +01:00
c11 threads,configure.ac,meson.build: define and use HAVE_TIMESPEC_GET 2017-11-16 06:45:35 +01:00
d3dadapter d3dadapter/present: Add precision for WaitBufferReleased 2016-12-20 23:44:21 +01:00
drm-uapi tegra: Initial support 2018-03-09 11:48:22 +01:00
pci_ids intel: Add Coffee Lake brand strings 2018-02-08 10:26:34 -08:00
vulkan vulkan: Update the XML and headers to 1.1.70 2018-03-07 12:13:47 -08:00
c99_alloca.h c99_alloca.h: Also use <alloca.h> for cygwin 2015-03-07 18:18:32 +00:00
c99_compat.h util: fix NORETURN for msvc, add HAVE_FUNC_ATTRIBUTE_NORETURN to c99_compat.h 2018-01-12 02:52:10 +01:00
c99_math.h math: Import isinf and others to global namespace 2016-04-18 11:10:25 +01:00
meson.build meson: install vulkan_intel.h header 2018-03-02 11:11:20 -08:00
no_extern_c.h include: Add helper header to help trap includes inside extern C. 2015-03-06 12:38:55 +00:00