|
46 | 46 | #define _NBL_GLSL_EXT_FFT_CLAMP_TO_EDGE_ 0
|
47 | 47 | #define _NBL_GLSL_EXT_FFT_FILL_WITH_ZERO_ 1
|
48 | 48 |
|
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 |
| - |
60 | 49 | #ifndef _NBL_GLSL_EXT_FFT_GET_PARAMETERS_DECLARED_
|
61 | 50 | #define _NBL_GLSL_EXT_FFT_GET_PARAMETERS_DECLARED_
|
62 | 51 | 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
|
109 | 98 | }
|
110 | 99 |
|
111 | 100 | 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; |
113 | 103 | }
|
114 | 104 | 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); |
116 | 107 | }
|
117 | 108 | 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; |
119 | 111 | }
|
120 | 112 |
|
121 | 113 | uint nbl_glsl_ext_FFT_getChannel()
|
@@ -149,8 +141,9 @@ uint nbl_glsl_ext_FFT_getDimLength(uvec3 dimension)
|
149 | 141 |
|
150 | 142 | void nbl_glsl_ext_FFT()
|
151 | 143 | {
|
| 144 | + nbl_glsl_ext_FFT_Parameters_t params = nbl_glsl_ext_FFT_getParameters(); |
152 | 145 | // 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); |
154 | 147 | uint num_virtual_threads = (dataLength-1u)/(_NBL_GLSL_EXT_FFT_BLOCK_SIZE_X_DEFINED_)+1u;
|
155 | 148 | uint thread_offset = gl_LocalInvocationIndex;
|
156 | 149 |
|
|
0 commit comments