Vulkan
Vulkan-Samples
Our great sponsors
Vulkan | Vulkan-Samples | |
---|---|---|
70 | 44 | |
9,693 | 3,898 | |
- | 4.4% | |
9.3 | 9.2 | |
5 days ago | 5 days ago | |
GLSL | C++ | |
MIT License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Vulkan
-
Usages for vkCreateHeadlessSurfaceEXT
Samples in https://github.com/SaschaWillems/Vulkan have shown how to use vkCreateHeadlessSurfaceEXT. But these headless samples crash at acquireNextImage from the swapchain. Now I guess the problem lies in the vulkan-wsi-layer.
-
offscreen rendering vs render to texture
This is the reference I used. https://github.com/SaschaWillems/Vulkan/blob/master/examples/hdr/hdr.cpp
-
Question about descriptor buffers.
Hi, I'm messing with descriptor buffers but I've came across certain issues I can't seem to solve. I'm using this tutorial as reference. I've tried UBOs and SSBOs, it works perfectly and there is no need to change the buffers offsets when recording a command buffer because I can access them by index like this:
-
Need help learning descriptor sets
Hi I am trying to learn Vulkan for an upcoming project and I have so far found everything to be straight forward if very verbose. I have now come to descriptor sets, layout bindings and the so forth and it's got more confusing than I can work out. I have been following this github repo for a headless compute example and it works fine as it is. But when I tried to add an additional storage buffer to the test shader than it comes with I am unable to copy the data over instead just getting a whole collection of 0's.
- Sascha Willems bloom example dependency management
-
Vulkan ray tracer with fog and stuff
P.S. do you know of Sascha Willems’ code? https://github.com/SaschaWillems/Vulkan
-
Proper way to access a read-only texture that has no sampler from an hlsl compute shader?
BTW, this problem can be reproduced as described below: - clone https://github.com/SaschaWillems/Vulkan.git - build the project and run it with arguments : -v - s hlsl to enable the validation layer and to use hlsl code - run ComputeShader project. The following validation error "Type mismatch on descriptor slot ..." will be shown in the console. - to fix it, as suggested above, you can replace the 3rd line of emboss.comp, sharpen.comp, and edgedetect.comp from: Texture2D inputImage : register(t0); //Creates validation errors to RWTexture2D inputImage : register(u0); //no validation errors (you'll then need to recompile the shaders to spv with a proper hlsl compiler such as Microsoft dxc)
-
Recommendations on how to start a small Vulkan project
Another way I saw some projects start was by using example base classes (either Sascha Willems' implementations or the framework used by Khronos Samples).
-
I've been working on a real-time ray tracing renderer
It's not a tutorial but I'd recommend Sascha Willems examples. A good next step could be adding models and shadows (see https://github.com/SaschaWillems/Vulkan/tree/master/examples/raytracingshadows). It's a single file but you can easily understand what each function does.
-
Add a second texture to Sascha Willems glftLoading app
Exactly as u/aerorang said. I recommend comparing your linked example with Sascha's gtTF Scene rendering example where he adds a normal map along with the base albedo texture. He also marked important parts of the code with the POI keyword, so you can search for them in the code.
Vulkan-Samples
-
Google's First Tensor Processing Unit: Architecture
Vulcan is a driver-level API. It competes with DirectX and OpenGL.
CUDA is a language you write kernels. It competes with OpenAI's Triton language.
Here's what CUDA looks like: https://github.com/tspeterkim/flash-attention-minimal/blob/m...
This is what Triton looks like: https://triton-lang.org/main/getting-started/tutorials/06-fu...
By contrast Vulcan looks like this: https://github.com/KhronosGroup/Vulkan-Samples/blob/main/sam...
(It's true to some extent that maybe you could use Vulcan shaders to write deep learning kernels, maybe? I'm not aware of anyone doing it though)
-
Question regarding descriptor set binding invalidation/disturbing over pipeline boundaries
Hi, i'm looking into descriptor indexing and was looking at the Vulkan-Samples repo. I finally thought i understood how the set binding invalidation works (like a stack?). In the code below both the non_uniform_indexing pipeline and the update_after_bind pipeline use the immutable sampler descriptor in their fragment shader. But since the descriptor set = 0 is rebound, won't the immutable sampler in set = 1 from the "non_uniform_indexing" pipeline be "disturbed" and have to be rebound?
- New Vulkan Sample - VK_EXT_extended_dynamic_state2 Extension
-
Show HN: A tutorial for building a 2D game engine with Go and OpenGL
and see if it works.
[1] https://github.com/KhronosGroup/Vulkan-Samples/blob/main/sam...
- New Vulkan sample - VK_EXT_full_screen_exclusive
-
Mesh Shader Sample
In this new sample, we see how to incorporate the Vulkan extension VK_EXT_mesh_shader and introduce per primitive culling in a mesh shader. https://github.com/KhronosGroup/Vulkan-Samples/tree/main/samples/extensions/mesh_shader_culling
- New Extension Sample: VK_EXT_swapchain_maintenance1
-
Looking for resources / mentor
Also beginner here, I think you can learn other's codes to get a better understanding of the API by learning how others can abstract these concept into higher level. They're many great projects out there like Google's pbr renderer filament https://github.com/google/filament, AMD's gltf sample https://github.com/GPUOpen-LibrariesAndSDKs/glTFSample and also as many suggested, the Sascha Willems's repos https://github.com/SaschaWillems and the official sample https://github.com/KhronosGroup/Vulkan-Samples
-
Recommendations on how to start a small Vulkan project
Another way I saw some projects start was by using example base classes (either Sascha Willems' implementations or the framework used by Khronos Samples).
- Can anyone give valid reasons why game engines are any easier to use than just programming with something like Vulkan?
What are some alternatives?
vulkano - Safe and rich Rust wrapper around the Vulkan API
renderdoc - RenderDoc is a stand-alone graphics debugging tool.
vulkan-guide - Introductory guide to vulkan.
vk-bootstrap - Vulkan Bootstrapping Iibrary
bgfx - Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.
msdf-atlas-gen - MSDF font atlas generator
MoltenVK - MoltenVK is a Vulkan Portability implementation. It layers a subset of the high-performance, industry-standard Vulkan graphics and compute API over Apple's Metal graphics framework, enabling Vulkan applications to run on macOS, iOS and tvOS.
tinyrenderer - A brief computer graphics / rendering course
VulkanHelper - A simple helper interface between Vulkan C API and C++ containers
Vulkan-Guide - One stop shop for getting started with the Vulkan API
vulkan-tutorial-rs - Rust version of https://github.com/Overv/VulkanTutorial