Vulkan
DirectXShaderCompiler
Vulkan | DirectXShaderCompiler | |
---|---|---|
70 | 33 | |
9,727 | 2,918 | |
- | 1.0% | |
9.2 | 0.0 | |
7 days ago | 3 days ago | |
GLSL | C++ | |
MIT License | GNU General Public License v3.0 or later |
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.
DirectXShaderCompiler
-
Building the DirectX shader compiler better than Microsoft?
> We may support DXBC generation in Clang in the future (we mentioned that in the original proposal to LLVM). That work is unlikely to begin for a few years as our focus will be on supporting DXIL and SPIR-V generation first.
I appreciate this quote[0] from the microsoft camp. Setting clear expectations that something will not be done is a nice bit of fresh air.
[0] https://github.com/microsoft/DirectXShaderCompiler/issues/57...
-
Vcc – The Vulkan Clang Compiler
There's no need for transpilers these days, you can just compile HLSL to SPIR-V bytecode with dxc.
https://github.com/microsoft/DirectXShaderCompiler
-
Shader Compilation
Use DXC and only HLSL for your main shader editing.
-
Apple's Game Porting Toolkit seems to have a D3DMetal.framework with full implementations of DirectX 12 to 9 on Metal
You can see libdxilconv in there, DXIL is the DirectX Intermediate Representation, documented in the open source shader compiler from Microsoft.
-
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)
-
Start project on Metal, port to DX11?
EDIT: There is also naga but it does not take HLSL as input: https://github.com/gfx-rs/naga but you can use DirectXShaderCompiler to compile to SpirV, then use naga to compile to Metal.
-
Using WebGPU as a graphics API for native C++ applications
🤨 For a "refusal to acknowledge it", they do appear to have a rather sizeable document mapping between HLSL and SPIR-V? https://github.com/microsoft/DirectXShaderCompiler/blob/main/docs/SPIR-V.rst
- What amazing things do you guys do with LLVM?
-
Is SPIRV-Cross a valid option to target Metal from HSSL?
I am starting work on a compute-driven rendering engine, and it seems that the best way to go around it will be to write code in HSSL, and then use DirectXShaderCompiler to generate SPIR-V, and SPIRV-Cross to then generate MSL. And while DXSC's repo has a page on incompatibilities, no such resource seems to exist for SPIRV-Cross targeting Metal.
-
Learning DirectX 12 in 2023
DirectX Shader Compiler
What are some alternatives?
vulkano - Safe and rich Rust wrapper around the Vulkan API
shaderc - A collection of tools, libraries, and tests for Vulkan shader compilation.
vulkan-guide - Introductory guide to vulkan.
glslang - Khronos-reference front end for GLSL/ESSL, partial front end for HLSL, and a SPIR-V generator.
vk-bootstrap - Vulkan Bootstrapping Iibrary
rust-gpu - 🐉 Making Rust a first-class language and ecosystem for GPU shaders 🚧
msdf-atlas-gen - MSDF font atlas generator
macOS_Wine_builds - Official Winehq macOS Packages
tinyrenderer - A brief computer graphics / rendering course
ShaderConductor - ShaderConductor is a tool designed for cross-compiling HLSL to other shading languages
Vulkan-Samples - One stop solution for all Vulkan samples
SPIRV-Cross - SPIRV-Cross is a practical tool and library for performing reflection on SPIR-V and disassembling SPIR-V back to high level languages.