Skip to content

Language Support

Shader Studio supports GLSL on WebGL2 and Slang and WGSL on WebGPU. This page compares the editor, rendering, and debugging features that are available in each language.

Editing (language service)

Feature GLSL Slang WGSL
Completion, hover, and definition Yes Yes Yes
References / highlights Yes Yes Yes
Rename Yes Yes, with limits Yes
Workspace symbol search No No No
Error checking Syntax checks Syntax and type checks Basic checks as you type; full checks when compiling
Signature help Yes Yes Yes
Color swatches vec3 / vec4 float3 / float4 vec3f / vec4f and vec3<f32> / vec4<f32>

See Language Servers for editor instructions and rename scope.

Rendering

Feature GLSL Slang WGSL
Single pass / multipass / Common Yes Yes Yes
Vertex shaders Yes Yes Yes
Compute No Yes Yes
Storage buffers No Yes Yes
Texture / cubemap / audio / video / keyboard inputs Yes Yes Yes
Named channel metadata Yes Yes Yes; texture and sampler handles are separate
Model geometry Yes Yes Yes
Custom uniforms from script Yes Yes Yes

See Channels for the public channel API and compatibility details.

Debugging

Feature GLSL Slang WGSL
Inline rendering Yes Yes Yes
Variable capture (fragment) Yes Yes Yes
2x2 matrix capture mat2 float2x2 mat2x2f, mat2x2<f32>
Vertex-stage debugging No No No
Compute-pass debugging No One invocation at a time One invocation at a time
Inspect values in Common helpers Yes Yes Yes
Inspect values read from storage No Yes Yes

The languages share the same debugger controls, but they do not have identical syntax or capture types. See the language pages for details.

Hosts and Limitations

The VS Code extension and standalone browser support all three languages. Slang and WGSL require WebGPU; GLSL uses WebGL2.

  • Matrix capture supports 2x2 matrices; select individual columns or components for larger matrices. See WGSL capture types.
  • Compute debugging cannot reproduce threads working together in a workgroup. See Slang debugging and WGSL compute limits.
  • Whole arrays, structs, and arbitrary pointers are not capture rows; inspect supported elements or fields instead.
  • Workspace symbol search and vertex-stage debugging are unavailable.

Language details: GLSL · Slang · WGSL.