Skip to content

Commit 93ad437

Browse files
slight refactor of cascade code
1 parent 11d8c1a commit 93ad437

2 files changed

Lines changed: 8 additions & 7 deletions

File tree

include/nbl/builtin/hlsl/rwmc/CascadeAccumulator.hlsl

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,20 +28,20 @@ struct DefaultCascades
2828
data[cascadeIx] = promote<CascadeLayerType, float32_t>(0.0f);
2929
}
3030

31-
void addSampleIntoCascadeEntry(CascadeLayerType _sample, uint16_t lowerCascadeIndex, SSplattingParameters::scalar_t lowerCascadeLevelWeight, SSplattingParameters::scalar_t higherCascadeLevelWeight, uint32_t sampleCount)
31+
void addSampleIntoCascadeEntry(layer_type _sample, uint16_t lowerCascadeIndex, SSplattingParameters::scalar_t lowerCascadeLevelWeight, SSplattingParameters::scalar_t higherCascadeLevelWeight, sample_count_type sampleCount)
3232
{
3333
const SSplattingParameters::scalar_t reciprocalSampleCount = SSplattingParameters::scalar_t(1.0f) / SSplattingParameters::scalar_t(sampleCount);
3434

3535
sample_count_type lowerCascadeSampleCount = cascadeSampleCounter[lowerCascadeIndex];
3636
data[lowerCascadeIndex] += (_sample * lowerCascadeLevelWeight - (sampleCount - lowerCascadeSampleCount) * data[lowerCascadeIndex]) * reciprocalSampleCount;
37-
cascadeSampleCounter[lowerCascadeIndex] = sample_count_type(sampleCount);
37+
cascadeSampleCounter[lowerCascadeIndex] = sampleCount;
3838

3939
uint16_t higherCascadeIndex = lowerCascadeIndex + uint16_t(1u);
4040
if (higherCascadeIndex < CascadeCount)
4141
{
4242
sample_count_type higherCascadeSampleCount = cascadeSampleCounter[higherCascadeIndex];
4343
data[higherCascadeIndex] += (_sample * higherCascadeLevelWeight - (sampleCount - higherCascadeSampleCount) * data[higherCascadeIndex]) * reciprocalSampleCount;
44-
cascadeSampleCounter[higherCascadeIndex] = sample_count_type(sampleCount);
44+
cascadeSampleCounter[higherCascadeIndex] = sampleCount;
4545
}
4646
}
4747
};
@@ -51,9 +51,10 @@ struct CascadeAccumulator
5151
{
5252
using scalar_t = typename SSplattingParameters::scalar_t;
5353
using input_sample_type = typename CascadesType::layer_type;
54+
using sample_count_type = typename CascadesType::sample_count_type;
5455
using this_t = CascadeAccumulator<CascadesType>;
5556
using cascades_type = CascadesType;
56-
NBL_CONSTEXPR_STATIC_INLINE uint32_t CascadeCount = cascades_type::CascadeCount;
57+
NBL_CONSTEXPR_STATIC_INLINE uint16_t CascadeCount = cascades_type::CascadeCount;
5758
NBL_CONSTEXPR_STATIC_INLINE scalar_t LastCascade = scalar_t(CascadeCount - 1u);
5859
cascades_type accumulation;
5960

@@ -62,15 +63,15 @@ struct CascadeAccumulator
6263
static this_t create(NBL_CONST_REF_ARG(SPackedSplattingParameters) settings)
6364
{
6465
this_t retval;
65-
for (uint32_t i = 0u; i < CascadeCount; ++i)
66+
for (uint16_t i = 0u; i < CascadeCount; ++i)
6667
retval.accumulation.clear(i);
6768
retval.splattingParameters = settings.unpack();
6869

6970
return retval;
7071
}
7172

7273
// most of this code is stolen from https://cg.ivd.kit.edu/publications/2018/rwmc/tool/split.cpp
73-
void addSample(uint32_t sampleCount, input_sample_type _sample)
74+
void addSample(const sample_count_type sampleCount, input_sample_type _sample)
7475
{
7576
const scalar_t luma = splattingParameters.calcLuma<input_sample_type>(_sample);
7677
const scalar_t log2Luma = log2<scalar_t>(luma);

0 commit comments

Comments
 (0)