ogl_beamforming

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

README.md (1957B)


      1 # ogl beamforming
      2 
      3 # Building
      4 
      5 The beamformer requires a compiler with support for `_Float16`.
      6 This means that GCC 12.1 or Clang 15 are the mininum supported
      7 compiler versions. Testing on compilers this old has been limited
      8 so you may run into bugs which do not occur with newer compilers.
      9 It is highly recommended that you use a more modern compiler (GCC
     10 15+ or Clang 21+). Note that MSVC is not supported.
     11 
     12 Bootstrap the build tool once and it will rebuild itself as
     13 needed:
     14 ```sh
     15 cc -march=native -O3 build.c -o build
     16 ```
     17 
     18 Then run the build tool:
     19 ```sh
     20 ./build
     21 ```
     22 
     23 ## Debug Builds
     24 Pass the build tool the `--debug` flag to get a build suitable for
     25 development/debugging:
     26 ```
     27 ./build --debug
     28 ```
     29 
     30 Debug builds enable dynamic reloading of almost the entire program
     31 and you can make changes to most code and recompile without
     32 exiting the application.
     33 
     34 # Troubleshooting
     35 
     36 ## Missing Vulkan Support
     37 
     38 If the beamformer fails to start with a message like:
     39 ```sh
     40 ./ogl
     41 [vulkan]  selecting device: llvmpipe (LLVM 15.0.7, 256 bits)
     42 [vulkan]  fatal error: missing required device extensions:
     43 [vulkan]      VK_KHR_external_memory
     44 [vulkan]      VK_KHR_external_memory_win32
     45 ```
     46 you may need to use the legacy branch:
     47 
     48 ```sh
     49 git checkout legacy
     50 ./build
     51 ```
     52 
     53 The `legacy` branch will be supported until the need for those
     54 extensions is removed but will not see feature or performance
     55 updates.
     56 
     57 ## `llvmpipe`
     58 
     59 If the beamformer starts with the `llvmpipe` device it means that
     60 your system is missing vulkan libraries. On Ubuntu this can be
     61 resolved with:
     62 
     63 ```sh
     64 sudo apt install libvulkan1
     65 ```
     66 
     67 # Publication
     68 
     69 This project has a paper covering some of the design and
     70 optimization up until commit 295b9c4. It is currently available as
     71 a preprint: [arXiv:2512.11086]. If you wish to refer to this
     72 project in any published work you can cite that article. The link
     73 will be updated once a full publication is available.
     74 
     75 [arXiv:2512.11086]: https://arxiv.org/abs/2512.11086