API samples

The goal of these samples is to demonstrate how to use a given Vulkan feature at the API level with as little abstraction as possible.

Compute shader N-Body simulation

Compute shader example that uses two passes and shared compute shader memory for simulating a N-Body particle system.

Dynamic Uniform buffers

Dynamic uniform buffers are used for rendering multiple objects with separate matrices stored in a single uniform buffer object, that are addressed dynamically.

High dynamic range

Implements a high dynamic range rendering pipeline using 16/32 bit floating point precision for all calculations.

Hello Triangle

A self-contained (minimal use of framework) sample that illustrates the rendering of a triangle.

HPP Compute shader N-Body simulation

A transcoded version of the API sample Compute N-Body that illustrates the usage of the C++ bindings of Vulkan provided by vulkan.hpp.

HPP Dynamic Uniform Buffers

A transcoded version of the API sample Dynamic Uniform buffers that illustrates the usage of the C++ bindings of Vulkan provided by vulkan.hpp.

HPP High dynamic range

A transcoded version of the API sample High dynamic rangethat illustrates the usage of the C++ bindings of Vulkan provided by vulkan.hpp.

HPP Hello Triangle

A transcoded version of the API sample Hello Triangle that illustrates the usage of the C++ bindings of Vulkan provided by vulkan.hpp.

HPP HLSL shaders

A transcoded version of the API sample HLSL Shaders that illustrates the usage of the C++ bindings of Vulkan provided by vulkan.hpp.

HPP Instancing

A transcoded version of the API sample Instancing that illustrates the usage of the C++ bindings of Vulkan provided by vulkan.hpp.

HPP OIT Linked Lists

A transcoded version of the API sample OIT Linked Lists that illustrates the usage of the C++ bindings of Vulkan provided by vulkan.hpp.

HPP Separate image sampler

A transcoded version of the API sample Separate image sampler that illustrates the usage of the C++ bindings of vulkan provided by vulkan.hpp.

HPP Terrain Tessellation

A transcoded version of the API sample Terrain Tessellation that illustrates the usage of the C++ bindings of vulkan provided by vulkan.hpp.

HPP Texture Loading

A transcoded version of the API sample Texture loading that illustrates the usage of the C++ bindings of vulkan provided by vulkan.hpp.

HPP Texture run-time mip-map generation

A transcoded version of the API sample Texture run-time mip-map generation that illustrates the usage of the C++ bindings of vulkan provided by vulkan.hpp.

HPP Timestamp queries

A transcoded version of the API sample Timestamp queries that illustrates the usage of the C++ bindings of vulkan provided by vulkan.hpp.

Instancing

Uses the instancing feature for rendering many instances of the same mesh from a single vertex buffer with variable parameters and textures.

Separate image sampler

Separate image and samplers, both in the application and the shaders. The sample demonstrates how to use different samplers for the same image without the need to recreate descriptors.

Terrain Tessellation

Uses a tessellation shader for rendering a terrain with dynamic level-of-detail and frustum culling.

Texture loading

Loading and rendering of a 2D texture map from a file.

Texture run-time mip-map generation

Generates a complete mip-chain for a texture at runtime instead of loading it from a file.

HLSL shaders

Converts High Level Shading Language (HLSL) shaders to Vulkan-compatible SPIR-V.

Timestamp queries

Using timestamp queries for profiling GPU workloads.

Swapchain recreation

A sample that implements best practices in handling swapchain recreation, for example due to window resizing or present mode changes.

Order-independent transparency with per-pixel ordered linked lists

A sample that implements an order-independent transparency algorithm using per-pixel ordered linked lists.

Order-independent transparency with depth peeling

A sample that implements order-independent transparency with depth peeling.