summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/bindings/multiple-parameter-blocks.slang48
-rw-r--r--tests/bindings/parameter-blocks.slang39
-rw-r--r--tests/bugs/gh-171.slang6
-rw-r--r--tests/bugs/gh-172.slang10
-rw-r--r--tests/rewriter/resources-in-structs.glsl8
-rw-r--r--tests/rewriter/type-splitting.hlsl6
6 files changed, 102 insertions, 15 deletions
diff --git a/tests/bindings/multiple-parameter-blocks.slang b/tests/bindings/multiple-parameter-blocks.slang
new file mode 100644
index 000000000..0fdf7d429
--- /dev/null
+++ b/tests/bindings/multiple-parameter-blocks.slang
@@ -0,0 +1,48 @@
+//TEST:COMPARE_HLSL:-no-mangle -use-ir -target dxbc-assembly -profile ps_5_1 -entry main
+
+// Confirm that Slang `ParameterBlock<T>` generates
+// parameter bindings like we expect.
+
+
+float4 use(float4 val) { return val; };
+float4 use(Texture2D t, SamplerState s) { return t.Sample(s, 0.0); }
+
+#ifdef __SLANG__
+
+struct S
+{
+ Texture2D t;
+ Texture2D ta[4];
+ SamplerState s;
+};
+
+ParameterBlock<S> p;
+ParameterBlock<S> p1;
+
+float4 main(float v : V) : SV_Target
+{
+ return use(p.t, p.s)
+ + use(p.ta[int(v)], p.s)
+ + use(p1.t, p1.s)
+ + use(p1.ta[int(v)], p1.s);
+}
+
+#else
+
+Texture2D _S1 : register(t0, space0);
+Texture2D _S2[4] : register(t1, space0);
+SamplerState _S3 : register(s0, space0);
+
+Texture2D _S12 : register(t0, space1);
+Texture2D _S13[4] : register(t1, space1);
+SamplerState _S14 : register(s0, space1);
+
+float4 main(float v : V) : SV_Target
+{
+ return use(_S1, _S3)
+ + use(_S2[int(v)], _S3)
+ + use(_S12, _S14)
+ + use(_S13[int(v)], _S14);
+}
+
+#endif
diff --git a/tests/bindings/parameter-blocks.slang b/tests/bindings/parameter-blocks.slang
new file mode 100644
index 000000000..cd916f144
--- /dev/null
+++ b/tests/bindings/parameter-blocks.slang
@@ -0,0 +1,39 @@
+//TEST:COMPARE_HLSL:-no-mangle -use-ir -target dxbc-assembly -profile ps_5_1 -entry main
+
+// Confirm that Slang `ParameterBlock<T>` generates
+// parameter bindings like we expect.
+
+
+float4 use(float4 val) { return val; };
+float4 use(Texture2D t, SamplerState s) { return t.Sample(s, 0.0); }
+
+#ifdef __SLANG__
+
+struct S
+{
+ Texture2D t;
+ Texture2D ta[4];
+ SamplerState s;
+};
+
+ParameterBlock<S> p;
+
+float4 main(float v : V) : SV_Target
+{
+ return use(p.ta[int(v)], p.s)
+ + use(p.t, p.s);
+}
+
+#else
+
+Texture2D _S1 : register(t0, space0);
+Texture2D _S2[4] : register(t1, space0);
+SamplerState _S3 : register(s0, space0);
+
+float4 main(float v : V) : SV_Target
+{
+ return use(_S2[int(v)], _S3)
+ + use(_S1, _S3);
+}
+
+#endif
diff --git a/tests/bugs/gh-171.slang b/tests/bugs/gh-171.slang
index b37f77ce2..1df82501e 100644
--- a/tests/bugs/gh-171.slang
+++ b/tests/bugs/gh-171.slang
@@ -17,12 +17,12 @@ float4 main(float2 uv: UV) : SV_Target
#else
-Texture2D SLANG_parameterBlock_C_t : register(t0);
-SamplerState SLANG_parameterBlock_C_s : register(s0);
+Texture2D SLANG_parameterGroup_C_t : register(t0);
+SamplerState SLANG_parameterGroup_C_s : register(s0);
float4 main(float2 uv: UV) : SV_Target
{
- return SLANG_parameterBlock_C_t.Sample(SLANG_parameterBlock_C_s, uv);
+ return SLANG_parameterGroup_C_t.Sample(SLANG_parameterGroup_C_s, uv);
}
#endif
diff --git a/tests/bugs/gh-172.slang b/tests/bugs/gh-172.slang
index f898b5f4b..f959c7ac6 100644
--- a/tests/bugs/gh-172.slang
+++ b/tests/bugs/gh-172.slang
@@ -26,14 +26,14 @@ 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);
+Texture2D SLANG_parameterGroup_C_t0 : register(t0);
+Texture2D SLANG_parameterGroup_C_t1 : register(t1);
+SamplerState SLANG_parameterGroup_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);
+ return SLANG_parameterGroup_C_t0.Sample(SLANG_parameterGroup_C_s, uv)
+ + SLANG_parameterGroup_C_t1.Sample(SLANG_parameterGroup_C_s, uv);
}
#endif
diff --git a/tests/rewriter/resources-in-structs.glsl b/tests/rewriter/resources-in-structs.glsl
index 206e4a8d8..8df64f244 100644
--- a/tests/rewriter/resources-in-structs.glsl
+++ b/tests/rewriter/resources-in-structs.glsl
@@ -42,10 +42,10 @@ uniform U
};
layout(binding = 1)
-uniform texture2D SLANG_parameterBlock_U_m_t;
+uniform texture2D SLANG_parameterGroup_U_m_t;
layout(binding = 2)
-uniform sampler SLANG_parameterBlock_U_m_s;
+uniform sampler SLANG_parameterGroup_U_m_s;
layout(location = 0)
in vec2 uv;
@@ -58,8 +58,8 @@ void main()
Material SLANG_tmp_0 = m;
color = evaluateMaterial(
SLANG_tmp_0,
- SLANG_parameterBlock_U_m_t,
- SLANG_parameterBlock_U_m_s, uv);
+ SLANG_parameterGroup_U_m_t,
+ SLANG_parameterGroup_U_m_s, uv);
}
#endif
diff --git a/tests/rewriter/type-splitting.hlsl b/tests/rewriter/type-splitting.hlsl
index c8d69f5fd..b3cad1ce0 100644
--- a/tests/rewriter/type-splitting.hlsl
+++ b/tests/rewriter/type-splitting.hlsl
@@ -47,12 +47,12 @@ cbuffer C
Foo foo;
}
-Texture2D SLANG_parameterBlock_C_foo_t;
-SamplerState SLANG_parameterBlock_C_foo_s;
+Texture2D SLANG_parameterGroup_C_foo_t;
+SamplerState SLANG_parameterGroup_C_foo_s;
float4 main() : SV_Target
{
- return SLANG_parameterBlock_C_foo_t.Sample(SLANG_parameterBlock_C_foo_s, foo.u);
+ return SLANG_parameterGroup_C_foo_t.Sample(SLANG_parameterGroup_C_foo_s, foo.u);
}
#endif