Skip to content

Commit ae270c9

Browse files
use full Fp32 for spectrum storage, also address some TODOs
1 parent 36aeb6b commit ae270c9

File tree

1 file changed

+9
-8
lines changed
  • examples_tests/39.DenoiserTonemapper

1 file changed

+9
-8
lines changed

examples_tests/39.DenoiserTonemapper/main.cpp

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,7 @@ layout(binding = 0, std430) restrict readonly buffer ImageInputBuffer
286286
#define _NBL_GLSL_EXT_FFT_INPUT_DESCRIPTOR_DEFINED_
287287
layout(binding = 1, std430) restrict writeonly buffer SpectrumOutputBuffer
288288
{
289-
f16vec2 outSpectrum[];
289+
vec2 outSpectrum[];
290290
};
291291
#define _NBL_GLSL_EXT_FFT_OUTPUT_DESCRIPTOR_DEFINED_
292292
@@ -327,7 +327,7 @@ uint nbl_glsl_ext_FFT_Parameters_t_getPaddingType()
327327
void nbl_glsl_ext_FFT_setData(in uvec3 coordinate, in uint channel, in nbl_glsl_complex complex_value)
328328
{
329329
const uint index = ((channel<<nbl_glsl_ext_FFT_Parameters_t_getLog2FFTSize())+coordinate.x)*pc.data.imageHeight+coordinate.y;
330-
outSpectrum[index] = f16vec2(complex_value);
330+
outSpectrum[index] = complex_value;
331331
}
332332
#define _NBL_GLSL_EXT_FFT_SET_DATA_DEFINED_
333333
@@ -419,7 +419,7 @@ layout(binding = 0, std430) restrict buffer ImageOutputBuffer
419419
#define _NBL_GLSL_EXT_FFT_OUTPUT_DESCRIPTOR_DEFINED_
420420
layout(binding = 1, std430) restrict readonly buffer SpectrumInputBuffer
421421
{
422-
f16vec2 inSpectrum[];
422+
vec2 inSpectrum[];
423423
};
424424
#define _NBL_GLSL_EXT_FFT_INPUT_DESCRIPTOR_DEFINED_
425425
layout(binding = 3, std430) restrict readonly buffer IntensityBuffer
@@ -539,7 +539,7 @@ nbl_glsl_complex nbl_glsl_ext_FFT_getPaddedData(ivec3 coordinate, in uint channe
539539
if (!nbl_glsl_ext_FFT_wrap_coord(coordinate))
540540
return nbl_glsl_complex(0.f,0.f);
541541
const uint index = ((channel<<nbl_glsl_ext_FFT_Parameters_t_getLog2FFTSize())+coordinate.x)*pc.data.imageHeight+coordinate.y;
542-
return nbl_glsl_complex(inSpectrum[index]);
542+
return inSpectrum[index];
543543
}
544544
)==="));
545545
struct SpecializationConstants
@@ -1039,9 +1039,10 @@ nbl_glsl_complex nbl_glsl_ext_FFT_getPaddedData(ivec3 coordinate, in uint channe
10391039
attachBufferImageRange(EII_NORMAL,normalPixelBuffer.getObject(),inImageByteOffset[EII_NORMAL],interleavedPixelBytesize);
10401040
for (uint32_t j=0u; j<denoiserInputCount; j++)
10411041
{
1042-
uint64_t deinterleavedPixelBytesize = getTexelOrBlockBytesize<EF_R16G16B16A16_SFLOAT>(); // TODO do it with EF_R16G16B16_SFLOAT
1043-
outImageByteOffset[j] = j*param.width*param.height*deinterleavedPixelBytesize;
1044-
attachBufferImageRange(EII_COUNT+j,temporaryPixelBuffer.getObject(),outImageByteOffset[j],j ? deinterleavedPixelBytesize:fftScratchSize);
1042+
outImageByteOffset[j] = j*param.width*param.height*forcedOptiXFormatPixelStride;
1043+
attachBufferImageRange(EII_COUNT+j,temporaryPixelBuffer.getObject(),outImageByteOffset[j],forcedOptiXFormatPixelStride);
1044+
if (j==0u)
1045+
infos[EII_COUNT].buffer.size = fftScratchSize;
10451046
}
10461047
attachWholeBuffer(EII_COUNT*2u,histogramBuffer.get());
10471048
attachWholeBuffer(EII_COUNT*2u+1u,intensityBuffer.getObject());
@@ -1152,7 +1153,7 @@ nbl_glsl_complex nbl_glsl_ext_FFT_getPaddedData(ivec3 coordinate, in uint channe
11521153
shaderConstants.flags &= 0b10u;
11531154
driver->pushConstants(sharedPipelineLayout.get(), video::IGPUSpecializedShader::ESS_COMPUTE, offsetof(CommonPushConstants,flags), sizeof(uint32_t), &shaderConstants.flags);
11541155
// Bloom
1155-
uint32_t workgroupCounts[2] = { (param.width + kComputeWGSize - 1u) / kComputeWGSize,param.height }; // TODO: change
1156+
uint32_t workgroupCounts[2] = { (param.width + kComputeWGSize - 1u) / kComputeWGSize,param.height };
11561157
{
11571158
core::smart_refctd_ptr<IGPUImageView> kerImageView;
11581159
{

0 commit comments

Comments
 (0)