Vulkan
vulkan-guide
Our great sponsors
Vulkan | vulkan-guide | |
---|---|---|
70 | 67 | |
9,693 | 792 | |
- | - | |
9.3 | 9.1 | |
3 days ago | 2 months ago | |
GLSL | SCSS | |
MIT License | MIT License |
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
PS. I have tried to use vulkan-wsi-layer (https://gitlab.freedesktop.org/mesa/vulkan-wsi-layer) to support the VK_EXT_headless_surface, and use sample in https://github.com/SaschaWillems/Vulkan to builed a headless version triange. However, it failed at acquireNextImage from the swapchain.
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.
-
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.
- Check out the Feb 2023 Vulkan Ecosystem Survey Results!
-
With GPT-4, as a Software Engineer, this time I'm actually scared
Second, you need to learn the basics of Vulkan API, such as how to create instances, devices, queues, swapchains, command buffers, pipelines, shaders, etc. You can find some useful tutorials and examples on https://vulkan-tutorial.com/ , https://vkguide.dev/ , https://github.com/SaschaWillems/Vulkan34, etc.
- Greetings. I went through the Vulkan tutorial, but I'm really stuck going beyond this point. Any word?
vulkan-guide
-
NVK is now ready for prime time
I totally agree, and so do the people working on it as well as some of the volunteers who write tutorials.
There's an ongoing effort to create beginner friendly introductory material which was discussed in the recent Vulkanised conference. And an effort to make a better documentation site that's easier to browse than the specification.
On the volunteer front, there's a Vulkan 1.3 -based introductory tutorial (work in progress) over at https://vkguide.dev/
I think there should be a Vulkan tutorial that doesn't start with the boring stuff of initialization and window creation. It's stuff that you write once and forget about, and nothing particularly interesting happens in it.
Looking at my hobby project, excluding the boring stuff (which is reusable), a "hello compute" example is around 100 LOC and a "hello triangle" around 120 LOC. GLSL shader sources included.
Maybe someday I'll get around to writing a "learn Vulkan the hard way" blog post with examples.
- LearnD3D11, a guide aimed at anyone trying to learn Direct3D11
-
What are the best textbooks/resources for learning graphics programming practically in 2023?
Once you're beyond the "introductory" phase, resources become more specialized based on what you'd like to learn -- there are Vulkan tutorials like https://vkguide.dev/ which will teach you the API and also give a bit more insight in how modern GPU hardware is structured, there are books like the "GPU Zen" series that do deep-dives on specific techniques, and there are tons of recorded GDC and SIGGRAPH talks on interesting new techniques. :)
- Where do I start learning graphics programming?
-
Yuzu Ea 3608 is out!
Personally, I'm a hands on learner who actually wants to use this stuff in my career, so I'd recommend these tutorials: https://learnopengl.com/ https://vulkan-tutorial.com/Overview https://vkguide.dev/
-
Theory on structuring graphics projects, building interfaces, and designing abstractions?
vkguide teaches some good practices regarding code/renderer structure, but I'm afraid it doesn't go as deep as you'd like. It's certainly deeper than most other tutorials, though.
-
"reportedly Apple just got absolutely everything they asked for and WebGPU really looks a lot like Metal. But Metal was always reportedly the nicest of the three modern graphics APIs to use, so that's… good?"
https://vkguide.dev/ This is my favorite.
- Resources to build a game engine from scratch?
-
Trying to write a simple example of a synchronization problem in Vulkan
Context: I just want to better understand synchronization, semaphores, barriers, render pass dependencies, etc. I am fairly new to Vulkan but watched this excellent Vulkan Lecture Series (all episodes), took notes, followed the Vulkan Guide tutorials, played with a couple of code examples for post-processing, raytracing and subpasses from this repo in order to practice, etc. In other words, I am a Vulkan newbie, but have started putting the effort to learn.
-
std::string_view, std::string, char const*, and char const* const*
Also,this guide was better when I ran through Vulkan. Also also the Vulkan C++ wrapper was just pure jank just not worth it, but it was a couple years ago so it could be better now.
What are some alternatives?
vk-bootstrap - Vulkan Bootstrapping Iibrary
raylib - A simple and easy-to-use library to enjoy videogames programming
bgfx - Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.
vulkano - Safe and rich Rust wrapper around the Vulkan API
SDL - Simple Directmedia Layer
SPIRV-Reflect - SPIRV-Reflect is a lightweight library that provides a C/C++ reflection API for SPIR-V shader bytecode in Vulkan applications.
AMDVLK - AMD Open Source Driver For Vulkan
LearnOpenGL - Code repository of all OpenGL chapters from the book and its accompanying website https://learnopengl.com
The-Forge - The Forge Cross-Platform Rendering Framework PC Windows, Steamdeck (native), Ray Tracing, macOS / iOS, Android, XBOX, PS4, PS5, Switch, Quest 2
onyx - Toolkit for converting and building songs for Rock Band, Guitar Hero, Clone Hero, and other similar rhythm games
VulkanSceneGraph - Vulkan & C++17 based Scene Graph Project