summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorTim Foley <tfoleyNV@users.noreply.github.com>2018-04-11 16:18:29 -0700
committerGitHub <noreply@github.com>2018-04-11 16:18:29 -0700
commitbaf194e7456ba4568dcf11249896af35b3ce18cc (patch)
treef75e20db450100d41bfa9c384a8bab0fdc28a749 /tests
parent6322983fa4dc84ef1e9dd8fad54d4c1580436e67 (diff)
Introduce an IR-level type system (#481)
* Introduce an IR-level type system Up to this point, the Slang IR has used the front-end type system to represent types in the IR. As a result (but ultimately more importantly) the IR representation of generics and specialization has used AST-level concepts embedded in the IR. For example, to express the specialization of `vector<T,N>` to a concrete type `float` for `T`, we needed an IR operation that could represent the specialization, with operands that somehow represented the type argument `float`. The whole thing was very complicated. The big idea of this change is to introduce a new representation in which types in the IR are just ordinary instructions, so that using them as operands makes sense. The hierarchy of IR types closely mirrors the AST-side hierarchy for now, and that will probably be something we should maintain going forward. In order to make these changes work, though, I also had to do major overhauls of things like the way substitutions are performed, how we check interface conformances, the way lookup through interface types is done, etc. etc. This is a big change, and unfortunately any attempt to summarize it in the commit message wouldn't do it justice. * Fix 64-bit build warning * Fix up some clang warnings/errors
Diffstat (limited to 'tests')
-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
-rw-r--r--tests/bugs/gh-103.slang8
-rw-r--r--tests/bugs/gh-333.slang12
-rw-r--r--tests/bugs/implicit-conversion-binary-op.hlsl2
-rw-r--r--tests/bugs/split-nested-types.hlsl17
-rw-r--r--tests/bugs/split-nested-types.slang4
-rw-r--r--tests/bugs/vec-init-list.hlsl8
-rw-r--r--tests/hlsl/dxsdk/AdaptiveTessellationCS40/Render.hlsl7
-rw-r--r--tests/hlsl/dxsdk/BasicHLSL11/BasicHLSL11_PS.hlsl9
-rw-r--r--tests/hlsl/dxsdk/BasicHLSL11/BasicHLSL11_VS.hlsl7
-rw-r--r--tests/hlsl/dxsdk/CascadedShadowMaps11/RenderCascadeShadow.hlsl6
-rw-r--r--tests/hlsl/dxsdk/Direct3D11Tutorials/Tutorial02/Tutorial02.fx5
-rw-r--r--tests/hlsl/dxsdk/Direct3D11Tutorials/Tutorial03/Tutorial03.fx5
-rw-r--r--tests/hlsl/dxsdk/DynamicShaderLinkage11/DynamicShaderLinkage11_VS.hlsl7
-rw-r--r--tests/hlsl/dxsdk/MultithreadedRendering11/MultithreadedRendering11_VS.hlsl8
-rw-r--r--tests/hlsl/dxsdk/OIT11/SceneVS.hlsl6
-rw-r--r--tests/hlsl/dxsdk/VarianceShadows11/RenderVarianceShadow.hlsl4
-rw-r--r--tests/hlsl/simple/allow-uav-conditional.hlsl4
-rw-r--r--tests/hlsl/simple/compute-numthreads.hlsl4
-rw-r--r--tests/hlsl/simple/literal-typing.hlsl4
-rw-r--r--tests/ir/factorial.slang12
-rw-r--r--tests/ir/loop.slang12
-rw-r--r--tests/parser/cast-precedence.hlsl7
36 files changed, 361 insertions, 57 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
diff --git a/tests/bugs/gh-103.slang b/tests/bugs/gh-103.slang
index b89f38098..5d271d508 100644
--- a/tests/bugs/gh-103.slang
+++ b/tests/bugs/gh-103.slang
@@ -2,6 +2,12 @@
// Ensure that matrix-times-scalar works
+#ifndef __SLANG__
+#define C _SV022SLANG_parameterGroup_C
+#define a _SV022SLANG_ParameterGroup_C1a
+#define b _SV022SLANG_ParameterGroup_C1b
+#endif
+
float4x4 doIt(float4x4 a, float b)
{
return a * b;
@@ -13,7 +19,7 @@ cbuffer C
float b;
};
-float4 main() : SV_Target
+float4 main() : SV_TARGET
{
return doIt(a, b)[0];
}
diff --git a/tests/bugs/gh-333.slang b/tests/bugs/gh-333.slang
index fdc478950..5a0a5769f 100644
--- a/tests/bugs/gh-333.slang
+++ b/tests/bugs/gh-333.slang
@@ -2,6 +2,16 @@
// Ensure declaration order in output is correct
+#ifndef __SLANG__
+#define A _ST01A
+#define x _SV01A1x
+#define B _ST01B
+#define y _SV01B1y
+#define C _SV022SLANG_parameterGroup_CL0
+#define a _SV022SLANG_ParameterGroup_C1a
+#define b _SV022SLANG_ParameterGroup_C1b
+#endif
+
struct A
{
float x;
@@ -19,7 +29,7 @@ cbuffer C
B b;
};
-float4 main() : SV_Target
+float4 main() : SV_TARGET
{
return a.x;
}
diff --git a/tests/bugs/implicit-conversion-binary-op.hlsl b/tests/bugs/implicit-conversion-binary-op.hlsl
index 75ff737da..b9a558474 100644
--- a/tests/bugs/implicit-conversion-binary-op.hlsl
+++ b/tests/bugs/implicit-conversion-binary-op.hlsl
@@ -10,7 +10,7 @@
float4 main(
float4 a : A,
uint4 b : B
- ) : SV_Target
+ ) : SV_TARGET
{
return a * b;
}
diff --git a/tests/bugs/split-nested-types.hlsl b/tests/bugs/split-nested-types.hlsl
index 0a8a8f9ff..8216a4e36 100644
--- a/tests/bugs/split-nested-types.hlsl
+++ b/tests/bugs/split-nested-types.hlsl
@@ -4,11 +4,24 @@
import split_nested_types;
#else
+#define A _ST01A
+#define x _SV01A1x
+
+#define B _ST01B
+#define y _SV01B1y
+
+#define M _ST01M
+#define a _SV01M1a
+#define b _SV01M1b
+
+#define C _SV022SLANG_parameterGroup_CL0
+#define m _SV022SLANG_ParameterGroup_C1m
+
struct A { int x; };
struct B { float y; };
-struct C { Texture2D t; SamplerState s; };
+struct CC { Texture2D t; SamplerState s; };
struct M
{
@@ -23,7 +36,7 @@ cbuffer C
M m;
}
-float4 main() : SV_target
+float4 main() : SV_TARGET
{
return m.b.y;
}
diff --git a/tests/bugs/split-nested-types.slang b/tests/bugs/split-nested-types.slang
index ccf95d906..3bd4e239f 100644
--- a/tests/bugs/split-nested-types.slang
+++ b/tests/bugs/split-nested-types.slang
@@ -4,11 +4,11 @@ struct A { int x; };
struct B { float y; };
-struct C { Texture2D t; SamplerState s; };
+struct CC { Texture2D t; SamplerState s; };
struct M
{
A a;
B b;
- C c;
+ CC c;
};
diff --git a/tests/bugs/vec-init-list.hlsl b/tests/bugs/vec-init-list.hlsl
index be1bc5c6f..d9d0b83f9 100644
--- a/tests/bugs/vec-init-list.hlsl
+++ b/tests/bugs/vec-init-list.hlsl
@@ -2,6 +2,14 @@
// Check handling of initializer list for vector
+#ifndef __SLANG__
+
+#define C _SV022SLANG_parameterGroup_C
+#define a _SV022SLANG_ParameterGroup_C1a
+#define SV_Position SV_POSITION
+
+#endif
+
cbuffer C : register(b0)
{
float4 a;
diff --git a/tests/hlsl/dxsdk/AdaptiveTessellationCS40/Render.hlsl b/tests/hlsl/dxsdk/AdaptiveTessellationCS40/Render.hlsl
index bb05c82fd..73eeb8f81 100644
--- a/tests/hlsl/dxsdk/AdaptiveTessellationCS40/Render.hlsl
+++ b/tests/hlsl/dxsdk/AdaptiveTessellationCS40/Render.hlsl
@@ -1,4 +1,11 @@
//TEST(smoke):COMPARE_HLSL:-no-mangle -profile vs_4_0 -entry RenderBaseVS -profile ps_4_0 -entry RenderPS -target dxbc-assembly
+
+#ifndef __SLANG__
+#define cbPerObject _SV032SLANG_parameterGroup_cbPerObject
+#define g_mWorldViewProjection _SV032SLANG_ParameterGroup_cbPerObject22g_mWorldViewProjection
+#endif
+
+
//--------------------------------------------------------------------------------------
// File: Render.hlsl
//
diff --git a/tests/hlsl/dxsdk/BasicHLSL11/BasicHLSL11_PS.hlsl b/tests/hlsl/dxsdk/BasicHLSL11/BasicHLSL11_PS.hlsl
index 09c5dcc7e..d119653a9 100644
--- a/tests/hlsl/dxsdk/BasicHLSL11/BasicHLSL11_PS.hlsl
+++ b/tests/hlsl/dxsdk/BasicHLSL11/BasicHLSL11_PS.hlsl
@@ -1,4 +1,13 @@
//TEST:COMPARE_HLSL:-no-mangle -target dxbc-assembly -profile ps_4_0 -entry PSMain
+
+#ifndef __SLANG__
+#define cbPerFrame _SV031SLANG_parameterGroup_cbPerFrame
+#define g_vLightDir _SV031SLANG_ParameterGroup_cbPerFrame11g_vLightDir
+#define g_fAmbient _SV031SLANG_ParameterGroup_cbPerFrame10g_fAmbient
+#define g_samLinear _SV011g_samLinear
+#define g_txDiffuse _SV011g_txDiffuse
+#endif
+
//--------------------------------------------------------------------------------------
// File: BasicHLSL11_PS.hlsl
//
diff --git a/tests/hlsl/dxsdk/BasicHLSL11/BasicHLSL11_VS.hlsl b/tests/hlsl/dxsdk/BasicHLSL11/BasicHLSL11_VS.hlsl
index cb2c1b950..6d854a83b 100644
--- a/tests/hlsl/dxsdk/BasicHLSL11/BasicHLSL11_VS.hlsl
+++ b/tests/hlsl/dxsdk/BasicHLSL11/BasicHLSL11_VS.hlsl
@@ -1,4 +1,11 @@
//TEST:COMPARE_HLSL: -target dxbc-assembly -profile vs_4_0 -entry VSMain
+
+#ifndef __SLANG__
+#define cbPerObject _SV032SLANG_parameterGroup_cbPerObject
+#define g_mWorldViewProjection _SV032SLANG_ParameterGroup_cbPerObject22g_mWorldViewProjection
+#define g_mWorld _SV032SLANG_ParameterGroup_cbPerObject8g_mWorld
+#endif
+
//--------------------------------------------------------------------------------------
// File: BasicHLSL11_VS.hlsl
//
diff --git a/tests/hlsl/dxsdk/CascadedShadowMaps11/RenderCascadeShadow.hlsl b/tests/hlsl/dxsdk/CascadedShadowMaps11/RenderCascadeShadow.hlsl
index 3b4d32a0d..0f3b851df 100644
--- a/tests/hlsl/dxsdk/CascadedShadowMaps11/RenderCascadeShadow.hlsl
+++ b/tests/hlsl/dxsdk/CascadedShadowMaps11/RenderCascadeShadow.hlsl
@@ -1,4 +1,10 @@
//TEST:COMPARE_HLSL: -target dxbc-assembly -profile vs_4_0 -entry VSMain -entry VSMainPancake
+
+#ifndef __SLANG__
+#define cbPerObject _SV032SLANG_parameterGroup_cbPerObject
+#define g_mWorldViewProjection _SV032SLANG_ParameterGroup_cbPerObject22g_mWorldViewProjection
+#endif
+
//--------------------------------------------------------------------------------------
// File: RenderCascadeShadow.hlsl
//
diff --git a/tests/hlsl/dxsdk/Direct3D11Tutorials/Tutorial02/Tutorial02.fx b/tests/hlsl/dxsdk/Direct3D11Tutorials/Tutorial02/Tutorial02.fx
index 941e001b3..e4b44b3d1 100644
--- a/tests/hlsl/dxsdk/Direct3D11Tutorials/Tutorial02/Tutorial02.fx
+++ b/tests/hlsl/dxsdk/Direct3D11Tutorials/Tutorial02/Tutorial02.fx
@@ -1,4 +1,9 @@
//TEST:COMPARE_HLSL: -target dxbc-assembly -profile vs_4_0 -entry VS -profile ps_4_0 -entry PS
+
+#ifndef __SLANG__
+#define SV_Target SV_TARGET
+#endif
+
//--------------------------------------------------------------------------------------
// File: Tutorial02.fx
//
diff --git a/tests/hlsl/dxsdk/Direct3D11Tutorials/Tutorial03/Tutorial03.fx b/tests/hlsl/dxsdk/Direct3D11Tutorials/Tutorial03/Tutorial03.fx
index 941e001b3..e4b44b3d1 100644
--- a/tests/hlsl/dxsdk/Direct3D11Tutorials/Tutorial03/Tutorial03.fx
+++ b/tests/hlsl/dxsdk/Direct3D11Tutorials/Tutorial03/Tutorial03.fx
@@ -1,4 +1,9 @@
//TEST:COMPARE_HLSL: -target dxbc-assembly -profile vs_4_0 -entry VS -profile ps_4_0 -entry PS
+
+#ifndef __SLANG__
+#define SV_Target SV_TARGET
+#endif
+
//--------------------------------------------------------------------------------------
// File: Tutorial02.fx
//
diff --git a/tests/hlsl/dxsdk/DynamicShaderLinkage11/DynamicShaderLinkage11_VS.hlsl b/tests/hlsl/dxsdk/DynamicShaderLinkage11/DynamicShaderLinkage11_VS.hlsl
index 800dbf3b3..80f7c452a 100644
--- a/tests/hlsl/dxsdk/DynamicShaderLinkage11/DynamicShaderLinkage11_VS.hlsl
+++ b/tests/hlsl/dxsdk/DynamicShaderLinkage11/DynamicShaderLinkage11_VS.hlsl
@@ -1,4 +1,11 @@
//TEST:COMPARE_HLSL: -target dxbc-assembly -profile vs_4_0 -entry VSMain
+
+#ifndef __SLANG__
+#define cbPerObject _SV032SLANG_parameterGroup_cbPerObject
+#define g_mWorldViewProjection _SV032SLANG_ParameterGroup_cbPerObject22g_mWorldViewProjection
+#define g_mWorld _SV032SLANG_ParameterGroup_cbPerObject8g_mWorld
+#endif
+
//--------------------------------------------------------------------------------------
// File: DynamicShaderLinkage11_VS.hlsl
//
diff --git a/tests/hlsl/dxsdk/MultithreadedRendering11/MultithreadedRendering11_VS.hlsl b/tests/hlsl/dxsdk/MultithreadedRendering11/MultithreadedRendering11_VS.hlsl
index 0d8d32ffa..c2239293e 100644
--- a/tests/hlsl/dxsdk/MultithreadedRendering11/MultithreadedRendering11_VS.hlsl
+++ b/tests/hlsl/dxsdk/MultithreadedRendering11/MultithreadedRendering11_VS.hlsl
@@ -1,4 +1,12 @@
//TEST:COMPARE_HLSL: -target dxbc-assembly -profile vs_4_0 -entry VSMain
+
+#ifndef __SLANG__
+#define cbPerObject _SV032SLANG_parameterGroup_cbPerObject
+#define g_mWorld _SV032SLANG_ParameterGroup_cbPerObject8g_mWorld
+#define cbPerScene _SV031SLANG_parameterGroup_cbPerScene
+#define g_mViewProj _SV031SLANG_ParameterGroup_cbPerScene11g_mViewProj
+#endif
+
//--------------------------------------------------------------------------------------
// File: MultithreadedRendering11_VS.hlsl
//
diff --git a/tests/hlsl/dxsdk/OIT11/SceneVS.hlsl b/tests/hlsl/dxsdk/OIT11/SceneVS.hlsl
index 2f985d1d1..b361df0d6 100644
--- a/tests/hlsl/dxsdk/OIT11/SceneVS.hlsl
+++ b/tests/hlsl/dxsdk/OIT11/SceneVS.hlsl
@@ -1,4 +1,10 @@
//TEST:COMPARE_HLSL: -target dxbc-assembly -profile vs_4_0 -entry SceneVS
+
+#ifndef __SLANG__
+#define cbPerObject _SV032SLANG_parameterGroup_cbPerObject
+#define g_mWorldViewProjection _SV032SLANG_ParameterGroup_cbPerObject22g_mWorldViewProjection
+#endif
+
//-----------------------------------------------------------------------------
// File: SceneVS.hlsl
//
diff --git a/tests/hlsl/dxsdk/VarianceShadows11/RenderVarianceShadow.hlsl b/tests/hlsl/dxsdk/VarianceShadows11/RenderVarianceShadow.hlsl
index 9837bf299..af5ba6343 100644
--- a/tests/hlsl/dxsdk/VarianceShadows11/RenderVarianceShadow.hlsl
+++ b/tests/hlsl/dxsdk/VarianceShadows11/RenderVarianceShadow.hlsl
@@ -1,5 +1,9 @@
//TEST:COMPARE_HLSL: -target dxbc-assembly -profile vs_4_0 -entry VSMain -profile ps_4_0 -entry PSMain
+#ifndef __SLANG__
+#define cbPerObject _SV032SLANG_parameterGroup_cbPerObject
+#define g_mWorldViewProjection _SV032SLANG_ParameterGroup_cbPerObject22g_mWorldViewProjection
+#endif
//--------------------------------------------------------------------------------------
// Globals
diff --git a/tests/hlsl/simple/allow-uav-conditional.hlsl b/tests/hlsl/simple/allow-uav-conditional.hlsl
index 1526244a2..3f12c9be8 100644
--- a/tests/hlsl/simple/allow-uav-conditional.hlsl
+++ b/tests/hlsl/simple/allow-uav-conditional.hlsl
@@ -2,6 +2,10 @@
// Check output for `[allow_uav_conditional]`
+#ifndef __SLANG__
+#define gBuffer _SV07gBuffer
+#endif
+
RWStructuredBuffer<uint> gBuffer : register(u0);
[numthreads(16,1,1)]
diff --git a/tests/hlsl/simple/compute-numthreads.hlsl b/tests/hlsl/simple/compute-numthreads.hlsl
index ba18a8d16..4f3291671 100644
--- a/tests/hlsl/simple/compute-numthreads.hlsl
+++ b/tests/hlsl/simple/compute-numthreads.hlsl
@@ -2,6 +2,10 @@
// Confirm that we properly pass along the `numthreads` attribute on an entry point.
+#ifndef __SLANG__
+#define b _SV01b
+#endif
+
RWStructuredBuffer<float> b;
[numthreads(32,1,1)]
diff --git a/tests/hlsl/simple/literal-typing.hlsl b/tests/hlsl/simple/literal-typing.hlsl
index 359b875f9..48ea5b2cb 100644
--- a/tests/hlsl/simple/literal-typing.hlsl
+++ b/tests/hlsl/simple/literal-typing.hlsl
@@ -17,6 +17,10 @@ Bad foo(int x) { Bad b; b.bad = x; return b; }
// we either respect the suffix and call the right overload,
// or ignore it and call the wrong one.
+#ifndef __SLANG__
+#define b _SV01b
+#endif
+
RWStructuredBuffer<uint> b;
[numthreads(32,1,1)]
void main(uint3 tid : SV_DispatchThreadID)
diff --git a/tests/ir/factorial.slang b/tests/ir/factorial.slang
index 0ceff29bd..76653f055 100644
--- a/tests/ir/factorial.slang
+++ b/tests/ir/factorial.slang
@@ -1,4 +1,14 @@
-//TEST:EVAL:
+//TEST_DISABLED:EVAL:
+
+// Note: This test has been disabled as part of introducing
+// the IR-level type system, because it changes the overall
+// structure of IR moduels quite a bit, and no user code
+// actually relies on the serialized IR or VM.
+//
+// This test should ideally be re-enabled once work is
+// done to revamp the serialized bytecode format into
+// something more essential to the compiler (e.g., for
+// modular separate compilation).
StructuredBuffer<int> input;
RWStructuredBuffer<int> output;
diff --git a/tests/ir/loop.slang b/tests/ir/loop.slang
index ddbd7ecb0..32eb41f1b 100644
--- a/tests/ir/loop.slang
+++ b/tests/ir/loop.slang
@@ -1,4 +1,14 @@
-//TEST:SIMPLE:-dump-ir -profile cs_5_0 -entry main
+//TEST_DISABLED:SIMPLE:-dump-ir -profile cs_5_0 -entry main
+
+// Note: disabling this test for now because
+// the actual IR that gets dumped is not very
+// stable with code generation changes going on,
+// and we already have more significant tests
+// that stress the IR functionality.
+//
+// We should consider removing this test, or
+// else work to ensure that "canonical" IR
+// output is more consistent.
#define GROUP_THREAD_COUNT 64
diff --git a/tests/parser/cast-precedence.hlsl b/tests/parser/cast-precedence.hlsl
index d5d0b0322..33cb5983c 100644
--- a/tests/parser/cast-precedence.hlsl
+++ b/tests/parser/cast-precedence.hlsl
@@ -3,6 +3,13 @@
// Confirm that type-cast expressions parse with
// the appropriate precedence.
+#ifndef __SLANG__
+#define C _SV022SLANG_parameterGroup_C
+#define a _SV022SLANG_ParameterGroup_C1a
+#define b _SV022SLANG_ParameterGroup_C1b
+#define SV_Position SV_POSITION
+#endif
+
cbuffer C : register(b0)
{
float a;