summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/metal/nested-parameter-block-reflection.slang23
-rw-r--r--tests/metal/simple-compute.slang6
-rw-r--r--tests/metal/vector-argument-buffer-layout.slang17
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
+}