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