summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2024-12-05 19:33:55 -0800
committerGitHub <noreply@github.com>2024-12-06 03:33:55 +0000
commit7dabfa76ccfb396e9d2019e2b6e01259d1661dc5 (patch)
tree8f9a39b9d25d04051d02e63450f66c852d744e62 /tests
parentecc5a39feecbf73feedf352214406c8752af798a (diff)
Implement explciit binding for metal and wgsl. (#5778)
* Respect explicit bindings in wgsl emit. * Implement explciit binding generation for metal and wgsl. * Update toc. * Fix warnings in tests. * Fix tests. --------- Co-authored-by: Ellie Hermaszewska <ellieh@nvidia.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/bugs/gh-471.slang2
-rw-r--r--tests/bugs/gh-775.slang2
-rw-r--r--tests/bugs/static-method.slang2
-rw-r--r--tests/bugs/static-var.slang2
-rw-r--r--tests/bugs/texture2d-gather.hlsl5
-rw-r--r--tests/bugs/type-legalize-bug-1.slang2
-rw-r--r--tests/compute/break-stmt.slang2
-rw-r--r--tests/compute/continue-stmt.slang2
-rw-r--r--tests/compute/default-initializer.slang2
-rw-r--r--tests/compute/explicit-this-expr.slang2
-rw-r--r--tests/compute/generics-constrained.slang1
-rw-r--r--tests/compute/global-init.slang2
-rw-r--r--tests/compute/implicit-generic-app.slang2
-rw-r--r--tests/compute/implicit-this-expr.slang2
-rw-r--r--tests/compute/init-list-defaults.slang2
-rw-r--r--tests/compute/inout.slang2
-rw-r--r--tests/compute/multiple-continue-sites.slang2
-rw-r--r--tests/compute/struct-default-init.slang2
-rw-r--r--tests/compute/switch-stmt.slang2
-rw-r--r--tests/compute/this-type.slang2
-rw-r--r--tests/compute/user-defined-initializer.slang2
-rw-r--r--tests/language-feature/properties/property-in-interface.slang2
-rw-r--r--tests/preprocessor/line-macro.slang2
-rw-r--r--tests/serialization/std-lib-serialize.slang2
-rw-r--r--tests/wgsl/explicit-binding.slang23
25 files changed, 49 insertions, 24 deletions
diff --git a/tests/bugs/gh-471.slang b/tests/bugs/gh-471.slang
index e7b09760b..d59f97281 100644
--- a/tests/bugs/gh-471.slang
+++ b/tests/bugs/gh-471.slang
@@ -22,7 +22,7 @@ int test(int inVal)
return x * 16;
}
-RWStructuredBuffer<int> outputBuffer : register(u0);
+RWStructuredBuffer<int> outputBuffer;
[numthreads(4, 1, 1)]
void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
diff --git a/tests/bugs/gh-775.slang b/tests/bugs/gh-775.slang
index d25fa493b..05065e34a 100644
--- a/tests/bugs/gh-775.slang
+++ b/tests/bugs/gh-775.slang
@@ -18,7 +18,7 @@ int test(int inVal)
}
//TEST_INPUT:ubuffer(data=[9 9 9 9], stride=4):out,name outputBuffer
-RWStructuredBuffer<int> outputBuffer : register(u0);
+RWStructuredBuffer<int> outputBuffer;
[numthreads(4, 1, 1)]
void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
diff --git a/tests/bugs/static-method.slang b/tests/bugs/static-method.slang
index 98e4a3273..4e5785c41 100644
--- a/tests/bugs/static-method.slang
+++ b/tests/bugs/static-method.slang
@@ -11,7 +11,7 @@ struct S
}
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name outputBuffer
-RWStructuredBuffer<int> outputBuffer : register(u0);
+RWStructuredBuffer<int> outputBuffer;
int test(int t)
{
diff --git a/tests/bugs/static-var.slang b/tests/bugs/static-var.slang
index 004567466..12ce5cb4d 100644
--- a/tests/bugs/static-var.slang
+++ b/tests/bugs/static-var.slang
@@ -8,7 +8,7 @@ int test(int inVal)
}
//TEST_INPUT:ubuffer(data=[9 9 9 9], stride=4):out,name outputBuffer
-RWStructuredBuffer<int> outputBuffer : register(u0);
+RWStructuredBuffer<int> outputBuffer;
[numthreads(4, 1, 1)]
void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
diff --git a/tests/bugs/texture2d-gather.hlsl b/tests/bugs/texture2d-gather.hlsl
index 9b0607eae..7344d863d 100644
--- a/tests/bugs/texture2d-gather.hlsl
+++ b/tests/bugs/texture2d-gather.hlsl
@@ -3,8 +3,9 @@
//TEST_INPUT: Texture2D(size=16, content=chessboard, format=R32_FLOAT):name g_texture
//TEST_INPUT: Sampler :name g_sampler
-Texture2D<float> g_texture : register(t0);
-SamplerState g_sampler : register(s0);
+Texture2D<float> g_texture;
+
+SamplerState g_sampler;
cbuffer Uniforms
{
diff --git a/tests/bugs/type-legalize-bug-1.slang b/tests/bugs/type-legalize-bug-1.slang
index 7f1e99d37..c2e2d4565 100644
--- a/tests/bugs/type-legalize-bug-1.slang
+++ b/tests/bugs/type-legalize-bug-1.slang
@@ -5,7 +5,7 @@
//TEST_INPUT:type_conformance A:IFoo=0
//TEST_INPUT:type_conformance B:IFoo=1
-RWStructuredBuffer<int> outputBuffer : register(u0);
+RWStructuredBuffer<int> outputBuffer;
interface IFoo
{
associatedtype T : IFoo;
diff --git a/tests/compute/break-stmt.slang b/tests/compute/break-stmt.slang
index b0c8a666c..40bed3af3 100644
--- a/tests/compute/break-stmt.slang
+++ b/tests/compute/break-stmt.slang
@@ -16,7 +16,7 @@ int test(int inVal)
}
//TEST_INPUT:ubuffer(data=[0 1 2 3], stride=4):out,name=outputBuffer
-RWStructuredBuffer<int> outputBuffer : register(u0);
+RWStructuredBuffer<int> outputBuffer;
[numthreads(4, 1, 1)]
void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
diff --git a/tests/compute/continue-stmt.slang b/tests/compute/continue-stmt.slang
index 50d8141bc..e730a7d28 100644
--- a/tests/compute/continue-stmt.slang
+++ b/tests/compute/continue-stmt.slang
@@ -21,7 +21,7 @@ int test(int inVal)
}
//TEST_INPUT:ubuffer(data=[0 1 2 3], stride=4):out,name=outputBuffer
-RWStructuredBuffer<int> outputBuffer : register(u0);
+RWStructuredBuffer<int> outputBuffer;
[numthreads(4, 1, 1)]
void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
diff --git a/tests/compute/default-initializer.slang b/tests/compute/default-initializer.slang
index dab195d25..9f9eb22e2 100644
--- a/tests/compute/default-initializer.slang
+++ b/tests/compute/default-initializer.slang
@@ -23,7 +23,7 @@ int test(int value)
}
//TEST_INPUT:ubuffer(data=[0 1 2 3], stride=4):out,name=outputBuffer
-RWStructuredBuffer<int> outputBuffer : register(u0);
+RWStructuredBuffer<int> outputBuffer;
[numthreads(4, 1, 1)]
void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
diff --git a/tests/compute/explicit-this-expr.slang b/tests/compute/explicit-this-expr.slang
index baf718be0..9eedf5fe9 100644
--- a/tests/compute/explicit-this-expr.slang
+++ b/tests/compute/explicit-this-expr.slang
@@ -16,7 +16,7 @@ struct A
};
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer
-RWStructuredBuffer<float> outputBuffer : register(u0);
+RWStructuredBuffer<float> outputBuffer;
float test(float inVal)
diff --git a/tests/compute/generics-constrained.slang b/tests/compute/generics-constrained.slang
index 435b840d1..04a9c59b7 100644
--- a/tests/compute/generics-constrained.slang
+++ b/tests/compute/generics-constrained.slang
@@ -28,6 +28,7 @@ float testHelp(T helper)
}
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer
+[vk::binding(0, 0)]
RWStructuredBuffer<float> outputBuffer : register(u0);
diff --git a/tests/compute/global-init.slang b/tests/compute/global-init.slang
index fd7937cf0..d2f7bb41e 100644
--- a/tests/compute/global-init.slang
+++ b/tests/compute/global-init.slang
@@ -12,7 +12,7 @@ int test(int inVal)
}
//TEST_INPUT:ubuffer(data=[0 1 2 3], stride=4):out,name=outputBuffer
-RWStructuredBuffer<int> outputBuffer : register(u0);
+RWStructuredBuffer<int> outputBuffer;
[numthreads(4, 1, 1)]
void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
diff --git a/tests/compute/implicit-generic-app.slang b/tests/compute/implicit-generic-app.slang
index c41b5e31d..b00f25877 100644
--- a/tests/compute/implicit-generic-app.slang
+++ b/tests/compute/implicit-generic-app.slang
@@ -30,7 +30,7 @@ int test(int val)
}
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer
-RWStructuredBuffer<int> outputBuffer : register(u0);
+RWStructuredBuffer<int> outputBuffer;
[numthreads(4, 1, 1)]
void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
diff --git a/tests/compute/implicit-this-expr.slang b/tests/compute/implicit-this-expr.slang
index e8b720093..ed80a9251 100644
--- a/tests/compute/implicit-this-expr.slang
+++ b/tests/compute/implicit-this-expr.slang
@@ -15,7 +15,7 @@ struct A
};
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer
-RWStructuredBuffer<float> outputBuffer : register(u0);
+RWStructuredBuffer<float> outputBuffer;
float test(float inVal)
{
diff --git a/tests/compute/init-list-defaults.slang b/tests/compute/init-list-defaults.slang
index 049450109..fe55e9259 100644
--- a/tests/compute/init-list-defaults.slang
+++ b/tests/compute/init-list-defaults.slang
@@ -24,7 +24,7 @@ int test(int inVal)
}
//TEST_INPUT:ubuffer(data=[9 9 9 9], stride=4):out,name=outputBuffer
-RWStructuredBuffer<int> outputBuffer : register(u0);
+RWStructuredBuffer<int> outputBuffer;
[numthreads(4, 1, 1)]
void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
diff --git a/tests/compute/inout.slang b/tests/compute/inout.slang
index 186bcd3db..5d1afaa79 100644
--- a/tests/compute/inout.slang
+++ b/tests/compute/inout.slang
@@ -36,7 +36,7 @@ int test(int inVal)
}
//TEST_INPUT:ubuffer(data=[0 1 2 3], stride=4):out,name=outputBuffer
-RWStructuredBuffer<int> outputBuffer : register(u0);
+RWStructuredBuffer<int> outputBuffer;
[numthreads(4, 1, 1)]
void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
diff --git a/tests/compute/multiple-continue-sites.slang b/tests/compute/multiple-continue-sites.slang
index cf5033c9e..6ee24ca8d 100644
--- a/tests/compute/multiple-continue-sites.slang
+++ b/tests/compute/multiple-continue-sites.slang
@@ -28,7 +28,7 @@ int test(int inVal)
}
//TEST_INPUT:ubuffer(data=[0 1 2 3], stride=4):out,name=outputBuffer
-RWStructuredBuffer<int> outputBuffer : register(u0);
+RWStructuredBuffer<int> outputBuffer;
[numthreads(4, 1, 1)]
void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
diff --git a/tests/compute/struct-default-init.slang b/tests/compute/struct-default-init.slang
index dc0e0218a..236fff57f 100644
--- a/tests/compute/struct-default-init.slang
+++ b/tests/compute/struct-default-init.slang
@@ -26,7 +26,7 @@ int test(int inVal)
}
//TEST_INPUT:ubuffer(data=[9 9 9 9], stride=4):out,name=outputBuffer
-RWStructuredBuffer<int> outputBuffer : register(u0);
+RWStructuredBuffer<int> outputBuffer;
[numthreads(4, 1, 1)]
void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
diff --git a/tests/compute/switch-stmt.slang b/tests/compute/switch-stmt.slang
index f0de612cb..b8411a9ad 100644
--- a/tests/compute/switch-stmt.slang
+++ b/tests/compute/switch-stmt.slang
@@ -30,7 +30,7 @@ int test(int inVal)
}
//TEST_INPUT:ubuffer(data=[0 1 2 3 4 5 6 7], stride=4):out,name=outputBuffer
-RWStructuredBuffer<int> outputBuffer : register(u0);
+RWStructuredBuffer<int> outputBuffer;
[numthreads(8, 1, 1)]
void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
diff --git a/tests/compute/this-type.slang b/tests/compute/this-type.slang
index 94f42ce53..21e5ddeae 100644
--- a/tests/compute/this-type.slang
+++ b/tests/compute/this-type.slang
@@ -36,7 +36,7 @@ int test(int value)
}
//TEST_INPUT:ubuffer(data=[0 1 2 3], stride=4):out,name=outputBuffer
-RWStructuredBuffer<int> outputBuffer : register(u0);
+RWStructuredBuffer<int> outputBuffer;
[numthreads(4, 1, 1)]
void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
diff --git a/tests/compute/user-defined-initializer.slang b/tests/compute/user-defined-initializer.slang
index dcd94f68a..0a1dfe328 100644
--- a/tests/compute/user-defined-initializer.slang
+++ b/tests/compute/user-defined-initializer.slang
@@ -28,7 +28,7 @@ int test(int value)
}
//TEST_INPUT:ubuffer(data=[0 1 2 3], stride=4):out,name=outputBuffer
-RWStructuredBuffer<int> outputBuffer : register(u0);
+RWStructuredBuffer<int> outputBuffer;
[numthreads(4, 1, 1)]
void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
diff --git a/tests/language-feature/properties/property-in-interface.slang b/tests/language-feature/properties/property-in-interface.slang
index 50a9c7f2e..9f9e7ff50 100644
--- a/tests/language-feature/properties/property-in-interface.slang
+++ b/tests/language-feature/properties/property-in-interface.slang
@@ -46,7 +46,7 @@ int test(int value)
}
//TEST_INPUT:ubuffer(data=[0 1 2 3], stride=4):out,name=outputBuffer
-RWStructuredBuffer<int> outputBuffer : register(u0);
+RWStructuredBuffer<int> outputBuffer;
[numthreads(4, 1, 1)]
void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
diff --git a/tests/preprocessor/line-macro.slang b/tests/preprocessor/line-macro.slang
index 2b035357a..609d6cf5a 100644
--- a/tests/preprocessor/line-macro.slang
+++ b/tests/preprocessor/line-macro.slang
@@ -1,7 +1,7 @@
//TEST:COMPARE_COMPUTE(filecheck-buffer=CHECK): -output-using-type
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer
-RWStructuredBuffer<int> outputBuffer : register(u0);
+RWStructuredBuffer<int> outputBuffer;
#define T(x) x
#define LL T(__LINE__)
diff --git a/tests/serialization/std-lib-serialize.slang b/tests/serialization/std-lib-serialize.slang
index e63a1220e..3dfda3ec5 100644
--- a/tests/serialization/std-lib-serialize.slang
+++ b/tests/serialization/std-lib-serialize.slang
@@ -12,7 +12,7 @@ struct A
};
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer
-RWStructuredBuffer<float> outputBuffer : register(u0);
+RWStructuredBuffer<float> outputBuffer;
float test(float inVal)
diff --git a/tests/wgsl/explicit-binding.slang b/tests/wgsl/explicit-binding.slang
new file mode 100644
index 000000000..d2cf73a69
--- /dev/null
+++ b/tests/wgsl/explicit-binding.slang
@@ -0,0 +1,23 @@
+//TEST:SIMPLE(filecheck=METAL): -target metal
+//TEST:SIMPLE(filecheck=CHECK): -target wgsl -entry computeMain -stage compute
+
+// CHECK-DAG: @binding(9) @group(7)
+// CHECK-DAG: @binding(3) @group(4)
+// CHECK-DAG: @binding(1) @group(2)
+
+// METAL-DAG: buffer(9)
+// METAL-DAG: texture(7)
+
+[vk::binding(1, 2)]
+Texture2D texA : register(t7);
+
+[vk::binding(3, 4)]
+ConstantBuffer<float> cb;
+
+RWStructuredBuffer<float> ob : register(u9, space7);
+
+[numthreads(1,1,1)]
+void computeMain()
+{
+ ob[0] = cb + texA.Load(int3(0)).x;
+} \ No newline at end of file