Top 23 C++ Vulkan Projects
-
bgfx
Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.
Project mention: Some questions about graphics in a 2D isometric game (engine) | reddit.com/r/gamedev | 2021-01-18Maybe bgfx is what you're looking for? They have an SDL section in the docs.
-
dxvk
Vulkan-based implementation of D3D9, D3D10 and D3D11 for Linux / Wine
Project mention: Valheim - Benchmark Linux vs Windows - Ryzen R5 4500U - Why cant we use Vulkan under windows :/ | reddit.com/r/valheim | 2021-02-24 -
Scout
Get performance insights in less than 4 minutes. Scout APM uses tracing logic that ties bottlenecks to source code so you know the exact line of code causing performance issues and can get back to building a great product faster.
-
Vulkan
Examples and demos for the new Vulkan API
I didn't look into the example code in depth, but looking at the code in VulkanSwapChain.cpp the create function does use VK_PRESENT_MODE_IMMEDIATE_KHR (or rather, VK_PRESENT_MODE_MAILBOX_KHR if it's supported) by default, i.e. if you set vsync to false or not set it at all.
-
GLM
OpenGL Mathematics (GLM)
glm [link]
-
xenia
Xbox 360 Emulator Research Project
Project mention: Vita3K - Showcase with some of the latest improvements (PS Vita emulator) | reddit.com/r/emulation | 2021-02-19Xenia exists and plays some 7th gen games better than RPCS3 does.
-
Waifu2x-Extension-GUI
Image, GIF and Video enlarger(Super Resolution) and Video frame interpolation. Achieved with Waifu2x, SRMD, RealSR, Anime4K, RIFE, CAIN and ACNet.
Project mention: I used AI Up-Scaling to 4k the Spice And Wolf Anime Opening. | reddit.com/r/SpiceandWolf | 2021-02-03I used Waifu2x Extension GUI with the Waifu2x ncnn vulkan engine to do the up-scaling. The source is direct lossless from the blue-ray which is parsed to png at 100 quality and then fed through the neural network.
-
magnum
Lightweight and modular C++11 graphics middleware for games and data visualization
Project mention: Best Vulkan wrapper / low-level graphics library? | reddit.com/r/GraphicsProgramming | 2021-02-09(Sorry for a self-promo, hope that's fine.) If you don't mind being an early adopter and use something that's still undergoing heavy development and is not complete yet, I'm building a low-level Vulkan wrapper in Magnum. If you aren't familiar with Magnum yet, it's a C++11 library that has (among other things) a thin OpenGL/GLES/WebGL wrapper that removes the platform-specific extension hell and most of the boilerplate while still allowing you to work with the raw APIs if you need ... and the same is now being done for Vulkan.
-
The-Forge
The Forge Cross-Platform Rendering Framework PC, Linux, Ray Tracing, macOS / iOS, Android, XBOX, PS4, PS5, Switch, Stadia
Project mention: What Enginetooling Was Used To Create Hades | reddit.com/r/HadesTheGame | 2021-02-11 -
MangoHud
A Vulkan and OpenGL overlay for monitoring FPS, temperatures, CPU/GPU load and more. Discord: https://discordapp.com/invite/Gj5YmBb
First, you need to disable the runtime completely as described here.
-
reshade
A generic post-processing injector for games and video software.
Project mention: If you aren't playing with ReShade, you're missing out! | reddit.com/r/cyberpunkgame | 2021-02-23Reshade is over at reshade.me if you're interested. I could post my specific settings if anyone wants them, but its basically just fakeHDR, vibrancy, a slightly blue tint, and sharpening.
-
DiligentEngine
A modern cross-platform low-level graphics library and rendering framework
-
duckstation
Fast PlayStation 1 emulator for PC and Android
Project mention: how to fix this graphic issue with duckstation. Only happens when i quick load have tried changing renderer with no change | reddit.com/r/EmulationOnAndroid | 2021-02-23Hi there, you can post your issue here https://github.com/stenzek/duckstation/issues
-
Vulkan-Samples
One stop solution for all Vulkan samples
Project mention: Computer freezes between compute shader submits on NVIDIA gpu | reddit.com/r/vulkan | 2021-02-06Maybe somebody could report if using Non-Nvidia card you experience freezes during high compute shader load? e. g. using n-body sample from https://github.com/KhronosGroup/Vulkan-Samples with 500k bodies or so.
-
GPCS4
A Playstation 4 emulator just begin
there is a legit ps4 emulator for windows but i dont think you are looking for it because it doesnt run at playable frame rate Inori/GPCS4: A Playstation 4 emulator just begin (github.com)
-
VulkanMemoryAllocator
Easy to integrate Vulkan memory allocation library
Project mention: Evaluation of my C++ project from experienced users | reddit.com/r/cpp_questions | 2021-02-22If you want to get better acquainted with Vulkan, I suggest you convert this code to work with vulkan.hpp. Look up the samples that come with it, also check out Sascha Willems' samples ported to hpp. Consider using VMA, naive memory allocations are pretty bad in vulkan, OTOH there's plenty of more interesting things to deal with than manually suballocating memory blocks. Also, have a look at libraries like vpp, vk-bootstrap, and vookoo, those might also help make your code more concise, thus easier to read, and refactoring stuff to use them will help you understand what's going on.
-
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 -
nvk
Vulkan API for JavaScript/TypeScript
You can use vulkan in nodejs for that https://github.com/maierfelix/nvk
-
VkFFT
Vulkan Fast Fourier Transform library
Project mention: VkFFT now supports Vulkan/CUDA/HIP as backend | reddit.com/r/programming | 2021-02-16Hello! This is another post about a big update to the GPU Fast Fourier Transform library VkFFT, which brings support for multiple backends (Vulkan/CUDA/HIP). This greatly expands the reach of VkFFT, allowing for its use on AMD MI100 and Nvidia A100 GPUs.
-
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-27NVIDIA 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
-
vkBasalt
a vulkan post processing layer for linux
You should look at using VKBASALT for some basic reshade functionality, it is what I currently use.
-
RayTracingInVulkan
Implementation of Peter Shirley's Ray Tracing In One Weekend book using Vulkan and NVIDIA's RTX extension.
-
VulkanSceneGraph
Vulkan & C++17 based Scene Graph Project
Perhaps https://github.com/vsg-dev/VulkanSceneGraph will be of some interest.
-
vk_raytracing_tutorial_KHR
Ray tracing examples and tutorials using VK_KHR_ray_tracing
Index
What are some of the best open-source Vulkan projects in C++? This list will help you:
Project | Stars | |
---|---|---|
1 | bgfx | 8,986 |
2 | dxvk | 6,008 |
3 | Vulkan | 6,005 |
4 | GLM | 4,861 |
5 | xenia | 4,675 |
6 | Waifu2x-Extension-GUI | 3,441 |
7 | magnum | 3,364 |
8 | The-Forge | 2,196 |
9 | MangoHud | 2,160 |
10 | reshade | 1,794 |
11 | DiligentEngine | 1,666 |
12 | duckstation | 1,379 |
13 | Vulkan-Samples | 1,376 |
14 | GPCS4 | 1,158 |
15 | VulkanMemoryAllocator | 1,120 |
16 | LLGL | 973 |
17 | nvk | 766 |
18 | VkFFT | 591 |
19 | vk_mini_path_tracer | 583 |
20 | vkBasalt | 508 |
21 | RayTracingInVulkan | 455 |
22 | VulkanSceneGraph | 451 |
23 | vk_raytracing_tutorial_KHR | 447 |