12
12
layout(local_size_x=_NBL_GLSL_WORKGROUP_SIZE_, local_size_y=1, local_size_z=1) in;
13
13
14
14
15
+ #define _NBL_GLSL_EXT_FFT_GET_PARAMETERS_DEFINED_
15
16
#define _NBL_GLSL_EXT_FFT_GET_DATA_DEFINED_
16
17
#define _NBL_GLSL_EXT_FFT_SET_DATA_DEFINED_
17
18
#define _NBL_GLSL_EXT_FFT_GET_PADDED_DATA_DEFINED_
18
19
#include "nbl/builtin/glsl/ext/FFT/fft.glsl"
19
20
20
21
// Input Descriptor
21
22
22
- struct nbl_glsl_ext_FFT_input_t
23
- {
24
- vec2 complex_value;
25
- };
26
-
27
23
#ifndef _NBL_GLSL_EXT_FFT_INPUT_SET_DEFINED_
28
24
#define _NBL_GLSL_EXT_FFT_INPUT_SET_DEFINED_ 0
29
25
#endif
@@ -33,12 +29,12 @@ struct nbl_glsl_ext_FFT_input_t
33
29
#endif
34
30
35
31
#ifndef _NBL_GLSL_EXT_FFT_INPUT_DESCRIPTOR_DEFINED_
32
+ #define _NBL_GLSL_EXT_FFT_INPUT_DESCRIPTOR_DEFINED_
36
33
37
34
#if USE_SSBO_FOR_INPUT > 0
38
- #define _NBL_GLSL_EXT_FFT_INPUT_DESCRIPTOR_DEFINED_
39
35
layout(set=_NBL_GLSL_EXT_FFT_INPUT_SET_DEFINED_, binding=_NBL_GLSL_EXT_FFT_INPUT_BINDING_DEFINED_) readonly restrict buffer InputBuffer
40
36
{
41
- nbl_glsl_ext_FFT_input_t inData[];
37
+ nbl_glsl_complex inData[];
42
38
};
43
39
#else
44
40
layout(set=_NBL_GLSL_EXT_FFT_INPUT_SET_DEFINED_, binding=_NBL_GLSL_EXT_FFT_INPUT_BINDING_DEFINED_) uniform sampler2D inputImage;
@@ -48,12 +44,6 @@ layout(set=_NBL_GLSL_EXT_FFT_INPUT_SET_DEFINED_, binding=_NBL_GLSL_EXT_FFT_INPUT
48
44
49
45
// Output Descriptor
50
46
51
- struct nbl_glsl_ext_FFT_output_t
52
- {
53
- vec2 complex_value;
54
- };
55
-
56
-
57
47
#ifndef _NBL_GLSL_EXT_FFT_OUTPUT_SET_DEFINED_
58
48
#define _NBL_GLSL_EXT_FFT_OUTPUT_SET_DEFINED_ 0
59
49
#endif
@@ -66,22 +56,27 @@ struct nbl_glsl_ext_FFT_output_t
66
56
#define _NBL_GLSL_EXT_FFT_OUTPUT_DESCRIPTOR_DEFINED_
67
57
layout(set=_NBL_GLSL_EXT_FFT_OUTPUT_SET_DEFINED_, binding=_NBL_GLSL_EXT_FFT_OUTPUT_BINDING_DEFINED_) restrict buffer OutputBuffer
68
58
{
69
- nbl_glsl_ext_FFT_output_t outData[];
59
+ nbl_glsl_complex outData[];
70
60
};
71
61
#endif
72
62
73
63
// Get/Set Data Function
74
64
65
+ nbl_glsl_ext_FFT_Parameters_t nbl_glsl_ext_FFT_getParameters() {
66
+ nbl_glsl_ext_FFT_Parameters_t ret;
67
+ return ret;
68
+ }
69
+
75
70
nbl_glsl_complex nbl_glsl_ext_FFT_getData(in uvec3 coordinate, in uint channel)
76
71
{
77
- vec2 retValue = vec2 (0, 0);
72
+ nbl_glsl_complex retValue = nbl_glsl_complex (0, 0);
78
73
#if USE_SSBO_FOR_INPUT > 0
79
74
uvec3 dimension = pc.dimension;
80
75
uint index = channel * (dimension.x * dimension.y * dimension.z) + coordinate.z * (dimension.x * dimension.y) + coordinate.y * (dimension.x) + coordinate.x;
81
- retValue = inData[index].complex_value ;
76
+ retValue = inData[index];
82
77
#else
83
78
vec4 texelValue= texelFetch(inputImage, ivec2(coordinate.xy), 0);
84
- retValue = vec2 (texelValue[channel], 0.0f);
79
+ retValue = nbl_glsl_complex (texelValue[channel], 0.0f);
85
80
#endif
86
81
return retValue;
87
82
}
@@ -90,7 +85,7 @@ void nbl_glsl_ext_FFT_setData(in uvec3 coordinate, in uint channel, in nbl_glsl_
90
85
{
91
86
uvec3 dimension = pc.padded_dimension;
92
87
uint index = channel * (dimension.x * dimension.y * dimension.z) + coordinate.z * (dimension.x * dimension.y) + coordinate.y * (dimension.x) + coordinate.x;
93
- outData[index].complex_value = complex_value;
88
+ outData[index] = complex_value;
94
89
}
95
90
96
91
nbl_glsl_complex nbl_glsl_ext_FFT_getPaddedData(in uvec3 coordinate, in uint channel) {
0 commit comments