From f114433debfba67cbe1db239b6e92278d41ed438 Mon Sep 17 00:00:00 2001 From: Yong He Date: Fri, 19 Jul 2024 11:49:42 -0700 Subject: Support parameter block in metal shader objects. (#4671) * Support parameter block in metal shader objects. * Ingore parameter block tests on devices without tier2 argument buffer. * Fix warning. * Fix texture subscript test. --------- Co-authored-by: Yong He --- tests/compute/texture-subscript.slang | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) (limited to 'tests/compute/texture-subscript.slang') diff --git a/tests/compute/texture-subscript.slang b/tests/compute/texture-subscript.slang index 9251f49f1..c15a0824b 100644 --- a/tests/compute/texture-subscript.slang +++ b/tests/compute/texture-subscript.slang @@ -2,7 +2,7 @@ //TEST:SIMPLE(filecheck=METALLIB): -target metallib -entry computeMain -stage compute // Metal lacks RWTexture GFX backend support. // Due to this, Metal compute test is disabled -//DISABLE_TEST(compute):COMPARE_COMPUTE(filecheck-buffer=BUF): -slang -output-using-type -shaderobj -mtl +//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=BUF): -slang -output-using-type -shaderobj -mtl //TEST(compute):COMPARE_COMPUTE(filecheck-buffer=BUF): -slang -output-using-type -shaderobj -vk //TEST(compute):COMPARE_COMPUTE(filecheck-buffer=BUF): -slang -output-using-type -shaderobj -vk -glsl @@ -28,18 +28,22 @@ RWStructuredBuffer outputBuffer; [numthreads(1,1,1)] void computeMain() { - outputTexture1D[0].xz = int2(1,2).xx; - outputTexture1D[1].x = int2(3,4).y; - - outputTexture2D[0].xz = int2(1,2).xx; - outputTexture2D[int2(0, 1)].x = int2(3,4).y; - - outputTexture3D[0].xz = int2(1,2).xx; - outputTexture3D[int3(0, 0, 1)].x = int2(3,4).y; - - outputTexture2DArray[0].xz = int2(1,2); - outputTexture2DArray[int3(0, 0, 1)].xz = int2(3,4); - + outputTexture1D[0].xz = int2(1, 2).xx; + AllMemoryBarrier(); + outputTexture1D[1].x = int2(3, 4).y; + AllMemoryBarrier(); + outputTexture2D[0].xz = int2(1, 2).xx; + AllMemoryBarrier(); + outputTexture2D[int2(0, 1)].x = int2(3, 4).y; + AllMemoryBarrier(); + outputTexture3D[0].xz = int2(1, 2).xx; + AllMemoryBarrier(); + outputTexture3D[int3(0, 0, 1)].x = int2(3, 4).y; + AllMemoryBarrier(); + outputTexture2DArray[0].xz = int2(1, 2); + AllMemoryBarrier(); + outputTexture2DArray[int3(0, 0, 1)].xz = int2(3, 4); + AllMemoryBarrier(); outputBuffer[0] = uint(true && all(outputTexture1D[0] == int4(1, 0, 1, 0)) == true && all(outputTexture1D[1] == int4(4, 0, 0, 0)) == true -- cgit v1.2.3