diff options
| author | Yong He <yonghe@outlook.com> | 2024-12-05 19:33:55 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-12-06 03:33:55 +0000 |
| commit | 7dabfa76ccfb396e9d2019e2b6e01259d1661dc5 (patch) | |
| tree | 8f9a39b9d25d04051d02e63450f66c852d744e62 /tests | |
| parent | ecc5a39feecbf73feedf352214406c8752af798a (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')
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 |
