- For PVRTC1, we now memset() any extra blocks after the blocks we know will be transcoded into. This is done because in GL there is padding that occurs on textures smaller than 8x8.
- Removing all OpenMP usage and replacing it with a basis C++11 job system.
- Fixing TSVQ class so it can split very long "thin" clusters that before weren't being split. This improves endpoint quantization on videos and complex 2D textures.
- More frontend perf. optimizations.
Tested on OSX, Linux with gcc/clang, and Win using MSVC 2019.
It looks like #7 didn't update CMakeLists.txt properly - defines
specified with -D have to be added as compile definitions.
Additionally, -O3 must be specified redundantly as a compile option and
as a link option - compile option makes .wasm bits small & fast, and
link option enables JS minifier.
After this fix CMake build results in minimal js/wasm files as well.
This change makes it possible to exclude formats using compile time
options. BC7 is *never* exposed on the web and it has an absolutely huge
coding table which means we're just wasting space.
basis_transcoder.js 58707
basis_transcoder.wasm 224404
The impact on the file size is enormous, and it's used to output one
line into console which isn't exposed through the API anyhow.
basis_transcoder.js 58707
basis_transcoder.wasm 705079