Skip to content

2.5

Choose a tag to compare

@solidpixel solidpixel released this 26 Mar 12:22
· 1049 commits to main since this release
1d60599

Status: Released

The 2.5 release is the last major release in the 2.x series. After this release a 2.x branch will provide stable long-term support, and the main branch will switch to focusing on more radical changes for the 3.x series.

Reminder for users of the library interface - the API is not designed to be stable across versions, and this release is not compatible with earlier 2.x releases. Please update and rebuild your client-side code using the updated astcenc.h header.

General:

  • Feature: The ISA_INVARIANCE build option is no longer supported, as there is no longer any performance benefit from the variant paths. All builds are now using the equivalent of the ISA_INVARIANCE=ON setting, and all builds (except Armv7) are now believed to be invariant across operating systems, compilers, CPU architectures, and SIMD instruction sets.
  • Feature: Armv8 32-bit builds with NEON are now supported, with out-of-the-box support for Arm Linux soft-float and hard-float ABIs. There are no pre-built binaries for these targets; support is included for library users targeting older 32-bit Android and iOS devices.
  • Feature: A compressor mode for encoding HDR textures that have been encoded into LDR RGBM wrapper format is now supported. Note that this encoding has some strong recommendations for how the RGBM encoding is implemented to avoid block artifacts in the compressed image.

Core API:

  • API Change: The core API has been changed to be a pure C API, making it easier to wrap the codec in a stable shared library ABI. Some entry points that used to accept references now expect pointers.
  • API Change: The decompression functionality in the core API has been changed to allow use of multiple threads. The design pattern matches the compression functionality, requiring the caller to create the threads, synchronize them between images, and to call the new astcenc_decompress_reset() function between images.
  • API Feature: Defines to support exporting public API entry point symbols from a shared object are provided, but not exposed off-the-shelf by the CMake provided by the project.
  • API Feature: New astcenc_get_block_info() function added to the core API to allow users to perform high level analysis of compressed data. This API is not implemented in decompressor-only builds.
  • API Feature: Codec configuration structure has been extended to expose the new RGBM compression mode. See the API header for details.

Performance:

This release includes further performance optimizations which improve performance vs the 2.4 release by between 15 and 25%, depending on image and quality search preset used.

Image quality:

The -fast and -fastest presets have been retuned to give measurably better image quality. Despite this they are still faster than the equivalent in the 2.4 release.

Binary release sha256 checksums

a90396a4151fb1cda949c5179a710acbd6204fd9d4af98a5c36a6c16baec3cf2  astcenc-2.5-linux-x64.zip
a40dfda14ed4a7c7cffc9c1376fe492adf7ed182d6e7d576572b272e97014853  astcenc-2.5-macos-aarch64.zip
4a8108deadce5a12319d6e31a12b08d08b3cbfb207bce8b2b43cdd1cb0288dd3  astcenc-2.5-macos-x64.zip
8f38f6c380131ab5b4a4a6e1bb89f70304a466ef0c95f2efc18746208c83f48b  astcenc-2.5-windows-x64.zip