naga
wgsl-mode
Our great sponsors
naga | wgsl-mode | |
---|---|---|
22 | 1 | |
1,115 | 10 | |
2.9% | - | |
9.1 | 0.0 | |
about 10 hours ago | over 1 year ago | |
Rust | Emacs Lisp | |
GNU General Public License v3.0 or later | GNU General Public License v3.0 only |
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.
naga
-
Does WGSL work well with vulkan?
There's a compiler that can translate from WGSL to SPIR-V called naga. Having such a compiler is essential, since WebGPU is planned to use WGSL and browsers are expected to implement rendering via Vulkan (and probably Metal and DX12).
You could setup your build manager to use naga-cli to compile your shaders into spir-v on write
-
Glsl transpiler, interpreter?
Not sure about on the CPU, but naga is a shading language transpiler you can write custom front/backends for.
-
How are Vulkan, CUDA, Triton and all other things connected?
For cross-platform support look at WebGPU and Vulkan (e.g,: [0] [1]. Essentially, you would need to write the func in WGSL or GLSL, HLSL or MSL. Each of these can be cross-compiled to SPIR-V (what Vulkan needs) with cross-compilers such as spirv-cross and naga.
-
How to use Push Constants in Wgsl using WGpu?
anyway, here's the test. https://github.com/gfx-rs/naga/blob/master/tests/in/push-constants.wgsl
- WebGPU – All of the cores, none of the canvas – surma.dev
-
niceshade - convert HLSL to SPIR-V, GLSL, or Metal Shading Language
You might try https://github.com/gfx-rs/naga for that
-
Announcement: pixels 0.9.0 release
Personally, one of the most exciting things about this release is that it took me on a little journey to contribute some fixes to the naga shader translator. Specifically, naga 0.8.1 now properly supports the Fused-Multiply-Add function in the HLSL (DirectX) and GLSL (WebGL2 and GLES 3.1) backends. To be frank, this function does not make a big difference on the tiny shader in pixels. It does however mean that using compute-heavy shaders with wgpu 0.12 can now benefit from this function on all supported backends!
-
I made a video with every single debug render on a pathtracer I'm programming in Rust
universal shader translation
-
Porting WebGL Shaders to WebGPU
> What guarantees do you have it won't happen again?
Apple was pretty clear about their intent not to ship WebGL2, and they did the opposite for WebGPU so it's not gonna be the same story. Of course, I can't be 100% sure that Apple won't change their mind or anything, but there is no reason to believe they'll do so.
> Even if Apple had done it on time, it was a 2012 hardware API for 2017 hardware
Most games released in 2017 had to support hardware from 2012 anyway. Even AAA games released this year support GPU released in 2012[0]! For non AAA games, targeting a 5-years old API is probably the newest you can afford. We're not talking about bringing the bleeding edge GPU tech to the web (it won't, it's never standardised anyway, like Mesh shaders you talked about). The goal is to provide modern standardized tech to developers, and it does it in a portable way, which makes it even more affordable.
> Intel had two failed attempts to bring compute into the browser.
So what ?
> Yes it is a very bad thing, when Vulkan can keep using GLSL and HLSL, while DX12 happily will use any HLSL from the API history, and Metal can use proper C++14 shaders.
Vulkan uses SPIR-V, not HSL or GLSL. Translation tooling exist, but it also exists for WGSL -> SPIR-V[1]
Each platform has its own shading language, will this one be better than the other, I don't know but I don't think it's gonna be worse either.
> WGSL is web politics as usual.
Not really. See this summary[2] from a Mozilla gfx engineer:
[0]: https://support.activision.com/black-ops-cold-war/articles/m...
[1]: https://github.com/gfx-rs/naga
[2]: https://kvark.github.io/webgpu-debate/SPIR-V.component.html
wgsl-mode
-
Is WGSL a good choice?
IIRC, somebody looked at it, but nothing usable yet. There is, however, cargo-wgsl, vscode-wgsl, Emacs plugin, and Vim plugin
What are some alternatives?
wgsl-cheat-sheet - Cheat sheet for WGSL syntax for developers coming from GLSL.
learn-wgpu - Guide for using gfx-rs's wgpu library.
shaderc - A collection of tools, libraries, and tests for Vulkan shader compilation.
wgsl.vim - WGSL syntax highlight for vim
gpuweb - Where the GPU for the Web work happens!
noclip.website - A digital museum of video game levels
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.
vscode-wgsl - VsCode Syntax highlight for WGSL files
wgpu - Safe and portable GPU abstraction in Rust, implementing WebGPU API.