xref: /aosp_15_r20/external/mesa3d/docs/drivers/nvk.rst (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1NVK
2===
3
4NVK is a Vulkan driver for NVIDIA GPUs.
5
6Hardware support
7----------------
8
9NVK currently supports Turing (RTX 20XX and GTX 16XX) and later GPUs.
10Eventually, we plan to support as far back as Kepler (GeForce 600 and 700
11series) GPUs but anything pre-Turing is currently disabled by default.
12
13Kernel requirements
14-------------------
15
16NVK requires at least a Linux 6.6 kernel
17
18Conformance status:
19-------------------
20
21NVK is a conformant Vulkan 1.3 implementation for all Turing (RTX 20XX and
22GTX 16XX) and later GPUs.
23
24Debugging
25---------
26
27Here are a few environment variable debug environment variables
28specific to NVK:
29
30.. envvar:: NAK_DEBUG
31
32   a comma-separated list of named flags affecting the NVK back-end shader
33   compiler:
34
35   ``print``
36      Prints the shader at various stages of the compile pipeline
37   ``serial``
38      Forces serial instruction execution; this is often useful for
39      debugging or working around dependency bugs
40   ``spill``
41      Forces the GPR file to a minimal size to test the spilling code
42   ``annotate``
43      Adds extra annotation instructions to the IR to track information
44      from various compile passes
45
46.. envvar:: NVK_DEBUG
47
48   a comma-separated list of named flags, which do various things:
49
50   ``push``
51      Dumps all pushbufs to stderr on submit.  This requires that
52      ``push_sync`` also be set.
53   ``push_sync``
54      Waits for submit to complete before continuing
55   ``zero_memory``
56      Zeros all VkDeviceMemory objects upon creation
57   ``vm``
58      Logs VM binds and unbinds
59   ``no_cbuf``
60      Disables automatic promotion of UBOs to constant buffers
61
62.. envvar:: NVK_I_WANT_A_BROKEN_VULKAN_DRIVER
63
64   If defined to ``1`` or ``true``, this will enable enumeration of all
65   GPUs Kepler and later, including GPUs for which hardware support is
66   poorly tested or completely broken.  This is intended for developer use
67   only.
68
69Hardware Documentation
70----------------------
71
72What little documentation we have can be found in the `NVIDIA open-gpu-doc
73repository <https://github.com/NVIDIA/open-gpu-doc>`__.  The majority of
74our documentation comes in the form of class headers which describe the
75class state registers.
76