diff options
| author | Yong He <yonghe@outlook.com> | 2025-02-06 22:02:43 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-02-06 22:02:43 -0800 |
| commit | bae87afb20f95f9f27c64c4955bbc4464c576509 (patch) | |
| tree | 44d079bd76002d69be20efdbd03ac6ff62ef8caf /tests | |
| parent | 075b10e69055acc6536d74c1cb3399e0fe75338d (diff) | |
Support stage_switch. (#6311)
* Support stage_switch.
* Update proposal status.
* Fix gl_InstanceID.
* Fix.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/language-feature/stage-switch.slang | 38 | ||||
| -rw-r--r-- | tests/spirv/primitive-id-2.slang | 13 |
2 files changed, 51 insertions, 0 deletions
diff --git a/tests/language-feature/stage-switch.slang b/tests/language-feature/stage-switch.slang new file mode 100644 index 000000000..1bdd1f85a --- /dev/null +++ b/tests/language-feature/stage-switch.slang @@ -0,0 +1,38 @@ + +//TEST:SIMPLE(filecheck=CHECK):-target spirv + +float ddx_or(float val, float defaultVal) +{ + __stage_switch + { + case fragment: + return ddx(val); + default: + return defaultVal; + } +} + +float intermediate(float val) +{ + return ddx_or(val, 1.0); +} + +RWStructuredBuffer<float> output; + +[numthreads(1,1,1)] +void computeMain() +{ + // CHECK-LABEL: %computeMain = OpFunction + // CHECK: OpStore %{{.*}} %float_1 + // CHECK: OpFunctionEnd + output[0] = intermediate(2.0); +} + +[shader("fragment")] +float4 fragmentMain(float vin) : SV_Target +{ + // CHECK-LABEL: %fragmentMain = OpFunction + // CHECK: OpDPdx + // CHECK: OpFunctionEnd + return intermediate(vin); +}
\ No newline at end of file diff --git a/tests/spirv/primitive-id-2.slang b/tests/spirv/primitive-id-2.slang new file mode 100644 index 000000000..b10514b53 --- /dev/null +++ b/tests/spirv/primitive-id-2.slang @@ -0,0 +1,13 @@ +//TEST:SIMPLE(filecheck=CHECK): -target spirv -entry main -stage fragment + +// CHECK: OpCapability Geometry +// CHECK: BuiltIn PrimitiveId + +#version 450 + +out vec4 color; + +void main() +{ + color = float4(gl_PrimitiveID, 0, 0, 1); +}
\ No newline at end of file |
