@@ -9,17 +9,27 @@ clocked at 4.2 GHz, running `astcenc` using AVX2 and 6 threads.
99<!-- ---------------------------------------------------------------------- -->
1010## 4.7.0
1111
12- ** Status:** TBD
12+ ** Status:** January 2024
1313
14- The 4.7.0 release is a maintenance release.
14+ The 4.7.0 release is a major maintenance release, fixing rounding behavior in
15+ the decompressor to match the Khronos specification. This fix includes the
16+ addition of explicit support for optimizing for ` decode_unorm8 ` rounding.
17+
18+ Reminder - the codec library API is not designed to be binary compatible across
19+ versions. We always recommend rebuilding your client-side code using the updated
20+ ` astcenc.h ` header.
1521
1622* ** General:**
17- * ** Bug fix:** sRGB LDR decompression now uses correct ` decode_fp16 ` decode
18- mode rounding rules for the alpha channel.
19- * ** Bug fix:** Linear LDR decompression now uses correct ` decode_unorm8 `
20- decode mode rounding rules when writing to an 8-bit output image.
21- * ** Bug fix:** Avoid using ` alignas() ` the reference C implementation, as the
22- default ` alignas(16) ` is narrower than the native alignment on some CPUs.
23+ * ** Bug fix:** sRGB LDR decompression now uses the correct endpoint expansion
24+ method to create the 16-bit RGB endpoint colors, and removes the previous
25+ correction code from the interpolation function. This bug could result in
26+ LSB bit flips relative to the standard specification.
27+ * ** Bug fix:** Decompressing to an 8-bit per component output image now matches
28+ the ` decode_unorm8 ` extension rounding rules. This bug could result in
29+ LSB bit flips relative to the standard specification.
30+ * ** Bug fix:** Code now avoids using ` alignas() ` in the reference C
31+ implementation, as the default ` alignas(16) ` is narrower than the
32+ native minimum alignment requirement on some CPUs.
2333 * ** Feature:** Library configuration supports a new flag,
2434 ` ASTCENC_FLG_USE_DECODE_UNORM8 ` . This flag indicates that the image will be
2535 used with the ` decode_unorm8 ` decode mode. When set during compression
@@ -30,7 +40,7 @@ The 4.7.0 release is a maintenance release.
3040 decode mode. This option will automatically be set for decompression
3141 (` -d* ` ) and trial (` -t* ` ) tool operation if the decompressed output image
3242 is stored to an 8-bit per component file format. This option must be set
33- maually for compression (` -c* ` ) tool operation, as the desired decode mode
43+ manually for compression (` -c* ` ) tool operation, as the desired decode mode
3444 cannot be reliably determined.
3545 * ** Feature:** Library configuration supports a new optional progress
3646 reporting callback to be specified. This is called during compression to
@@ -49,7 +59,7 @@ large core count Windows systems.
4959* ** General:**
5060 * ** Optimization:** Windows builds of the ` astcenc ` command line tool can now
5161 use more than 64 cores on large core count systems. This change doubled
52- command line performance for ` -exhastive ` compression when testing on an
62+ command line performance for ` -exhaustive ` compression when testing on an
5363 96 core/192 thread system.
5464 * ** Feature:** Windows Arm64 native builds of the ` astcenc ` command line tool
5565 are now included in the prebuilt release binaries.
@@ -385,4 +395,4 @@ Key for charts:
385395
386396- - -
387397
388- _ Copyright © 2022-2023 , Arm Limited and contributors. All rights reserved._
398+ _ Copyright © 2022-2024 , Arm Limited and contributors. All rights reserved._
0 commit comments