From 1ea2ab1b638b0e6d2c385b2b06157e6109417e6b Mon Sep 17 00:00:00 2001 From: Ellie Hermaszewska Date: Fri, 14 Feb 2025 01:55:28 +0800 Subject: Disallow only resources in constant buffers in parameterblocks on metal (#6342) * Neaten metal parameter block checking * Disallow only resources in constant buffers in parameterblocks on metal closes https://github.com/shader-slang/slang/issues/6200 * add unit test for metal parameterblock cbuffer --------- Co-authored-by: Yong He --- ...nested-constant-buffer-in-parameter-block.slang | 27 ++++++++++++++++------ 1 file changed, 20 insertions(+), 7 deletions(-) (limited to 'tests/diagnostics') diff --git a/tests/diagnostics/nested-constant-buffer-in-parameter-block.slang b/tests/diagnostics/nested-constant-buffer-in-parameter-block.slang index eb9ecdd14..9fb83f034 100644 --- a/tests/diagnostics/nested-constant-buffer-in-parameter-block.slang +++ b/tests/diagnostics/nested-constant-buffer-in-parameter-block.slang @@ -1,20 +1,33 @@ //TEST:SIMPLE(filecheck=CHECK): -target metal +struct T +{ + RWStructuredBuffer buf; +} + +struct U +{ + ConstantBuffer t; +} + struct S { - // CHECK-DAG: ([[# @LINE+1]]): error 56100: - ConstantBuffer cb; + ConstantBuffer> cb; } -ParameterBlock s; +// CHECK-DAG: ([[# @LINE+1]]): error 56101: +ParameterBlock s1; + +// CHECK-DAG: ([[# @LINE+1]]): error 56101: +ParameterBlock s2; -// CHECK-DAG: ([[# @LINE+1]]): error 56100: -ParameterBlock> s2; +// CHECK-DAG: ([[# @LINE+1]]): error 56101: +ParameterBlock>> s3; RWStructuredBuffer outputBuffer; [numthreads(1,1,1)] void kernelMain() { - outputBuffer[0] = s.cb + s2; -} \ No newline at end of file + outputBuffer[0] = s1.cb[0] + s2.t.buf[0] + s3[0]; +} -- cgit v1.2.3