summaryrefslogtreecommitdiffstats
path: root/tests/bindings
diff options
context:
space:
mode:
Diffstat (limited to 'tests/bindings')
-rw-r--r--tests/bindings/array-of-struct-of-resource.hlsl6
-rw-r--r--tests/bindings/binding0.hlsl8
-rw-r--r--tests/bindings/binding1.hlsl19
-rw-r--r--tests/bindings/explicit-binding.hlsl20
-rw-r--r--tests/bindings/glsl-parameter-blocks.slang3
-rw-r--r--tests/bindings/glsl-parameter-blocks.slang.glsl41
-rw-r--r--tests/bindings/multi-file-extra.hlsl32
-rw-r--r--tests/bindings/multi-file.hlsl66
-rw-r--r--tests/bindings/multiple-parameter-blocks.slang2
-rw-r--r--tests/bindings/packoffset.hlsl13
-rw-r--r--tests/bindings/parameter-blocks.slang6
-rw-r--r--tests/bindings/resources-in-cbuffer.hlsl32
-rw-r--r--tests/bindings/targets-and-uavs-structure.hlsl5
-rw-r--r--tests/bindings/targets-and-uavs.hlsl7
14 files changed, 212 insertions, 48 deletions
diff --git a/tests/bindings/array-of-struct-of-resource.hlsl b/tests/bindings/array-of-struct-of-resource.hlsl
index 71492ef49..8ba71c7a3 100644
--- a/tests/bindings/array-of-struct-of-resource.hlsl
+++ b/tests/bindings/array-of-struct-of-resource.hlsl
@@ -27,11 +27,15 @@ float4 main() : SV_Target
#else
+#define a _SV04testL0
+#define b _SV04testL1
+#define s _SV01s
+
Texture2D a[2];
Texture2D b[2];
SamplerState s;
-float4 main() : SV_Target
+float4 main() : SV_TARGET
{
return use(a[0],s)
+ use(b[0],s)
diff --git a/tests/bindings/binding0.hlsl b/tests/bindings/binding0.hlsl
index 9ca092562..fcd7e7b54 100644
--- a/tests/bindings/binding0.hlsl
+++ b/tests/bindings/binding0.hlsl
@@ -8,6 +8,12 @@
#define R(X) /**/
#else
#define R(X) X
+
+#define C _SV022SLANG_parameterGroup_C
+#define t _SV01t
+#define s _SV01s
+#define c _SV022SLANG_ParameterGroup_C1c
+
#endif
float4 use(float4 val) { return val; };
@@ -21,7 +27,7 @@ cbuffer C R(: register(b0))
float c;
}
-float4 main() : SV_Target
+float4 main() : SV_TARGET
{
return use(t,s) + use(c);
} \ No newline at end of file
diff --git a/tests/bindings/binding1.hlsl b/tests/bindings/binding1.hlsl
index 879a19816..adc06edaa 100644
--- a/tests/bindings/binding1.hlsl
+++ b/tests/bindings/binding1.hlsl
@@ -15,15 +15,22 @@
#define R(X) /**/
#else
#define R(X) X
+
+#define tB _SV02tB
+#define sB _SV02sB
+
+#define C1 _SV023SLANG_parameterGroup_C1
+#define c1 _SV023SLANG_ParameterGroup_C12c1
+
#endif
float4 use(float4 val) { return val; };
float4 use(Texture2D t, SamplerState s) { return t.Sample(s, 0.0); }
-Texture2D t0 R(: register(t0));
-Texture2D t1 R(: register(t1));
-SamplerState s0 R(: register(s0));
-SamplerState s1 R(: register(s1));
+Texture2D tA R(: register(t0));
+Texture2D tB R(: register(t1));
+SamplerState sA R(: register(s0));
+SamplerState sB R(: register(s1));
cbuffer C0 R(: register(b0))
{
@@ -35,7 +42,7 @@ cbuffer C1 R(: register(b1))
float c1;
}
-float4 main() : SV_Target
+float4 main() : SV_TARGET
{
- return use(t1,s1) + use(c1);
+ return use(tB,sB) + use(c1);
} \ No newline at end of file
diff --git a/tests/bindings/explicit-binding.hlsl b/tests/bindings/explicit-binding.hlsl
index 313f5a091..758be959b 100644
--- a/tests/bindings/explicit-binding.hlsl
+++ b/tests/bindings/explicit-binding.hlsl
@@ -7,6 +7,24 @@
#define R(X) /**/
#else
#define R(X) X
+
+#define CA _SV023SLANG_parameterGroup_CA
+#define ca _SV023SLANG_ParameterGroup_CA2ca
+
+#define CB _SV023SLANG_parameterGroup_CB
+#define cb _SV023SLANG_ParameterGroup_CB2cb
+
+#define CC _SV023SLANG_parameterGroup_CC
+#define cc _SV023SLANG_ParameterGroup_CC2cc
+
+#define sa _SV02sa
+#define sb _SV02sb
+#define sc _SV02sc
+
+#define ta _SV02ta
+#define tb _SV02tb
+#define tc _SV02tc
+
#endif
float4 use(float4 val) { return val; };
@@ -46,7 +64,7 @@ cbuffer CC : register(b9)
float cc;
}
-float4 main() : SV_Target
+float4 main() : SV_TARGET
{
// Go ahead and use everything in this case:
return use(ta, sa) + use(ca)
diff --git a/tests/bindings/glsl-parameter-blocks.slang b/tests/bindings/glsl-parameter-blocks.slang
index 48eacbb0f..d356df775 100644
--- a/tests/bindings/glsl-parameter-blocks.slang
+++ b/tests/bindings/glsl-parameter-blocks.slang
@@ -1,9 +1,6 @@
#version 450 core
//TEST:CROSS_COMPILE: -profile ps_5_0 -entry main -target spirv-assembly
-// Note: disabled because the translation of `Texture2D.Sample()`
-// requires handling of local variables with resource types in the IR.
-
struct Test
{
float4 a;
diff --git a/tests/bindings/glsl-parameter-blocks.slang.glsl b/tests/bindings/glsl-parameter-blocks.slang.glsl
index d05eea485..b65ee0e49 100644
--- a/tests/bindings/glsl-parameter-blocks.slang.glsl
+++ b/tests/bindings/glsl-parameter-blocks.slang.glsl
@@ -1,39 +1,56 @@
//TEST_IGNORE_FILE:
#version 450 core
-struct _ST04Test
+#define Test _ST04Test
+#define a _SV04Test1a
+
+#define gTest _SV05gTestL0
+#define gTest_t _SV05gTestL1
+#define gTest_s _SV05gTestL2
+
+#define ParameterBlock_gTest _S1
+
+#define main_result _S2
+#define uv _S3
+
+#define temp_uv _S4
+#define temp_a _S5
+#define temp_sample _S6
+#define temp_add _S7
+
+struct Test
{
vec4 a;
};
layout(binding = 0, set = 1)
-uniform _S1
+uniform ParameterBlock_gTest
{
- _ST04Test _SV05gTestL0;
+ Test gTest;
};
layout(binding = 1, set = 1)
-uniform texture2D _SV05gTestL1;
+uniform texture2D gTest_t;
layout(binding = 2, set = 1)
-uniform sampler _SV05gTestL2;
+uniform sampler gTest_s;
layout(location = 0)
-out vec4 _S2;
+out vec4 main_result;
layout(location = 0)
-in vec2 _S3;
+in vec2 uv;
void main()
{
- vec2 _S4 = _S3;
+ vec2 temp_uv = uv;
- vec4 _S5 = _SV05gTestL0.a;
+ vec4 temp_a = gTest.a;
- vec4 _S6 = texture(sampler2D(_SV05gTestL1, _SV05gTestL2), _S4);
+ vec4 temp_sample = texture(sampler2D(gTest_t, gTest_s), temp_uv);
- vec4 _S7 = _S5 + _S6;
- _S2 = _S7;
+ vec4 temp_add = temp_a + temp_sample;
+ main_result = temp_add;
return;
}
diff --git a/tests/bindings/multi-file-extra.hlsl b/tests/bindings/multi-file-extra.hlsl
index 7852d7c48..8bf8be414 100644
--- a/tests/bindings/multi-file-extra.hlsl
+++ b/tests/bindings/multi-file-extra.hlsl
@@ -9,6 +9,36 @@
#define R(X) /**/
#else
#define R(X) X
+
+#define sharedC _SV028SLANG_parameterGroup_sharedC
+#define sharedCA _SV028SLANG_ParameterGroup_sharedC8sharedCA
+#define sharedCB _SV028SLANG_ParameterGroup_sharedC8sharedCB
+#define sharedCC _SV028SLANG_ParameterGroup_sharedC8sharedCC
+#define sharedCD _SV028SLANG_ParameterGroup_sharedC8sharedCD
+
+#define vertexC _SV028SLANG_parameterGroup_vertexC
+#define vertexCA _SV028SLANG_ParameterGroup_vertexC8vertexCA
+#define vertexCB _SV028SLANG_ParameterGroup_vertexC8vertexCB
+#define vertexCC _SV028SLANG_ParameterGroup_vertexC8vertexCC
+#define vertexCD _SV028SLANG_ParameterGroup_vertexC8vertexCD
+
+#define fragmentC _SV030SLANG_parameterGroup_fragmentC
+#define fragmentCA _SV030SLANG_ParameterGroup_fragmentC10fragmentCA
+#define fragmentCB _SV030SLANG_ParameterGroup_fragmentC10fragmentCB
+#define fragmentCC _SV030SLANG_ParameterGroup_fragmentC10fragmentCC
+#define fragmentCD _SV030SLANG_ParameterGroup_fragmentC10fragmentCD
+
+#define sharedS _SV07sharedS
+#define sharedT _SV07sharedT
+#define sharedTV _SV08sharedTV
+#define sharedTF _SV08sharedTF
+
+#define vertexS _SV07vertexS
+#define vertexT _SV07vertexT
+
+#define fragmentS _SV09fragmentS
+#define fragmentT _SV09fragmentT
+
#endif
float4 use(float val) { return val; };
@@ -48,7 +78,7 @@ Texture2D sharedTV R(: register(t2));
Texture2D sharedTF R(: register(t3));
-float4 main() : SV_Target
+float4 main() : SV_TARGET
{
// Go ahead and use everything here, just to make sure things got placed correctly
return use(sharedT, sharedS)
diff --git a/tests/bindings/multi-file.hlsl b/tests/bindings/multi-file.hlsl
index 4038ea3ca..bc00b0f69 100644
--- a/tests/bindings/multi-file.hlsl
+++ b/tests/bindings/multi-file.hlsl
@@ -10,6 +10,36 @@
#define R(X) /**/
#else
#define R(X) X
+
+#define sharedC _SV028SLANG_parameterGroup_sharedC
+#define sharedCA _SV028SLANG_ParameterGroup_sharedC8sharedCA
+#define sharedCB _SV028SLANG_ParameterGroup_sharedC8sharedCB
+#define sharedCC _SV028SLANG_ParameterGroup_sharedC8sharedCC
+#define sharedCD _SV028SLANG_ParameterGroup_sharedC8sharedCD
+
+#define vertexC _SV028SLANG_parameterGroup_vertexC
+#define vertexCA _SV028SLANG_ParameterGroup_vertexC8vertexCA
+#define vertexCB _SV028SLANG_ParameterGroup_vertexC8vertexCB
+#define vertexCC _SV028SLANG_ParameterGroup_vertexC8vertexCC
+#define vertexCD _SV028SLANG_ParameterGroup_vertexC8vertexCD
+
+#define fragmentC _SV030SLANG_parameterGroup_fragmentC
+#define fragmentCA _SV030SLANG_ParameterGroup_fragmentC10fragmentCA
+#define fragmentCB _SV030SLANG_ParameterGroup_fragmentC10fragmentCB
+#define fragmentCC _SV030SLANG_ParameterGroup_fragmentC10fragmentCC
+#define fragmentCD _SV030SLANG_ParameterGroup_fragmentC10fragmentCD
+
+#define sharedS _SV07sharedS
+#define sharedT _SV07sharedT
+#define sharedTV _SV08sharedTV
+#define sharedTF _SV08sharedTF
+
+#define vertexS _SV07vertexS
+#define vertexT _SV07vertexT
+
+#define fragmentS _SV09fragmentS
+#define fragmentT _SV09fragmentT
+
#endif
float4 use(float val) { return val; };
@@ -18,8 +48,8 @@ float4 use(float3 val) { return float4(val,0.0); };
float4 use(float4 val) { return val; };
float4 use(Texture2D t, SamplerState s)
{
- // This is the vertex shader, so we can't do implicit-gradient sampling
- return t.SampleGrad(s, 0.0, 0.0, 0.0);
+ // This is the vertex shader, so we can't do implicit-gradient sampling
+ return t.SampleGrad(s, 0.0, 0.0, 0.0);
}
// Start with some parameters that will appear in both shaders
@@ -27,10 +57,10 @@ Texture2D sharedT R(: register(t0));
SamplerState sharedS R(: register(s0));
cbuffer sharedC R(: register(b0))
{
- float3 sharedCA R(: packoffset(c0));
- float sharedCB R(: packoffset(c0.w));
- float3 sharedCC R(: packoffset(c1));
- float2 sharedCD R(: packoffset(c2));
+ float3 sharedCA R(: packoffset(c0));
+ float sharedCB R(: packoffset(c0.w));
+ float3 sharedCC R(: packoffset(c1));
+ float2 sharedCD R(: packoffset(c2));
}
// Then some parameters specific to this shader
@@ -41,10 +71,10 @@ Texture2D vertexT R(: register(t1));
SamplerState vertexS R(: register(s1));
cbuffer vertexC R(: register(b1))
{
- float3 vertexCA R(: packoffset(c0));
- float vertexCB R(: packoffset(c0.w));
- float3 vertexCC R(: packoffset(c1));
- float2 vertexCD R(: packoffset(c2));
+ float3 vertexCA R(: packoffset(c0));
+ float vertexCB R(: packoffset(c0.w));
+ float3 vertexCC R(: packoffset(c1));
+ float2 vertexCD R(: packoffset(c2));
}
// And end with some shared parameters again
@@ -52,13 +82,13 @@ Texture2D sharedTV R(: register(t2));
Texture2D sharedTF R(: register(t3));
-float4 main() : SV_Position
+float4 main() : SV_POSITION
{
- // Go ahead and use everything here, just to make sure things got placed correctly
- return use(sharedT, sharedS)
- + use(sharedCD)
- + use(vertexT, vertexS)
- + use(vertexCD)
- + use(sharedTV, vertexS)
- ;
+ // Go ahead and use everything here, just to make sure things got placed correctly
+ return use(sharedT, sharedS)
+ + use(sharedCD)
+ + use(vertexT, vertexS)
+ + use(vertexCD)
+ + use(sharedTV, vertexS)
+ ;
} \ No newline at end of file
diff --git a/tests/bindings/multiple-parameter-blocks.slang b/tests/bindings/multiple-parameter-blocks.slang
index 2b0a38c1c..96a78316a 100644
--- a/tests/bindings/multiple-parameter-blocks.slang
+++ b/tests/bindings/multiple-parameter-blocks.slang
@@ -37,7 +37,7 @@ Texture2D _SV02p1L0 : register(t0, space1);
Texture2D _SV02p1L1[4] : register(t1, space1);
SamplerState _SV02p1L2 : register(s0, space1);
-float4 main(float v : V) : SV_Target
+float4 main(float v : V) : SV_TARGET
{
return use(_SV01pL0, _SV01pL2)
+ use(_SV01pL1[int(v)], _SV01pL2)
diff --git a/tests/bindings/packoffset.hlsl b/tests/bindings/packoffset.hlsl
index 69cebdc40..5b8650a9b 100644
--- a/tests/bindings/packoffset.hlsl
+++ b/tests/bindings/packoffset.hlsl
@@ -7,6 +7,17 @@
#define R(X) /**/
#else
#define R(X) X
+
+#define CA _SV023SLANG_parameterGroup_CAL0
+#define ca _SV023SLANG_ParameterGroup_CA2ca
+#define cb _SV023SLANG_ParameterGroup_CA2cb
+#define cc _SV023SLANG_ParameterGroup_CA2cc
+#define cd _SV023SLANG_ParameterGroup_CA2cd
+#define ce _SV023SLANG_ParameterGroup_CA2ce
+
+#define ta _SV023SLANG_parameterGroup_CAL1
+#define sa _SV023SLANG_parameterGroup_CAL2
+
#endif
float4 use(float val) { return val; };
@@ -27,7 +38,7 @@ cbuffer CA R(: register(b0))
SamplerState sa R(: register(s0));
}
-float4 main() : SV_Target
+float4 main() : SV_TARGET
{
// Go ahead and use everything in this case:
return use(ta, sa)
diff --git a/tests/bindings/parameter-blocks.slang b/tests/bindings/parameter-blocks.slang
index ae5d9a647..62503e49b 100644
--- a/tests/bindings/parameter-blocks.slang
+++ b/tests/bindings/parameter-blocks.slang
@@ -26,11 +26,15 @@ float4 main(float v : V) : SV_Target
#else
+#define t _SV01pL0
+#define ta _SV01pL1
+#define s _SV01pL2
+
Texture2D t : register(t0, space0);
Texture2D ta[4] : register(t1, space0);
SamplerState s : register(s0, space0);
-float4 main(float v : V) : SV_Target
+float4 main(float v : V) : SV_TARGET
{
return use(ta[int(v)], s)
+ use(t, s);
diff --git a/tests/bindings/resources-in-cbuffer.hlsl b/tests/bindings/resources-in-cbuffer.hlsl
index 647e64c32..5706bd39c 100644
--- a/tests/bindings/resources-in-cbuffer.hlsl
+++ b/tests/bindings/resources-in-cbuffer.hlsl
@@ -8,6 +8,36 @@
#define R(X) /**/
#else
#define R(X) X
+
+#define CA _SV023SLANG_parameterGroup_CAL0
+#define caa _SV023SLANG_ParameterGroup_CA3caa
+#define cab _SV023SLANG_ParameterGroup_CA3cab
+#define cac _SV023SLANG_ParameterGroup_CA3cac
+#define cad _SV023SLANG_ParameterGroup_CA3cad
+#define cae _SV023SLANG_ParameterGroup_CA3cae
+#define ta _SV023SLANG_parameterGroup_CAL1
+#define sa _SV023SLANG_parameterGroup_CAL2
+
+#define CB _SV023SLANG_parameterGroup_CBL0
+#define cba _SV023SLANG_ParameterGroup_CB3cba
+#define cbb _SV023SLANG_ParameterGroup_CB3cbb
+#define cbc _SV023SLANG_ParameterGroup_CB3cbc
+#define cbd _SV023SLANG_ParameterGroup_CB3cbd
+#define cbe _SV023SLANG_ParameterGroup_CB3cbe
+#define tbx _SV023SLANG_parameterGroup_CBL1
+#define tby _SV023SLANG_parameterGroup_CBL2
+#define sb _SV023SLANG_parameterGroup_CBL3
+
+#define CC _SV023SLANG_parameterGroup_CCL0
+#define cca _SV023SLANG_ParameterGroup_CC3cca
+#define ccb _SV023SLANG_ParameterGroup_CC3ccb
+#define ccc _SV023SLANG_ParameterGroup_CC3ccc
+#define ccd _SV023SLANG_ParameterGroup_CC3ccd
+#define cce _SV023SLANG_ParameterGroup_CC3cce
+#define tc _SV023SLANG_parameterGroup_CCL1
+#define scx _SV023SLANG_parameterGroup_CCL2
+#define scy _SV023SLANG_parameterGroup_CCL3
+
#endif
float4 use(float val) { return val; };
@@ -54,7 +84,7 @@ cbuffer CC R(: register(b2))
SamplerState scy R(: register(s3));
}
-float4 main() : SV_Target
+float4 main() : SV_TARGET
{
// Go ahead and use everything in this case:
return use(ta, sa)
diff --git a/tests/bindings/targets-and-uavs-structure.hlsl b/tests/bindings/targets-and-uavs-structure.hlsl
index 6c9ee0340..359083069 100644
--- a/tests/bindings/targets-and-uavs-structure.hlsl
+++ b/tests/bindings/targets-and-uavs-structure.hlsl
@@ -7,6 +7,11 @@
#define R(X) /**/
#else
#define R(X) X
+
+#define Foo _ST03Foo
+#define v _SV03Foo1v
+#define fooBuffer _SV09fooBuffer
+
#endif
float4 use(float val) { return val; };
diff --git a/tests/bindings/targets-and-uavs.hlsl b/tests/bindings/targets-and-uavs.hlsl
index ad0d84e5c..24efa418c 100644
--- a/tests/bindings/targets-and-uavs.hlsl
+++ b/tests/bindings/targets-and-uavs.hlsl
@@ -9,6 +9,11 @@
#define R(X) /**/
#else
#define R(X) X
+
+#define Foo _ST03Foo
+#define v _SV03Foo1v
+#define fooBuffer _SV09fooBuffer
+
#endif
float4 use(float val) { return val; };
@@ -22,7 +27,7 @@ struct Foo { float2 v; };
// This should be allocated a register *after* the render target
RWStructuredBuffer<Foo> fooBuffer R(: register(u1));
-float4 main() : SV_Target
+float4 main() : SV_TARGET
{
return use(fooBuffer[12].v);
} \ No newline at end of file