@@ -9,17 +9,27 @@ clocked at 4.2 GHz, running `astcenc` using AVX2 and 6 threads.
9
9
<!-- ---------------------------------------------------------------------- -->
10
10
## 4.7.0
11
11
12
- ** Status:** TBD
12
+ ** Status:** January 2024
13
13
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.
15
21
16
22
* ** 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.
23
33
* ** Feature:** Library configuration supports a new flag,
24
34
` ASTCENC_FLG_USE_DECODE_UNORM8 ` . This flag indicates that the image will be
25
35
used with the ` decode_unorm8 ` decode mode. When set during compression
@@ -30,7 +40,7 @@ The 4.7.0 release is a maintenance release.
30
40
decode mode. This option will automatically be set for decompression
31
41
(` -d* ` ) and trial (` -t* ` ) tool operation if the decompressed output image
32
42
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
34
44
cannot be reliably determined.
35
45
* ** Feature:** Library configuration supports a new optional progress
36
46
reporting callback to be specified. This is called during compression to
@@ -49,7 +59,7 @@ large core count Windows systems.
49
59
* ** General:**
50
60
* ** Optimization:** Windows builds of the ` astcenc ` command line tool can now
51
61
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
53
63
96 core/192 thread system.
54
64
* ** Feature:** Windows Arm64 native builds of the ` astcenc ` command line tool
55
65
are now included in the prebuilt release binaries.
@@ -385,4 +395,4 @@ Key for charts:
385
395
386
396
- - -
387
397
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