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