A minimal starting point for a Vulkan 2D renderer with ShaderToHuman (S2H) and Slang shader hot reload by Martin Mittring.
- Slang (HLSL like but allows for differential, compiles slower)
- Shader cache for faster startup (supporting includes, cache key is file content based, not date)
- Shader hot reload (press F5)
- Shader error show up in Visual Studio "Output" (OutputDebugString),
no double click to jump to error as Slang error syntax is not compatible to Visual Studio - ImGui (2D Immediate Mode GUI, Docking Branch)
- Texture support (non bindless)
- Uses ShaderToHuman to print text from inside the shader, see below
- Window and App icon (red triangle)
- Screenshot function
Platform: Visual Studio project 2022, Windows11 x64 Tested on "NVIDIA GeForce RTX 2080", driver "610.188.0"
Command line parameters: --validate=0 / --validate=1 to turn the Vulkan validation layers off/on (default: on in Debug, off in Release)
- ShaderToHuman more 2D examples
- ShaderToHuman 3D example
- 3D Camera controls and relative mouse movement
- ShaderToHuman Quad with VS and PS example
- Support Linux
- 10/12/2026 V1.0
===============================================
- VulkanSDK 1.4.357.0 (not part of repo)
- glfw3.lib 3.3.4 (zlib license)
- ImGUI (docking branch) v1.92.8 (MIT)
- stb_image 2.30, stb_image_write 1.16 (public domain / MIT)
- Volk (MIT)
- GLM (MIT, comes with the VulkanSDK, not part of repo)
- VMA (Vulkan Memory Allocator) (MIT)
- slang-2026.13.1-windows-x86_64 (Apache-2.0 WITH LLVM-exception)
- ShaderToHuman (S2H) in shaders/s2h (BSD-3-Clause, Electronic Arts)
- hash-library (sha256, zlib-like license, see http://create.stephan-brumme.com/disclaimer.html)
- vk_framework.h, debug_util.h, logger.h from vk_minimal_latest (Apache-2.0, NVIDIA), modified
Apache-2.0, see LICENSE. Copyright (c) 2026 Martin Mittring.
Based on NVIDIA's vk_minimal_latest sample (Apache-2.0, Copyright (c) 2023-2026 NVIDIA CORPORATION), heavily modified. Each source file lists its copyright holders in its SPDX header and says if it is derived from vk_minimal_latest. resources/image1.jpg comes from vk_minimal_latest as well. Third-party code in extern/ and shaders/s2h/ keeps its own license (see above).