Skip to content

Commit 2bba3b1

Browse files
committed
nbl_glsl_ext_FFT_getParameters
1 parent ea92e4b commit 2bba3b1

File tree

2 files changed

+19
-15
lines changed

2 files changed

+19
-15
lines changed

include/nbl/builtin/glsl/ext/FFT/default_compute_fft.comp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,19 @@ layout(set=_NBL_GLSL_EXT_FFT_OUTPUT_SET_DEFINED_, binding=_NBL_GLSL_EXT_FFT_OUTP
6262

6363
// Get/Set Data Function
6464

65+
//TODO: investigate why putting this uint between the 2 other uvec3's don't work
66+
layout(push_constant) uniform PushConstants
67+
{
68+
layout (offset = 0) uvec3 dimension;
69+
layout (offset = 16) uvec3 padded_dimension;
70+
layout (offset = 32) uint direction_isInverse_paddingType; // packed into a uint
71+
} pc;
72+
6573
nbl_glsl_ext_FFT_Parameters_t nbl_glsl_ext_FFT_getParameters() {
6674
nbl_glsl_ext_FFT_Parameters_t ret;
75+
ret.dimension = pc.dimension;
76+
ret.direction_isInverse_paddingType = pc.direction_isInverse_paddingType;
77+
ret.padded_dimension = pc.padded_dimension;
6778
return ret;
6879
}
6980

include/nbl/builtin/glsl/ext/FFT/fft.glsl

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -46,17 +46,6 @@
4646
#define _NBL_GLSL_EXT_FFT_CLAMP_TO_EDGE_ 0
4747
#define _NBL_GLSL_EXT_FFT_FILL_WITH_ZERO_ 1
4848

49-
//TODO: investigate why putting this uint between the 2 other uvec3's don't work
50-
#ifndef _NBL_GLSL_EXT_FFT_PUSH_CONSTANTS_DEFINED_
51-
#define _NBL_GLSL_EXT_FFT_PUSH_CONSTANTS_DEFINED_
52-
layout(push_constant) uniform PushConstants
53-
{
54-
layout (offset = 0) uvec3 dimension;
55-
layout (offset = 16) uvec3 padded_dimension;
56-
layout (offset = 32) uint direction_isInverse_paddingType; // packed into a uint
57-
} pc;
58-
#endif
59-
6049
#ifndef _NBL_GLSL_EXT_FFT_GET_PARAMETERS_DECLARED_
6150
#define _NBL_GLSL_EXT_FFT_GET_PARAMETERS_DECLARED_
6251
nbl_glsl_ext_FFT_Parameters_t nbl_glsl_ext_FFT_getParameters();
@@ -109,13 +98,16 @@ nbl_glsl_complex nbl_glsl_ext_FFT_twiddleInverse(in uint threadId, in uint itera
10998
}
11099

111100
uint nbl_glsl_ext_FFT_getDirection() {
112-
return (pc.direction_isInverse_paddingType >> 16) & 0x000000ff;
101+
nbl_glsl_ext_FFT_Parameters_t params = nbl_glsl_ext_FFT_getParameters();
102+
return (params.direction_isInverse_paddingType >> 16) & 0x000000ff;
113103
}
114104
bool nbl_glsl_ext_FFT_getIsInverse() {
115-
return bool((pc.direction_isInverse_paddingType >> 8) & 0x000000ff);
105+
nbl_glsl_ext_FFT_Parameters_t params = nbl_glsl_ext_FFT_getParameters();
106+
return bool((params.direction_isInverse_paddingType >> 8) & 0x000000ff);
116107
}
117108
uint nbl_glsl_ext_FFT_getPaddingType() {
118-
return (pc.direction_isInverse_paddingType) & 0x000000ff;
109+
nbl_glsl_ext_FFT_Parameters_t params = nbl_glsl_ext_FFT_getParameters();
110+
return (params.direction_isInverse_paddingType) & 0x000000ff;
119111
}
120112

121113
uint nbl_glsl_ext_FFT_getChannel()
@@ -149,8 +141,9 @@ uint nbl_glsl_ext_FFT_getDimLength(uvec3 dimension)
149141

150142
void nbl_glsl_ext_FFT()
151143
{
144+
nbl_glsl_ext_FFT_Parameters_t params = nbl_glsl_ext_FFT_getParameters();
152145
// Virtual Threads Calculation
153-
uint dataLength = nbl_glsl_ext_FFT_getDimLength(pc.padded_dimension);
146+
uint dataLength = nbl_glsl_ext_FFT_getDimLength(params.padded_dimension);
154147
uint num_virtual_threads = (dataLength-1u)/(_NBL_GLSL_EXT_FFT_BLOCK_SIZE_X_DEFINED_)+1u;
155148
uint thread_offset = gl_LocalInvocationIndex;
156149

0 commit comments

Comments
 (0)