Skip to content

Commit 683aa87

Browse files
committed
use builtin bda accessor
1 parent 8ae32e1 commit 683aa87

File tree

3 files changed

+10
-10
lines changed

3 files changed

+10
-10
lines changed

23_Arithmetic2UnitTest/app_resources/testSubgroup.comp.hlsl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
#include "nbl/builtin/hlsl/subgroup2/arithmetic_portability.hlsl"
88

99
#include "shaderCommon.hlsl"
10-
#include "nbl/builtin/hlsl/workgroup/basic.hlsl"
10+
#include "nbl/builtin/hlsl/workgroup2/basic.hlsl"
1111

1212
typedef vector<uint32_t, ITEMS_PER_INVOCATION> type_t;
1313

29_Arithmetic2Bench/app_resources/benchmarkSubgroup.comp.hlsl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
#include "nbl/builtin/hlsl/random/xoroshiro.hlsl"
99

1010
#include "shaderCommon.hlsl"
11-
#include "nbl/builtin/hlsl/workgroup/basic.hlsl"
11+
#include "nbl/builtin/hlsl/workgroup2/basic.hlsl"
1212

1313
typedef vector<uint32_t, ITEMS_PER_INVOCATION> type_t;
1414

common/include/WorkgroupDataAccessors.hlsl

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
#ifndef _WORKGROUP_DATA_ACCESSORS_HLSL_
22
#define _WORKGROUP_DATA_ACCESSORS_HLSL_
33

4+
#include "nbl/builtin/hlsl/bda/legacy_bda_accessor.hlsl"
5+
46
namespace nbl
57
{
68
namespace hlsl
@@ -35,25 +37,25 @@ template<uint16_t VirtualWorkgroupSize, uint16_t ItemsPerInvocation>
3537
struct DataProxy
3638
{
3739
using dtype_t = vector<uint32_t, ItemsPerInvocation>;
40+
// function template AccessType should be the same as dtype_t
3841

3942
static DataProxy<VirtualWorkgroupSize, ItemsPerInvocation> create(const uint64_t inputBuf, const uint64_t outputBuf)
4043
{
4144
DataProxy<VirtualWorkgroupSize, ItemsPerInvocation> retval;
42-
retval.workgroupOffset = glsl::gl_WorkGroupID().x * VirtualWorkgroupSize;
43-
retval.inputBufAddr = inputBuf;
44-
retval.outputBufAddr = outputBuf;
45+
const uint32_t workgroupOffset = glsl::gl_WorkGroupID().x * VirtualWorkgroupSize * sizeof(dtype_t);
46+
retval.accessor = DoubleLegacyBdaAccessor<dtype_t>::create(inputBuf + workgroupOffset, outputBuf + workgroupOffset);
4547
return retval;
4648
}
4749

4850
template<typename AccessType, typename IndexType>
4951
void get(const IndexType ix, NBL_REF_ARG(AccessType) value)
5052
{
51-
value = vk::RawBufferLoad<AccessType>(inputBufAddr + (workgroupOffset + ix) * sizeof(AccessType));
53+
accessor.get(ix, value);
5254
}
5355
template<typename AccessType, typename IndexType>
5456
void set(const IndexType ix, const AccessType value)
5557
{
56-
vk::RawBufferStore<AccessType>(outputBufAddr + (workgroupOffset + ix) * sizeof(AccessType), value, sizeof(uint32_t));
58+
accessor.set(ix, value);
5759
}
5860

5961
void workgroupExecutionAndMemoryBarrier()
@@ -62,9 +64,7 @@ struct DataProxy
6264
//glsl::memoryBarrierShared(); implied by the above
6365
}
6466

65-
uint32_t workgroupOffset;
66-
uint64_t inputBufAddr;
67-
uint64_t outputBufAddr;
67+
DoubleLegacyBdaAccessor<dtype_t> accessor;
6868
};
6969

7070
template<uint16_t WorkgroupSizeLog2, uint16_t VirtualWorkgroupSize, uint16_t ItemsPerInvocation>

0 commit comments

Comments
 (0)