ogl_beamforming

Ultrasound Beamforming Implemented with OpenGL
git clone anongit@rnpnr.xyz:ogl_beamforming.git
Log | Files | Refs | Feed | Submodules | LICENSE

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:
Mshaders/hadamard.glsl | 2+-
Mshaders/lpf.glsl | 4++--
Mshaders/uforces.glsl | 3+--
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));