Skip to content

Commit 4e53d50

Browse files
committed
Pass bda::__ptr<T> into BdaAccessor
1 parent d1e76eb commit 4e53d50

File tree

2 files changed

+20
-9
lines changed

2 files changed

+20
-9
lines changed

10_CountingSort/app_resources/prefix_sum_shader.comp.hlsl

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
[[vk::push_constant]] CountingPushData pushData;
66

7-
using PtrAccessor = nbl::hlsl::bda::BdaAccessor < uint32_t >;
7+
using PtrAccessor = nbl::hlsl::BdaAccessor < uint32_t >;
88

99
groupshared uint32_t sdata[BucketCount];
1010

@@ -46,8 +46,12 @@ void main(uint32_t3 ID : SV_GroupThreadID, uint32_t3 GroupID : SV_GroupID)
4646
params.maximum = pushData.maximum;
4747

4848
nbl::hlsl::sort::counting <WorkgroupSize, BucketCount, uint32_t, PtrAccessor, PtrAccessor, PtrAccessor, SharedAccessor> counter;
49-
PtrAccessor input_accessor = PtrAccessor::create(pushData.inputKeyAddress);
50-
PtrAccessor histogram_accessor = PtrAccessor::create(pushData.histogramAddress);
49+
50+
const nbl::hlsl::bda::__ptr< uint32_t > input_ptr = nbl::hlsl::bda::__ptr < uint32_t > (pushData.inputKeyAddress);
51+
const nbl::hlsl::bda::__ptr< uint32_t > histogram_ptr = nbl::hlsl::bda::__ptr < uint32_t > (pushData.histogramAddress);
52+
53+
PtrAccessor input_accessor = PtrAccessor::create(input_ptr);
54+
PtrAccessor histogram_accessor = PtrAccessor::create(histogram_ptr);
5155
SharedAccessor shared_accessor;
5256
counter.histogram(
5357
input_accessor,

10_CountingSort/app_resources/scatter_shader.comp.hlsl

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
[[vk::push_constant]] CountingPushData pushData;
66

7-
using PtrAccessor = nbl::hlsl::bda::BdaAccessor < uint32_t >;
7+
using PtrAccessor = nbl::hlsl::BdaAccessor < uint32_t >;
88

99
groupshared uint32_t sdata[BucketCount];
1010

@@ -69,15 +69,22 @@ void main(uint32_t3 ID : SV_GroupThreadID, uint32_t3 GroupID : SV_GroupID)
6969
params.maximum = pushData.maximum;
7070

7171
nbl::hlsl::sort::counting <WorkgroupSize, BucketCount, uint32_t, DoublePtrAccessor, DoublePtrAccessor, PtrAccessor, SharedAccessor > counter;
72+
73+
const nbl::hlsl::bda::__ptr< uint32_t > input_key_ptr = nbl::hlsl::bda::__ptr < uint32_t > (pushData.inputKeyAddress);
74+
const nbl::hlsl::bda::__ptr< uint32_t > input_value_ptr = nbl::hlsl::bda::__ptr < uint32_t > (pushData.inputValueAddress);
75+
const nbl::hlsl::bda::__ptr< uint32_t > histogram_ptr = nbl::hlsl::bda::__ptr < uint32_t > (pushData.histogramAddress);
76+
const nbl::hlsl::bda::__ptr< uint32_t > output_key_ptr = nbl::hlsl::bda::__ptr < uint32_t > (pushData.outputKeyAddress);
77+
const nbl::hlsl::bda::__ptr< uint32_t > output_value_ptr = nbl::hlsl::bda::__ptr < uint32_t > (pushData.outputValueAddress);
78+
7279
DoublePtrAccessor key_accessor = DoublePtrAccessor::create(
73-
PtrAccessor::create(pushData.inputKeyAddress),
74-
PtrAccessor::create(pushData.outputKeyAddress)
80+
PtrAccessor::create(input_key_ptr),
81+
PtrAccessor::create(input_value_ptr)
7582
);
7683
DoublePtrAccessor value_accessor = DoublePtrAccessor::create(
77-
PtrAccessor::create(pushData.inputValueAddress),
78-
PtrAccessor::create(pushData.outputValueAddress)
84+
PtrAccessor::create(output_key_ptr),
85+
PtrAccessor::create(output_value_ptr)
7986
);
80-
PtrAccessor histogram_accessor = PtrAccessor::create(pushData.histogramAddress);
87+
PtrAccessor histogram_accessor = PtrAccessor::create(histogram_ptr);
8188
SharedAccessor shared_accessor;
8289
counter.scatter(
8390
key_accessor,

0 commit comments

Comments
 (0)