Skip to content

Commit 466edad

Browse files
lukaszgotszaldinteligcbot
authored andcommitted
add barrier functions
add some spirv barrier functions
1 parent 7dd0603 commit 466edad

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

IGC/BiFModule/Headers/spirv.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4501,6 +4501,8 @@ typedef struct
45014501
local __namedBarrier* __builtin_spirv_OpNamedBarrierInitialize_i32_p3__namedBarrier_p3i32(int Count, local __namedBarrier* nb_array, local uint* id);
45024502
void __builtin_spirv_OpMemoryNamedBarrier_p3__namedBarrier_i32_i32(local __namedBarrier* NB, Scope_t Memory, uint Semantics);
45034503

4504+
void __builtin_spirv_OpMemoryNamedBarrierWrapperOCL_p3__namedBarrier_i32(local __namedBarrier* barrier, cl_mem_fence_flags flags);
4505+
void __builtin_spirv_OpMemoryNamedBarrierWrapperOCL_p3__namedBarrier_i32_i32(local __namedBarrier* barrier, cl_mem_fence_flags flags, memory_scope scope);
45044506
// Group Instructions
45054507
// TODO: Do we want to split out size_t into i64 and i32 as we've done here?
45064508

IGC/BiFModule/Implementation/barrier.cl

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ SPDX-License-Identifier: MIT
66
77
============================= end_copyright_notice ===========================*/
88

9+
#include "../Languages/OpenCL/IBiF_SPIRV_Utils.cl"
910

1011
extern __constant int __OptDisable;
1112

@@ -242,5 +243,14 @@ void __builtin_spirv_OpMemoryNamedBarrier_p3__namedBarrier_i32_i32(local __named
242243
AtomicStore(&NB->count, Workgroup, AtomSema, NB->orig_count);
243244
}
244245
}
246+
void __builtin_spirv_OpMemoryNamedBarrierWrapperOCL_p3__namedBarrier_i32(local __namedBarrier* barrier, cl_mem_fence_flags flags)
247+
{
248+
__builtin_spirv_OpMemoryNamedBarrier_p3__namedBarrier_i32_i32(barrier, Workgroup, AcquireRelease | get_spirv_mem_fence(flags));
249+
}
250+
251+
void __builtin_spirv_OpMemoryNamedBarrierWrapperOCL_p3__namedBarrier_i32_i32(local __namedBarrier* barrier, cl_mem_fence_flags flags, memory_scope scope)
252+
{
253+
__builtin_spirv_OpMemoryNamedBarrier_p3__namedBarrier_i32_i32(barrier, get_spirv_mem_scope(scope), AcquireRelease | get_spirv_mem_fence(flags));
254+
}
245255

246256

0 commit comments

Comments
 (0)