diff options
| author | skal <pascal.massimino@gmail.com> | 2026-02-02 12:25:18 +0100 |
|---|---|---|
| committer | skal <pascal.massimino@gmail.com> | 2026-02-02 12:25:18 +0100 |
| commit | ab2e2bcc9ae8a9a18fc1ea52ea2bd18fdd140650 (patch) | |
| tree | 1acad2dfbb26d0a61bdf287ef78e47205509f312 /doc | |
| parent | e7fc9b3adeb37cb10726718e512b0da8dc49bc11 (diff) | |
docs: Incorporate PHASE2_COMPRESSION.md and update README
- Moved PHASE2_COMPRESSION.md into the doc/ directory.
- Updated README.md to list and describe the new documentation file.
Diffstat (limited to 'doc')
| -rw-r--r-- | doc/PHASE2_COMPRESSION.md | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/doc/PHASE2_COMPRESSION.md b/doc/PHASE2_COMPRESSION.md new file mode 100644 index 0000000..3c83fa4 --- /dev/null +++ b/doc/PHASE2_COMPRESSION.md @@ -0,0 +1,18 @@ +# Phase 2 – Compression & Size Reduction + +This document tracks ideas and strategies for the final optimization phase to reach the <=64k goal. + +## Executable Size + +### Windows +- **Replace GLFW**: For the final build, replace the statically linked GLFW library with a minimal "tiny" implementation using native Windows API (`CreateWindow`, `PeekMessage`, etc.). This is expected to yield significant savings. + - *Status*: Deferred until feature completion. +- **CRT Replacement**: Consider replacing the standard C runtime (CRT) with a minimal startup code (e.g., `tiny_crt` or similar) to avoid linking heavy standard libraries. +- **Import Minimization**: Dynamically load functions via `GetProcAddress` hash lookup to reduce the Import Address Table (IAT) size. + +### General +- **Shader Compression**: Minify WGSL shaders (remove whitespace, rename variables). +- **Asset Compression**: + - Store spectrograms with logarithmic frequency bins. + - Quantize spectral values to `uint16_t` or `uint8_t`. + - Use a custom packer/compressor for the asset blob.
\ No newline at end of file |
