diff options
| author | Tim Foley <tfoleyNV@users.noreply.github.com> | 2017-08-25 20:13:19 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-08-25 20:13:19 -0700 |
| commit | 227f9f5a9d8ac0d88079b6175b3f31c8f05fabd0 (patch) | |
| tree | 48f73703ca00c91ab23cd3750ac42ac71feca9a2 /tests | |
| parent | 7e05e062a0b7c39dbce6e850227d2038aca2f38e (diff) | |
| parent | c077a08652377194f9076fc41b1b3793301b25ae (diff) | |
Merge pull request #173 from tfoleyNV/resources-in-structs-fixes
Fix some resources-in-structs bugs
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/bugs/gh-171.slang | 30 | ||||
| -rw-r--r-- | tests/bugs/gh-172.slang | 41 |
2 files changed, 71 insertions, 0 deletions
diff --git a/tests/bugs/gh-171.slang b/tests/bugs/gh-171.slang new file mode 100644 index 000000000..b37f77ce2 --- /dev/null +++ b/tests/bugs/gh-171.slang @@ -0,0 +1,30 @@ +//TEST:COMPARE_HLSL: -profile ps_5_0 -entry main -target dxbc-assembly -split-mixed-types +// Make sure we don't crash when desugaring resources +// in structs when a `cbuffer` only contains resources. + +#ifdef __SLANG__ + +cbuffer C +{ + Texture2D t; + SamplerState s; +}; + +float4 main(float2 uv: UV) : SV_Target +{ + return t.Sample(s, uv); +} + +#else + +Texture2D SLANG_parameterBlock_C_t : register(t0); +SamplerState SLANG_parameterBlock_C_s : register(s0); + +float4 main(float2 uv: UV) : SV_Target +{ + return SLANG_parameterBlock_C_t.Sample(SLANG_parameterBlock_C_s, uv); +} + +#endif + + diff --git a/tests/bugs/gh-172.slang b/tests/bugs/gh-172.slang new file mode 100644 index 000000000..f898b5f4b --- /dev/null +++ b/tests/bugs/gh-172.slang @@ -0,0 +1,41 @@ +//TEST:COMPARE_HLSL: -profile ps_5_0 -entry main -target dxbc-assembly -split-mixed-types + +// Make sure we don't crash when desugaring resource in structs, +// when the user also declares multiple variables with a +// single declaration. + +#ifdef __SLANG__ + +cbuffer C +{ + Texture2D t0, t1; + SamplerState s; + float2 uv; +}; + +float4 main() : SV_Target +{ + return t0.Sample(s, uv) + + t1.Sample(s, uv); +} + +#else + +cbuffer C : register(b0) +{ + float2 uv; +}; + +Texture2D SLANG_parameterBlock_C_t0 : register(t0); +Texture2D SLANG_parameterBlock_C_t1 : register(t1); +SamplerState SLANG_parameterBlock_C_s : register(s0); + +float4 main() : SV_Target +{ + return SLANG_parameterBlock_C_t0.Sample(SLANG_parameterBlock_C_s, uv) + + SLANG_parameterBlock_C_t1.Sample(SLANG_parameterBlock_C_s, uv); +} + +#endif + + |
