From bb15f5b494b20e957127f0ffa6040c94349da0d0 Mon Sep 17 00:00:00 2001 From: Yong He Date: Wed, 30 Aug 2023 11:45:47 -0700 Subject: Fix memory barrier intrinsics. (#3166) * Fix memory barrier intrinsics. Makes them produce the same spirv code as dxc. * Fix. * filecheck barrier test for spirv backend. * Fix glsl intrinsic definition. * Fix intrinsics. * Fix intrinsics. * Fix. * Fix. --------- Co-authored-by: Yong He --- tests/cross-compile/barriers.slang | 10 ++++++++-- tests/cross-compile/barriers.slang.glsl | 14 -------------- 2 files changed, 8 insertions(+), 16 deletions(-) delete mode 100644 tests/cross-compile/barriers.slang.glsl (limited to 'tests/cross-compile') diff --git a/tests/cross-compile/barriers.slang b/tests/cross-compile/barriers.slang index f6fb9ac3c..d8bc92fa0 100644 --- a/tests/cross-compile/barriers.slang +++ b/tests/cross-compile/barriers.slang @@ -1,10 +1,16 @@ -//TEST:CROSS_COMPILE:-target spirv-assembly -entry main -stage compute - +//TEST:SIMPLE(filecheck=SPIRV): -stage compute -target spirv -emit-spirv-directly -entry main +//TEST:SIMPLE(filecheck=SPIRV): -stage compute -target spirv -entry main // Confirm that all HLSL barrier operations can be used when cross-compiling. [numthreads(1,1,1)] void main() { + // SPIRV: OpMemoryBarrier %uint_1 %uint_2376 + // SPIRV: OpControlBarrier %uint_2 %uint_1 %uint_2376 + // SPIRV: OpMemoryBarrier %uint_1 %uint_2120 + // SPIRV: OpControlBarrier %uint_2 %uint_1 %uint_2120 + // SPIRV: OpMemoryBarrier %uint_2 %uint_264 + // SPIRV: OpControlBarrier %uint_2 %uint_2 %uint_264 AllMemoryBarrier(); AllMemoryBarrierWithGroupSync(); DeviceMemoryBarrier(); diff --git a/tests/cross-compile/barriers.slang.glsl b/tests/cross-compile/barriers.slang.glsl deleted file mode 100644 index 281e684db..000000000 --- a/tests/cross-compile/barriers.slang.glsl +++ /dev/null @@ -1,14 +0,0 @@ -#version 450 - -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; -void main() -{ - (memoryBarrier(), groupMemoryBarrier(), memoryBarrierImage(), memoryBarrierBuffer()); - (memoryBarrier(), groupMemoryBarrier(), memoryBarrierImage(), memoryBarrierBuffer(), barrier()); - (memoryBarrier(), memoryBarrierImage(), memoryBarrierBuffer()); - (memoryBarrier(), memoryBarrierImage(), memoryBarrierBuffer(), barrier()); - groupMemoryBarrier(); - (groupMemoryBarrier(), barrier()); - - return; -} -- cgit v1.2.3