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