Get going quickly with Vulkan, the cutting edge 3D API from Khronos, with articles, presentations, sample code and helper libraries from NVIDIA, the world leader in visual and accelerated computing.
Vulkan is a modern cross-platform graphics and compute API currently in development by the Khronos consortium. The Khronos members span the computing industry and are jointly creating an explicit and predictable API that satisfies the needs of software vendors in fields as varied as game, mobile and workstation development. Vulkan's conscious API design enables efficient implementations on platforms that span a wide range of mobile and desktop hardware as well as across operating systems.
We have been using NVIDIA hardware and drivers on both Windows and Android for Vulkan development, and the reductions in CPU overhead have been impressive.John Carmack, Chief Technology Officer, Oculus
Vulkan Samples and Code
To assist developers in getting up to speed with Vulkan and to demonstrate some of the benefits of the Vulkan API, NVIDIA's developer support engineers have prepared several samples and source materials. Over time, NVIDIA plans to release additional samples and code so keep an eye on this page for the latest.
NVIDIA GameWorks Graphics Samples
The NVIDIA GameWorks Graphics samples are a comprehensive set of OpenGL, OpenGL ES and Vulkan samples that programmers of all levels can use to better understand modern 3D graphics techniques and enhance games, simulations and other 3D projects.
Featured Samples and Code
Threaded CAD Scene
The Vulkan & OpenGL Threaded CAD Scene sample is a demonstration of how the Vulkan API can be used for workstation class rendering where high performance and high precision are required.
Thread Rendering (aka FISH!)
The ThreadedRenderingVk sample beautifully renders a mesmerizing aquarium filled with schooling fish. The samples illustrates techniques for utilizing multiple threads to animate a scene using the Vulkan API. The sample also includes a second OpenGL ES 3 rendering pipeline that the user can toggle to in real-time. NVIDIA has also created an accompanying sample that takes advantage of OpenGL with AZDO extensions. The source code for both samples is available from the NVIDIA GameWorks Graphics samples page.
The Chopper demo uses the Vulkan API to render dozens of high quality helicopters at high framerate and low CPU overhead. The demo is available on launch day for Windows, Linux and Embedded (L4T) and will be available in the coming days for Android.
Vulkan C++ Wrapper
To help developers in quickly adopting Vulkan, NVIDIA has created a low level C++ wrapper for the API. The wrapper provides basic functionality and a consistent target using a cross-platform and lighweight approach.
This sample shows how to render 3D models in Vulkan using thread-workers to efficiently build different parts of the scene. For comparison purpose, the sample also contains a regular OpenGL implementation, as well as an OpenGL implementation using the NVIDIA Command-lists extension.
Vulkan Super Sampling
This sample uses Vulkan to render a scene in a supersampled offscreen buffer and applies a high quality down-sampling for the final result. The quality relies on a mix of multi-sampling, super-sampling and kernel filter that does a more accurate job than the conventional "resolve" operation.
We've successfully collaborated with the NVIDIA driver support team in the past, but I was amazed with the work they did on Vulkan. They promptly provided us with the latest beta drivers so we were able to quickly implement the new API into Serious Engine and make The Talos Principle one of the first titles supporting Vulkan. Smooth!Dean Sekuliuc, Senior Programmer, Croteam
Vulkan Community Highlights
Vulkan Fish Tornado
Fish Tornado from the Cinder team takes full advantage of the Vulkan API to render a school of big eye trevally. Originally written by Robert Hodgin and based on animal behavior simulation research by Craig Reynolds and Professor Iain Couzin, the demo shows different schooling patterns. Periodically their peaceful swimming is interrupted by the predatory approach of a passing shark.
Vulkan Developer Materials
- High-Performance, Low-Overhead Rendering with OpenGL and Vulkan (slides and video)
- Vulkan and NVIDIA The Essentials (slides and video)
NVIDIA Vulkan Training Day
Khronos Group Vulkan Webinar
- NVIDIA Vulkan Developer Driver for Khronos Vulkan Spec update 1.0.54
- NVIDIA GDC Vulkan Driver available now!
- Driver and New Sample for VK_NVX_device_generated_commands
- Vulkan Device-Generated Commands
- Getting Vulkan Ready For VR
- What’s your Vulkan Memory Type?
- Reading Between The Threads: Shader Intrinsics
- Vulkan Multi-threading at Khronos Munich Chapter Meeting
- Engaging the Voyage to Vulkan
- Vulkan Shader Resource Binding
- Vulkan Memory Management
- OpenGL like Vulkan
- Transitioning from OpenGL to Vulkan
- Tales from the NVIDIA Vulkan Early Access Program
- NVIDIA Corporate Blog Announcing Vulkan