Skip to main content

Shader

The Shader Tool is the command-line interface to the Clay shader compiler. It is useful for debugging purposes and for compiling shaders offline when needed. In most cases, the compiler is fast enough to handle shader compilation during application startup without noticeable delay.

note

Shader backend availability depends on the current platform.
For example, the HLSL backend is only available on Windows.

Usage Example

Convert a GLSL fragment shader from main.shader to HLSL:

ts_shader -f -DFRAGMENT_SHADER=1 ./main.shader -hlsl

Convert a GLSL compute shader from main.shader to CUDA:

ts_shader -c -DCOMPUTE_SHADER=1 ./main.shader -cu

Convert a SPIR-V fragment binary from fragment.spv to GLSL:

ts_shader -f fragment.spv -glsl

Command Line Parameters

Tellusim Shader Compiler
Usage: ts_shader -v shader.glsl
-D<macro>[=<val>] Define a macro and value
-U<macro> Undefine a macro
-no-warn, -nw No warnings output
-vertex, -v Vertex shader
-control, -tc Control shader
-evaluate, -te Evaluate shader
-geometry, -g Geometry shader
-fragment, -f Fragment shader
-compute, -c Compute shader
-task, -t Task shader
-mesh, -m Mesh shader
-raygen, -rg RayGen shader
-raymiss, -rm RayMiss shader
-closest, -rc Closest shader
-firsthit, -rf FirstHit shader
-intersection, -ri Intersection shader
-callable, -rcall Callable shader
-sampler <offset> Sampler offset
-texture <offset> Texture offset
-surface <offset> Surface offset
-uniform <offset> Uniform offset
-storage <offset> Storage offset
-tracing <offset> Tracing offset
-texel <offset> Texel offset
-table <offset> Table offset
-flags <flags> Shader flags (mslindirect)
-d <filename> Decompile shader
-o <filename> Output Vulkan SPIR-V binary
-gl <filename> Create OpenGL SPIR-V binary
-glsl <filename> Create GLSL OpenGL shader source
-glsles <filename> Create GLSL OpenGLES shader source
-hlsl <filename> Create HLSL DXIL shader source
-hlslbc <filename> Create HLSL DXBC shader source
-wgsl <filename> Create WGSL shader source
-msl <filename> Create MSL shader source
-cu <filename> Create CU shader source
-hip <filename> Create HIP shader source