C++ Vulkan

Open-source C++ projects categorized as Vulkan

Top 23 C++ Vulkan Projects

  • GitHub repo filament

    Filament is a real-time physically based rendering engine for Android, iOS, Windows, Linux, macOS, and WebGL2

    Project mention: Any good tutorial about **implementing** PBR? | reddit.com/r/opengl | 2021-06-04

    The filament rendering library from Google has a full PBR pipeline implementation that you can hack on and see where theory becomes practice. It also provides an excellent in-depth discussion of the library implementation as well as why particular choices were made in the library.

  • GitHub repo 3d-game-shaders-for-beginners

    🎮 A step-by-step guide to implementing SSAO, depth of field, lighting, normal mapping, and more for your 3D game.

    Project mention: 3D Game Shaders for Beginners | reddit.com/r/patient_hackernews | 2021-04-25
  • GitHub repo bgfx

    Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.

    Project mention: New to graphics development, where should I start? | reddit.com/r/cpp | 2021-06-14

    An alternative you did not mention, which might also be useful to you, are these https://github.com/floooh/sokol and https://github.com/bkaradzic/bgfx . These are graphics API abstraction layers. They work the similarly to SDL in that they aim to abstract the API details of the graphics APIs into a single front facing API, allowing you to do graphics work without caring (too much) about the underlying backends. This could be a good option for you too if you want to go the multiplatform way.

  • GitHub repo dxvk

    Vulkan-based implementation of D3D9, D3D10 and D3D11 for Linux / Wine

    Project mention: Sekiro - Low-end PC vs Series X | reddit.com/r/Sekiro | 2021-06-17
  • GitHub repo MNN

    MNN is a blazing fast, lightweight deep learning framework, battle-tested by business-critical use cases in Alibaba

    Project mention: Newbie having error code of cannot build selected target abi x86 no suitable splits configured | reddit.com/r/AndroidStudio | 2021-04-12

    I found a solution on GitHub check your app's build.gradle, defaultConfig section - you need to add x86 to your ndk abiFilters ndk.abiFilters 'armeabi-v7a','arm64-v8a', 'x86' GitHub Hope it will help. You have to find that file and edit it as given here

  • GitHub repo renderdoc

    RenderDoc is a stand-alone graphics debugging tool.

    Project mention: Renderdoc's GPU Selection on a laptop | reddit.com/r/vulkan | 2021-04-19

    Renderdoc works by inserting itself as a Vulkan layer, which means it can change the output of functions if it so chooses. As you can see in the RenderDoc version of vkEnumeratePhysicalDevices it changes how devices are returned, and this likely is the reason the order changes.

  • GitHub repo GLM

    OpenGL Mathematics (GLM)

    Project mention: SIMD for C++ Developers [pdf] | reddit.com/r/cpp | 2021-04-28

    It seems https://github.com/g-truc/glm also supports SIMD (at least if used / configured correctly).

  • GitHub repo xenia

    Xbox 360 Emulator Research Project

    Project mention: Perfect Dark XBLA Xenia Emulator - Combat Simulator, Co-op, & Counter-op FIXED! | reddit.com/r/perfectdark | 2021-05-26

    I had to edit the source code and recompile xenia. Details are here: https://github.com/xenia-project/xenia/pull/1821

  • GitHub repo Waifu2x-Extension-GUI

    Video, Image and GIF upscale/enlarge(Super-Resolution) and Video frame interpolation. Achieved with Waifu2x, SRMD, RealSR, Anime4K, RIFE, CAIN, DAIN and ACNet.

    Project mention: NVIDIA: The Way The Rich are Meant to Play | reddit.com/r/AyyMD | 2021-06-18
  • GitHub repo magnum

    Lightweight and modular C++11 graphics middleware for games and data visualization

    Project mention: Looking for code only game engine | reddit.com/r/opengl | 2021-03-29

    Try Magnum, it provides all you need for bootstrapping a game in modern C++: https://magnum.graphics

  • GitHub repo GamePlay

    Open-source, cross-platform, C++ game engine for creating 2D/3D games. (by gameplay3d)

  • GitHub repo The-Forge

    The Forge Cross-Platform Rendering Framework PC Windows, Linux, Ray Tracing, macOS / iOS, Android, XBOX, PS4, PS5, Switch

    Project mention: Are you a licensed developer for consoles? Want them to support Godot out of the box so you don't rely on a third party? Please let Sony, Nintendo and Microsoft that you would appreciate them financing this support. | reddit.com/r/gamedev | 2021-06-18
  • GitHub repo reshade

    A generic post-processing injector for games and video software.

    Project mention: Can we use reshade on cold war? | reddit.com/r/blackopscoldwar | 2021-06-14

    Title says it all, can we use reshade in call of duty blops cold war without getting banned? Ive seen a few people who say that theyve used it without issue, but those are all older.

  • GitHub repo duckstation

    Fast PlayStation 1 emulator for PC and Android

    Project mention: Emulator Compiling Instructions for dummies like me! | reddit.com/r/macgaming | 2021-06-11

    1. brew install cmake sdl2 qt5 (from terminal if you have homebrew installed) 2. git clone https://github.com/stenzek/duckstation.git -b dev 3. cd duckstation 4. git clone https://github.com/stenzek/duckstation-ext-mac.git dep/mac 5. cmake -DCMAKE_BUILD_TYPE=Release -DQt5_DIR=/opt/homebrew/Cellar/[email protected]/5.15.2/lib/cmake/Qt5 . 6. make -j8 7. cd bin 8. codesign --force --deep -s - Duckstation.app

  • GitHub repo Vulkan-Samples

    One stop solution for all Vulkan samples

    Project mention: Command pool and command buffer mapping | reddit.com/r/vulkan | 2021-04-26
  • GitHub repo GPCS4

    A Playstation 4 emulator just begin

    Project mention: Retroarch wurde auf Version 1.9.3 aktualisiert und kann jetzt auch auf Retail Konsolen installiert werden! | reddit.com/r/de | 2021-05-18
  • GitHub repo VulkanMemoryAllocator

    Easy to integrate Vulkan memory allocation library

    Project mention: Allocating multi-layered images with a huge amount of layers | reddit.com/r/vulkan | 2021-04-13

    Alternatively, you could just use an existing allocator library, a popular choice is VMA: https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator

  • GitHub repo shaderc

    A collection of tools, libraries, and tests for Vulkan shader compilation.

    Project mention: What HLSL->SPIR-V compiler to use? | reddit.com/r/vulkan | 2021-04-03

    From what I can tell, both glslang/shaderc and Microsoft's DirectXShaderCompiler can compile HLSL to SPIR-V code. Is there a consensus on which of these is the better compiler? (wrt to accuracy, optimisations, feature completeness, etc.)

  • GitHub repo LLGL

    Low Level Graphics Library (LLGL) is a thin abstraction layer for the modern graphics APIs OpenGL, Direct3D, Vulkan, and Metal

    Project mention: Writing game engines in c++, recommendations | reddit.com/r/learnprogramming | 2021-01-21
  • GitHub repo SpartanEngine

    Game engine with an emphasis on architectual quality and performance

    Project mention: DirectX 11/12 Graphics Engine (WIP) | reddit.com/r/GraphicsProgramming | 2021-05-13

    I've uploaded my graphics engine written in DirectX 11 on Github. Here is the link. I've tried to make implementations of all the features as straightforward as possible so they are all inside renderer in corresponding void Pass*() member function. This was inspired by approach seen in https://github.com/PanosK92/SpartanEngine. Hope it helps someone.

  • GitHub repo nvk

    Vulkan API for JavaScript/TypeScript

    Project mention: Any Node.js graphics API? | reddit.com/r/node | 2021-01-02

    You can use vulkan in nodejs for that https://github.com/maierfelix/nvk

  • GitHub repo VkFFT

    Vulkan/CUDA/HIP/OpenCL Fast Fourier Transform library

    Project mention: VkFFT now supports Discrete Cosine Transforms | reddit.com/r/vulkan | 2021-06-19

    VkFFT supports convolution calculations - see samples 7, 8 and 9 in the VkFFT repository.

  • GitHub repo vk_mini_path_tracer

    A beginner-friendly Vulkan path tracing tutorial in under 300 lines of C++.

    Project mention: I’m am an beginner when it comes to openGL, and am thinking about implementation of ray tracing in my engine, and came across compute and mesh shaders. I have a few questions regarding them, so could someone please help me with these? | reddit.com/r/opengl | 2020-12-27

    NVIDIA has a couple of options for you to start learning hardware ray tracing. This requires you to use either Vulkan or Direct 3D 12, of which both are modern (i.e. low low level) APIs. In my view, you would be well-advised to budget significant amounts of time just to re-learn the traditional rasterization pipeline in Vulkan before thinking about raytracing. It took me quite a while to get up to speed on command buffers and synchronization and all the other ilk that OpenGL (mostly) doesn't ever expose. That said my colleague Neil Bickford has put together a tutorial for Vulkan raytrace extensions that does not assume prior Vulkan experience: https://github.com/nvpro-samples/vk_mini_path_tracer

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2021-06-19.


What are some of the best open-source Vulkan projects in C++? This list will help you:

Project Stars
1 filament 11,158
2 3d-game-shaders-for-beginners 10,550
3 bgfx 9,475
4 dxvk 6,334
5 MNN 5,797
6 renderdoc 5,458
7 GLM 5,209
8 xenia 4,976
9 Waifu2x-Extension-GUI 4,224
10 magnum 3,524
11 GamePlay 3,195
12 The-Forge 2,403
13 reshade 1,996
14 duckstation 1,809
15 Vulkan-Samples 1,562
16 GPCS4 1,261
17 VulkanMemoryAllocator 1,208
18 shaderc 1,097
19 LLGL 1,072
20 SpartanEngine 1,035
21 nvk 794
22 VkFFT 643
23 vk_mini_path_tracer 638