Only the
kernel has direct access to the hardware, including the graphics card. End-user software accesses it through various
interfaces, that are specific to the task. nouveau is being written as a
Gallium3D-type of device driver, which means that it shares large amounts of code with other Gallium3D drivers. Most of this shared core is being mainlined in
Mesa 3D and then distributed as such by the various
Linux distributions.
Rendering APIs Mesa 3D and the drivers it includes, supports multiple
rendering interfaces, all designed to give user-space programs, such as e.g.
video games or
CAD software, access to the correspondent
SIP blocks.
Direct3D A free and open-source implementation of
Direct3D version 9 has been mainlined into Mesa 3D. It can be used with nouveau; however, since any software that is using Direct3D is programmed for Windows this software can only be used together with
Wine on Linux.
OpenGL for processing. The rendered results are not sent back to main memory. Instead they are stored in a
framebuffer. The content of the framebuffer is subsequently sent to the
display controller. The rendering interface
OpenGL is being developed by the
Khronos Group. Implementations of this API are part of Nvidia's drivers and
AMD's proprietary "Catalyst". Another implementation is being written by free software enthusiasts, such as
Brian Paul or Intel and coordinated in Mesa 3D. Being a Gallium3D-type of driver, nouveau needs only minor adaptations to work with this implementation.
Vulkan , Nouveau has some
Vulkan API support through the experimental NVK driver.
Video acceleration Mesa 3D supports multiple interfaces, all designed to give user-space programs, such as e.g.
GStreamer or
HandBrake, access to the correspondent SIP blocks. It is also possible to use the IC designed for rendering calculations for this purpose, though this approach consumes much more electrical power compared to utilizing the
PureVideo SIP block. nouveau supports PureVideo and provides access to it through
VDPAU and partly through
XvMC. nouveau does not support
Nvidia NVENC.
Computing APIs OpenCL In
Mesa GalliumCompute is also the main project for Nvidia, but only AMD part is near beta for OpenCL 1.0, 1.1, and 1.2.
CUDA nouveau does not support
CUDA. With the project Coriander, conversion of CUDA Code in OpenCL 1.2 is possible.
GPU System processor Nvidia FALCON Around the year 2006 Nvidia introduced FALCON (FAst Logic CONtroller) to their GPUs.
NV-RISCV At the 4th
RISC-V Workshop in July 2016 Nvidia employees introduced their plans to replace FALCON with a new proprietary custom design based on the RISC-V instruction set. ==History==