diff options
| author | David A Roberts <d@vidr.cc> | 2025-02-11 10:39:03 +1000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-02-10 16:39:03 -0800 |
| commit | 94c458243cf95567ec8f152d07a8754dcbfa9c93 (patch) | |
| tree | 7e25643cc4cbb9f5a7b3ad6edefc364791afb340 | |
| parent | 67dfc9b3e62d859f62d2aa5c600fea7e8d6ae240 (diff) | |
Add WGSL to list of formats supporting multiple entry points (#6324)
* Add WGSL to list of formats supporting multiple entry points
* Add a test for generating multiple WGSL entrypoints
| -rw-r--r-- | source/slang/slang-options.cpp | 1 | ||||
| -rw-r--r-- | tests/wgsl/multiple-entrypoints.slang | 28 |
2 files changed, 29 insertions, 0 deletions
diff --git a/source/slang/slang-options.cpp b/source/slang/slang-options.cpp index 87c62f7ee..ed7e79aa3 100644 --- a/source/slang/slang-options.cpp +++ b/source/slang/slang-options.cpp @@ -3509,6 +3509,7 @@ SlangResult OptionsParser::_parse(int argc, char const* const* argv) case CodeGenTarget::MetalLib: case CodeGenTarget::MetalLibAssembly: case CodeGenTarget::Metal: + case CodeGenTarget::WGSL: rawOutput.isWholeProgram = true; break; case CodeGenTarget::SPIRV: diff --git a/tests/wgsl/multiple-entrypoints.slang b/tests/wgsl/multiple-entrypoints.slang new file mode 100644 index 000000000..5e10f21d6 --- /dev/null +++ b/tests/wgsl/multiple-entrypoints.slang @@ -0,0 +1,28 @@ +//TEST:SIMPLE(filecheck=WGSL): -target wgsl + +//WGSL-DAG: @builtin(global_invocation_id) +//WGSL-DAG: @compute + +[shader("compute")] +void main_compute(uint3 dtid : SV_DispatchThreadID) +{ + // Empty compute shader +} + +//WGSL-DAG: @builtin(front_facing) +//WGSL-DAG: @fragment + +[shader("fragment")] +float4 main_fragment(bool isFront : SV_IsFrontFace) : SV_Target +{ + return float4(1,1,1,1); +} + +//WGSL-DAG: @builtin(vertex_index) +//WGSL-DAG: @vertex + +[shader("vertex")] +float4 main_vertex(uint vertexID : SV_VertexID) : SV_Position +{ + return float4(1,1,1,1); +} |
