Vulkan
by
SaschaWillems

Description: C++ examples for the Vulkan graphics API

View on GitHub ↗

Summary Information

Updated 1 hour ago
Added to GitGenius on June 22nd, 2026
Created on June 21st, 2015
Open Issues & Pull Requests: 18 (+0)
Number of forks: 2,218
Total Stargazers: 12,048 (+0)
Total Subscribers: 391 (+0)

Issue Activity (beta)

Open issues: 9
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 377 days
Stale 30+ days: 9
Stale 90+ days: 5

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • validation (8)
  • Platform: Android (5)
  • Platform: MacOS (2)
  • bug (2)
  • Platform: Linux (1)
  • Vendor: NVIDIA (1)
  • help wanted (1)
  • question (1)

Most active issues this week

No issue events were indexed in the last 7 days.

Repository Insights (GitGenius)

Median issue/PR response: 2.9 hours
Mean response time: 6.8 days
90th percentile: 5.1 days
Tracked items: 82

Most active contributors

Detailed Description

The saschawillems/vulkan repository is a comprehensive collection of open source C++ examples and demonstrations for the Vulkan graphics API, maintained primarily by Sascha Willems. The repository serves as an educational resource for developers learning Vulkan, offering practical implementations across a wide range of graphics programming concepts and techniques. While Khronos has since released an official Vulkan Samples repository that Willems has been involved with, this repository continues to be actively maintained and contains examples that may not fit within the official collection.

The repository is organized into multiple categories of examples, starting with foundational concepts in the Basics section. These include simple triangle rendering using both Vulkan 1.0 and Vulkan 1.3, pipeline state objects, descriptor sets, dynamic uniform buffers, push constants, and specialization constants. The texture mapping examples cover 2D textures, texture arrays, cube maps, cube map arrays, and 3D textures with various sampling techniques. Additional basic examples demonstrate input attachments, sub passes, offscreen rendering, particle systems, stencil buffers, and vertex attributes.

The glTF section provides detailed implementations of the glTF 2.0 3D format, including model loading and rendering, vertex skinning with animation data, and complete scene rendering with complex materials and normal mapping. The Advanced section covers more sophisticated rendering techniques such as multisample anti-aliasing, alpha to coverage, high dynamic range rendering with bloom and tone mapping, and shadow mapping with depth bias and PCF filtering.

The repository includes specialized examples for compute shaders, geometry shaders, tessellation shaders, hardware accelerated ray tracing, headless rendering, user interface integration, visual effects, and various Vulkan extensions. Additional miscellaneous examples round out the collection with diverse graphics programming scenarios.

Shader support is a key feature of this repository. Examples are provided with GLSL as the primary shader language, with most samples also including Slang and HLSL shader sources to facilitate comparison between different shading languages. The Rust GPU project maintains separate Rust shader sources in an external repository. All shaders are compiled to SPIR-V, Vulkan's intermediate representation format.

The repository supports building and running on multiple platforms including Windows, Android, iOS, and macOS using MoltenVK, with all examples requiring a C++ compiler supporting C++20. The codebase contains submodules for external dependencies and assets, and comprehensive build documentation is provided. Command line options allow users to select specific GPUs and configure example behavior at runtime.

GitGenius activity data shows that SaschaWillems has been the dominant contributor with 212 tracked events, while the repository has received contributions from lang-sec and SRSaunders among others. The median issue and pull request response latency is 2.9 hours with a mean of 162.2 hours across 82 tracked items. Validation issues have been the most frequently labeled category with 8 instances, followed by Android platform issues with 5 instances and macOS platform issues with 2 instances. The repository shares overlapping contributors with related Khronos projects including vulkan-validationlayers, vulkan-hpp, and moltenvk, indicating active participation in the broader Vulkan ecosystem.

Vulkan
by
SaschaWillemsSaschaWillems/Vulkan

Repository Details

Fetching additional details & charts...