Skip to content

4.7.0

Compare
Choose a tag to compare
@solidpixel solidpixel released this 11 Jan 21:54
· 41 commits to main since this release

Status: January 2024

The 4.7.0 release is a major maintenance release, fixing rounding behavior in the decompressor to match the Khronos specification. This fix includes the addition of explicit support for optimizing for decode_unorm8 rounding.

Reminder - the codec library API is not designed to be binary compatible across versions. We always recommend rebuilding your client-side code using the updated astcenc.h header.

  • General:
    • Bug fix: sRGB LDR decompression now uses the correct endpoint expansion method to create the 16-bit RGB endpoint colors, and removes the previous correction code from the interpolation function. This bug could result in LSB bit flips relative to the standard specification.
    • Bug fix: Decompressing to an 8-bit per component output image now matches the decode_unorm8 extension rounding rules. This bug could result in LSB bit flips relative to the standard specification.
    • Bug fix: Code now avoids using alignas() in the reference C implementation, as the default alignas(16) is narrower than the native minimum alignment requirement on some CPU architectures.
    • Feature: Library configuration supports a new flag, ASTCENC_FLG_USE_DECODE_UNORM8. This flag indicates that the image will be used with the decode_unorm8 decode mode. When set during compression this allows the compressor to use the correct rounding when determining the best encoding.
    • Feature: Command line tool supports a new option, -decode_unorm8. This option indicates that the image will be used with the decode_unorm8 decode mode. This option will automatically be set for decompression (-d*) and trial (-t*) tool operation if the decompressed output image is stored to an 8-bit per component file format. This option must be set manually for compression (-c*) tool operation, as the desired decode mode cannot be reliably determined.
    • Feature: Library configuration supports a new optional progress reporting callback to be specified. This is called during compression to to allow interactive tooling use cases to display incremental progress. The command line tool uses this feature to show compression progress unless -silent is used.
    • Feature: Prebuilt Linux binary releases updated to use Clang 14 (previously Clang 9) which gives a small performance improvement.

Binary release sha256 checksums

4f596546808c58f2b7e0271302d05df40159cdc7c47645cc96f331229d22ab66  astcenc-4.7.0-linux-x64.zip
176b2c0bf2673d15eb1ba11c1e2691ccb041b79e4076fccd6cd0ece3f75aa2bc  astcenc-4.7.0-macos-universal.zip
092bc9023195c9ccef811c97f1e0746e0f803a5397e5a18773566615b077914d  astcenc-4.7.0-windows-arm64.zip
deb20ea0cb4ef522ca1eecee82358bfc9cdafd8d4101bc22f28502a0165180bd  astcenc-4.7.0-windows-x64.zip