4.5.0
Status: June 2023
The 4.5.0 release is a minor release with minor image quality improvements, and multiple build system quality-of-life improvements.
- General:
- Bug-fix: Improved handling compiler arguments in CMake, including consistent use of MSVC-style command line arguments for ClangCL.
- Bug-fix: Invariant Clang builds now use
-ffp-model=precise
with-ffp-contract=off
which is needed to restore invariance due to recent changes in compiler defaults. - Change: macOS binary releases are now distributed as a single universal binary for all platforms.
- Change: Windows binary releases are now compiled with VS2022.
- Change: Invariant MSVC builds for VS2022 now use
/fp:precise
instead of/fp:strict
, which is is now possible because precise no longer implies contraction. This should improve performance for MSVC builds. - Change: Non-invariant Clang builds now use
-ffp-model=precise
with-ffp-contract=on
. This should improve performance on older Clang versions which defaulted to no contraction. - Change: Non-invariant MSVC builds for VS2022 now use
/fp:precise
with/fp:contract
. This should improve performance for MSVC builds. - Change: CMake config variables now use an
ASTCENC_
prefix to add a namespace and group options when the library is used in a larger project. - Change: CMake config
ASTCENC_UNIVERSAL_BUILD
for building macOS universal binaries has been improved to include thex86_64h
slice for AVX2 builds. Universal builds are now on by default for macOS, and always include NEON (arm64), SSE4.1 (x86_64), and AVX2 (x86_64h) variants. - Change: CMake config
ASTCENC_NO_INVARIANCE
has been inverted to remove the negated option, and is nowASTCENC_INVARIANCE
with a default ofON
. Disabling this option can substantially improve performance, but images can different across platforms and compilers. - Optimization: Color quantization and packing for LDR RGB and RGBA has been vectorized to improve performance.
- Change: Color quantization for LDR RGB and RGBA endpoints will now try multiple quantization packing methods, and pick the one with the lowest endpoint encoding error. This gives a minor image quality improvement, for no significant performance impact when combined with the vectorization optimizations.
Binary release sha256 checksums
fe2a1e5c8e57fc77175c6e9d0e1a10e583816507c82c748c568694bf39ae9f57 astcenc-4.5.0-linux-x64.zip
bc8895222820106135575b7dd1bef4d9f184be7ef7de6e684ab563b64c22d163 astcenc-4.5.0-macos-universal.zip
7c63f167558c65e607f72a4dc30b86d631ae3b561cffaee9d2afb5d5149d72e0 astcenc-4.5.0-windows-x64.zip