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