Commit: 6450feb2795f77785485e6164bd9703ae114b768
Parent: aee26d8370799832f2d608d169675c5c029aceab
Author: Randy Palamar
Date: Wed, 7 Aug 2024 11:20:02 -0600
fix some data indexing bugs in compute shaders
Diffstat:
3 files changed, 4 insertions(+), 5 deletions(-)
diff --git a/shaders/hadamard.glsl b/shaders/hadamard.glsl
@@ -59,7 +59,7 @@ void main()
/* NOTE: stride is the number of samples between acquistions; off is the
* index of the first acquisition for this channel and time sample */
uint rf_stride = dec_data_dim.x;
- uint rf_off = rf_raw_dim.x * rf_channel + dec_data_dim.x * acq + time_sample;
+ uint rf_off = rf_raw_dim.x * rf_channel + time_sample;
/* NOTE: rf_data index and stride considering the data is i16 not i32 */
uint ridx = rf_off / 2;
diff --git a/shaders/lpf.glsl b/shaders/lpf.glsl
@@ -45,7 +45,7 @@ void main()
/* NOTE: offsets for storing the results in the output data */
uint stride = dec_data_dim.x * dec_data_dim.y;
- uint off = dec_data_dim.x * channel + time_sample;
+ uint off = dec_data_dim.x * channel + stride * acq + time_sample;
vec2 sum = vec2(0);
for (int i = 0; i <= lpf_order; i++) {
@@ -55,5 +55,5 @@ void main()
else data = vec2(0);
sum += lpf_coefficients[i / 4][i % 4] * data;
}
- out_data[stride * acq + off] = sum;
+ out_data[off] = sum;
}
diff --git a/shaders/uforces.glsl b/shaders/uforces.glsl
@@ -88,9 +88,9 @@ void main()
float dx = xdc_size.x / float(dec_data_dim.y);
float dzsign = sign(image_point.z - focal_depth);
- uint ridx = dec_data_dim.y * dec_data_dim.x;
vec2 sum = vec2(0);
/* NOTE: skip first acquisition in uforces since its garbage */
+ uint ridx = dec_data_dim.y * dec_data_dim.x * uforces;
for (uint i = uforces; i < dec_data_dim.z; i++) {
uint base_idx = (i - uforces) / 4;
uint sub_idx = (i - uforces) - base_idx * 4;
@@ -114,7 +114,6 @@ void main()
rdist.x -= dx;
ridx += dec_data_dim.x;
}
- ridx += dec_data_dim.y * dec_data_dim.x;
}
float val = length(sum);
imageStore(u_out_data_tex, out_coord, vec4(val, val, 0, 0));