diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/metal/nested-parameter-block-reflection.slang | 23 | ||||
| -rw-r--r-- | tests/metal/simple-compute.slang | 6 | ||||
| -rw-r--r-- | tests/metal/vector-argument-buffer-layout.slang | 17 |
3 files changed, 37 insertions, 9 deletions
diff --git a/tests/metal/nested-parameter-block-reflection.slang b/tests/metal/nested-parameter-block-reflection.slang index 8282f5573..a294755da 100644 --- a/tests/metal/nested-parameter-block-reflection.slang +++ b/tests/metal/nested-parameter-block-reflection.slang @@ -1,10 +1,27 @@ //TEST:REFLECTION(filecheck=CHECK): -target metal + + +// CHECK: "name": "gParams", +// CHECK: "binding": {"kind": "constantBuffer", "index": 0}, + +// CHECK:"name": "pdata", +// CHECK:"binding": {"kind": "uniform", "offset": 0, "size": 16} // CHECK:"name": "tex", -// CHECK:"binding": {"kind": "metalArgumentBufferElement", "index": 1} +// Since we will apply MetalArgumentBufferTier2, 'tex' here will just be a uniform. +// The pdata is a nested parameter block, so it will be a 64-bit device pointer which take +// 8 bytes. So the offset of `tex` will be 8 bytes. +// CHECK:"binding": {"kind": "uniform", "offset": 8, "size": 8} + + +// Check that there will be only two bindings. +// +// CHECK: "name": "output", +// CHECK: "binding": {"kind": "constantBuffer", "index": 1}, +// struct Data { int3 content; } -struct Params +struct Params { ParameterBlock<Data> pdata; Texture2D tex; @@ -15,4 +32,4 @@ RWStructuredBuffer<float4> output; void computeMain() { output[0] = gParams.tex.Load(gParams.pdata.content); -}
\ No newline at end of file +} diff --git a/tests/metal/simple-compute.slang b/tests/metal/simple-compute.slang index 85abaffb4..d70d37f5c 100644 --- a/tests/metal/simple-compute.slang +++ b/tests/metal/simple-compute.slang @@ -18,10 +18,10 @@ ParameterBlock<MyBlock> block2; // REFLECT: "elementVarLayout": { // REFLECT: "name": "b1", -// REFLECT: "binding": {"kind": "metalArgumentBufferElement", "index": 0} +// REFLECT: "binding": {"kind": "uniform", "offset": 0, "size": 8} // REFLECT: "name": "b2", -// REFLECT: "binding": {"kind": "metalArgumentBufferElement", "index": 1} +// REFLECT: "binding": {"kind": "uniform", "offset": 8, "size": 8} // REFLECT: "binding": {"kind": "metalArgumentBufferElement", "index": 0, "count": 2} @@ -42,4 +42,4 @@ void func(float v) void main_kernel() { func(3.0f); -}
\ No newline at end of file +} diff --git a/tests/metal/vector-argument-buffer-layout.slang b/tests/metal/vector-argument-buffer-layout.slang index 698fd30d8..8b74e90d3 100644 --- a/tests/metal/vector-argument-buffer-layout.slang +++ b/tests/metal/vector-argument-buffer-layout.slang @@ -1,6 +1,17 @@ //TEST:REFLECTION(filecheck=CHECK): -target metal -//CHECK: "binding": {"kind": "metalArgumentBufferElement", "index": 0} -//CHECK: "binding": {"kind": "metalArgumentBufferElement", "index": 1} + + +//CHECK: "name": "o", +//CHECK: "binding": {"kind": "constantBuffer", "index": 0}, + +//CHECK: "name": "gParams", +//CHECK: "binding": {"kind": "constantBuffer", "index": 1}, + + +//CHECK: "dir" +//CHECK: "binding": {"kind": "uniform", "offset": 0, "size": 16} +//CHECK: "color" +//CHECK: "binding": {"kind": "uniform", "offset": 16, "size": 16} struct Params { @@ -15,4 +26,4 @@ ParameterBlock<Params> gParams; void computeMain() { o[0] = gParams.dir.x; -}
\ No newline at end of file +} |
