Vulkan Support on L4T
What is Vulkan?
Vulkan is a low level API that gives direct access of the GPU to developers who want the ultimate in control. With a simpler, thinner driver, Vulkan has less latency and overhead than traditional OpenGL or Direct3D. Vulkan has efficient multi-threading capabilities with multi-core CPUs that keep the graphics pipeline loaded, enabling a new level of performance on existing hardware.
Vulkan is the first new generation, low-level API that is cross platform. This allows developers to create applications for a variety of PC and mobile devices and operating systems. Like OpenGL, Vulkan is an open, royalty-free standard for any platform to adopt. For developers who prefer to remain on OpenGL, NVIDIA will continue to lead OpenGL innovations.
Learn more about Vulkan here.
Vulkan Driver is a default component of Linux For Tegra BSP release. Jetson TX2, Jetson TX2i, and Jetson TX1 are conformant to Vulkan 1.0 and pass the Vulkan 18.104.22.168 CTS. The current compliance status of Jetson platforms can be found at khronos.org/conformance.
L4T SW Driver Package
Vulkan SDK from LunarG
The LunarG Vulkan SDK provides development and runtime components required to build, run, and debug Vulkan applications. Refer to the LunarG Vulkan SDK, Documentation and Known Issues at vulkan.lunarg.com for the most up to date SDK information.
A prebuilt SDK can be downloaded from vulkan.lunarg.com but currently there is no prebuilt SDK provided for Linux-ARM. The source code can be downloaded from the below location and built for ARM architecture with the instructions mentioned inside the package.
https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers - This contains loader, demo packages and tools to be built
For developer convenience, NVIDIA has prebuilt a few parts of the SDK, downloaded from above location, which will be required for vulkan applications.
This Vulkan SDK file is based on loader version release 1.0.66. This version of the loader library and demo apps are verified to be working properly on the latest L4T BSP release.
Details of what the prebuilt SDK contains:
- LICENSE.txt: License under which this package is distributed
- COPYRIGHT.txt: Copyright file from LunarG git repository
--> cube/cubepp: demo app showing rotating cube
--> smoketest: demo app for multi-thread command buffer recording
- vulkaninfo: app to find out Vulkan implementation details on platform
--> libvulkan.so.1.0.66: Vulkan loader library