Skip to content

Commit dd5d963

Browse files
committed
change to subgroup control barrier
1 parent 5dcd5c3 commit dd5d963

File tree

1 file changed

+3
-6
lines changed

1 file changed

+3
-6
lines changed

include/nbl/builtin/hlsl/subgroup2/arithmetic_portability_impl.hlsl

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -159,8 +159,7 @@ struct inclusive_scan<Params, BinOp, 1, false>
159159
static scalar_t __call(scalar_t value)
160160
{
161161
// sync up each subgroup invocation so it runs in lockstep
162-
// not ideal because might not write to shared memory but a storage class is needed
163-
spirv::memoryBarrier(spv::ScopeSubgroup, spv::MemorySemanticsWorkgroupMemoryMask | spv::MemorySemanticsAcquireMask);
162+
spirv::controlBarrier(spv::ScopeSubgroup, spv::ScopeSubgroup, spv::MemorySemanticsMaskNone);
164163

165164
binop_t op;
166165
const uint32_t subgroupInvocation = glsl::gl_SubgroupInvocationID();
@@ -190,8 +189,7 @@ struct exclusive_scan<Params, BinOp, 1, false>
190189
scalar_t operator()(scalar_t value)
191190
{
192191
// sync up each subgroup invocation so it runs in lockstep
193-
// not ideal because might not write to shared memory but a storage class is needed
194-
spirv::memoryBarrier(spv::ScopeSubgroup, spv::MemorySemanticsWorkgroupMemoryMask | spv::MemorySemanticsAcquireMask);
192+
spirv::controlBarrier(spv::ScopeSubgroup, spv::ScopeSubgroup, spv::MemorySemanticsMaskNone);
195193

196194
scalar_t left = hlsl::mix(binop_t::identity, glsl::subgroupShuffleUp<scalar_t>(value,1), bool(glsl::gl_SubgroupInvocationID()));
197195
return inclusive_scan<Params, BinOp, 1, false>::__call(left);
@@ -212,8 +210,7 @@ struct reduction<Params, BinOp, 1, false>
212210
scalar_t operator()(scalar_t value)
213211
{
214212
// sync up each subgroup invocation so it runs in lockstep
215-
// not ideal because might not write to shared memory but a storage class is needed
216-
spirv::memoryBarrier(spv::ScopeSubgroup, spv::MemorySemanticsWorkgroupMemoryMask | spv::MemorySemanticsAcquireMask);
213+
spirv::controlBarrier(spv::ScopeSubgroup, spv::ScopeSubgroup, spv::MemorySemanticsMaskNone);
217214

218215
binop_t op;
219216
const uint32_t SubgroupSizeLog2 = config_t::SizeLog2;

0 commit comments

Comments
 (0)