Commit: 79ebfea092b487fe2bd73d955527e36508d2af71
Parent: c0686bd9a265c2acb7e9f35ebaa7c81af64b6dd9
Author: Randy Palamar
Date: Sat, 3 Oct 2026 19:14:24 -0700
das: uFORCES: be more explicit about acquisition chunk handling
Diffstat:
1 file changed, 3 insertions(+), 6 deletions(-)
diff --git a/shaders/das.glsl b/shaders/das.glsl
@@ -336,14 +336,11 @@ RESULT_TYPE FORCES(const vec3 world_point)
#define AcquisitionChunkSize 16
const u32 AcquisitionChunkCount = (AcquisitionCount + (AcquisitionChunkSize - 1)) / AcquisitionChunkSize;
- for (u32 acquisition_chunk = 0; acquisition_chunk < AcquisitionChunkCount; acquisition_chunk++) {
- u32 acquisition = acquisition_chunk * AcquisitionChunkSize;
- if (Sparse && acquisition_chunk == 0) acquisition++;
-
+ for (u32 acquisition = u32(Sparse); acquisition < AcquisitionCount; acquisition += AcquisitionChunkSize) {
f32 transmit_indices[AcquisitionChunkSize];
for (u32 transmit = 0; transmit < AcquisitionChunkSize; transmit++) {
u32 index = acquisition + transmit;
- if ((AcquisitionCount % AcquisitionChunkSize) != 0 && (index >= AcquisitionCount))
+ if (((AcquisitionCount + u32(Sparse)) % AcquisitionChunkSize) != 0 && (index >= AcquisitionCount))
break;
f32 tx_channel = Sparse ? f32(S16(HeapBase + SparseElements - 2 * u32(Sparse)).x[index]) : f32(index);
f32 transmit_x_delta = xdc_world_point.x - xdc_element_pitch.x * tx_channel;
@@ -360,7 +357,7 @@ RESULT_TYPE FORCES(const vec3 world_point)
f32 receive_index = sqrt(receive_x_delta * receive_x_delta + z_delta_squared) * SamplingFrequency / SpeedOfSound;
f32 apodization = apodize(a_arg);
for (u32 transmit = 0; transmit < AcquisitionChunkSize; transmit += 1u, rf_pointer += AcquisitionByteStride) {
- if ((AcquisitionCount % AcquisitionChunkSize) != 0 &&
+ if (((AcquisitionCount + u32(Sparse)) % AcquisitionChunkSize) != 0 &&
(acquisition + transmit >= AcquisitionCount))
break;