ogl_beamforming

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

Commit: def847b0fe1b6411b2fe7462868a2b878dd51e89
Parent: de5fd539910b244b6906c3bd05451038ea010d8c
Author: Randy Palamar
Date:   Wed, 29 Apr 2026 14:21:03 -0600

core: fix wasted 4K in shared memory scratch area

The scratch region is supposed to start at 1 past the last
reserved parameter block but that was being added twice. Now it is
only added once and there is an extra 4K of scratch space.

Diffstat:
Mbeamformer_shared_memory.c | 6+++---
1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/beamformer_shared_memory.c b/beamformer_shared_memory.c @@ -1,5 +1,5 @@ /* See LICENSE for license details. */ -#define BEAMFORMER_SHARED_MEMORY_VERSION (27UL) +#define BEAMFORMER_SHARED_MEMORY_VERSION (28UL) typedef struct BeamformerFrame BeamformerFrame; @@ -250,7 +250,7 @@ beamformer_shared_memory_release_lock(BeamformerSharedMemory *sm, i32 lock) function BeamformerParameterBlock * beamformer_parameter_block(BeamformerSharedMemory *sm, u32 block) { - assert(sm->reserved_parameter_blocks >= block); + assert(sm->reserved_parameter_blocks > block); BeamformerParameterBlock *result = (typeof(result))((u8 *)(sm + 1) + block * sizeof(*result)); return result; } @@ -283,7 +283,7 @@ function Arena beamformer_shared_memory_scratch_arena(BeamformerSharedMemory *sm, i64 shared_memory_size) { assert(sm->reserved_parameter_blocks > 0); - BeamformerParameterBlock *last = beamformer_parameter_block(sm, sm->reserved_parameter_blocks); + BeamformerParameterBlock *last = beamformer_parameter_block(sm, sm->reserved_parameter_blocks - 1); Arena result = {.beg = (u8 *)(last + 1), .end = (u8 *)sm + shared_memory_size}; result.beg = arena_aligned_start(result, KB(4)); return result;