NVK

NVK is a Vulkan driver for Nvidia GPUs.

Hardware support

NVK currently supports Turing (RTX 20XX and GTX 16XX) and later GPUs. Eventually, we plan to support as far back as Kepler (GeForce 600 and 700 series) GPUs but anything pre-Turing is currently disabled by default.

Kernel requirements

NVK requires at least a Linux 6.6 kernel

Conformance status:

NVK is not currently conformant on any hardware. As of the writing of this documentation, it was failing about 2000 tests with the current feature set.

Debugging

Here are a few environment variable debug environment variables specific to NVK:

NVK_DEBUG:

a comma-separated list of named flags, which do various things:

push_dump

Dumps all pusbufs to stderr on submit. This requires that push_sync also be set.

push_sync

Waits for submit to complete before continuing

zero_memory

Zeros all VkDeviceMemory objects upon creation

NVK_I_WANT_A_BROKEN_VULKAN_DRIVER

If defined to 1 or true, this will enable enumeration of all GPUs Kepler and later, including GPUs for which hardware support is poorly tested or completely broken. This is intended for developer use only.

Hardware Documentation

What little documentation we have can be found in the NVIDIA open-gpu-doc repository. The majority of our documentation comes in the form of class headers which describe the class state registers.