hsimpson / vscode-glsllint

VSCode extension to lint GLSL shading language files
MIT License
80 stars 13 forks source link

use @webgpu/glslang for linting #33

Closed homerjam closed 3 years ago

homerjam commented 3 years ago

Hi, this is a rough and ready proof of concept that looks to address #26 by allowing you to use the globally installed @webgpu/glslang package to do the linting. Would be great to get your thoughts!

Thanks!

hsimpson commented 3 years ago

Thanks, I will have a look into this in the next few days. Probably it also works when using @webgpu/glslang as a local dependency.

hsimpson commented 3 years ago

The problem is, that WebGPU will drop SPIR-V some time, so the @webgpu/glslang probably will die ;-) WebGPU will use WGSL WebGPU Shading Language the SPIR-V is only a temporary solution.

On the other side I have tried to use @webgpu/glslang but the loading of the glslang.wasm fails. Then only vertex, fragment and compute stages are allowed, but glslangValidator can handle more stages like the new Ractracing stages.

But I will keep your idea in a separate branch for probably later evaluation. See branch https://github.com/hsimpson/vscode-glsllint/tree/wasm-glslang

homerjam commented 3 years ago

The problem is, that WebGPU will drop SPIR-V some time, so the @webgpu/glslang probably will die ;-) WebGPU will use WGSL WebGPU Shading Language the SPIR-V is only a temporary solution.

I'll have to defer to your expertise here - I'm very new to gl : )

On the other side I have tried to use @webgpu/glslang but the loading of the glslang.wasm fails. Then only vertex, fragment and compute stages are allowed, but glslangValidator can handle more stages like the new Ractracing stages.

I had the same problem, hence why I ended up with the convoluted spawning approach.

But I will keep your idea in a separate branch for probably later evaluation. See branch https://github.com/hsimpson/vscode-glsllint/tree/wasm-glslang

Cool, thanks. Really the only reason I wanted to get this working was because the install/build process for glslang seemed like a pain. Part of why I like extensions like this (ie. linters, formatters) is they're like a teaching resource. I work alone so it's like having a senior dev on my shoulder telling me about all my mistakes 🤓 All I really want is a single command install for glslang validator and I'd be happy!