Skip to content

Commit 1a51f29

Browse files
committed
Update code for 4.7.0 release
1 parent d596f6d commit 1a51f29

File tree

3 files changed

+23
-15
lines changed

3 files changed

+23
-15
lines changed

CMakeLists.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# SPDX-License-Identifier: Apache-2.0
22
# ----------------------------------------------------------------------------
3-
# Copyright 2020-2023 Arm Limited
3+
# Copyright 2020-2024 Arm Limited
44
#
55
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
66
# use this file except in compliance with the License. You may obtain a copy
@@ -24,7 +24,7 @@ if(MSVC)
2424
add_compile_options("/wd4324") # Disable structure was padded due to alignment specifier
2525
endif()
2626

27-
project(astcencoder VERSION 4.6.1)
27+
project(astcencoder VERSION 4.7.0)
2828

2929
set(CMAKE_CXX_STANDARD 14)
3030
set(CMAKE_CXX_STANDARD_REQUIRED ON)

Docs/ChangeLog-4x.md

+21-11
Original file line numberDiff line numberDiff line change
@@ -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._

Source/astcenc_compress_symbolic.cpp

-2
Original file line numberDiff line numberDiff line change
@@ -1237,8 +1237,6 @@ void compress_block(
12371237
vfloat4 color_f32 = clamp(0.0f, 1.0f, blk.origin_texel) * 65535.0f;
12381238
vint4 color_u16 = float_to_int_rtn(color_f32);
12391239
store(color_u16, scb.constant_color);
1240-
1241-
// TODO: Check this encodes correctly for decode_unorm8
12421240
}
12431241

12441242
trace_add_data("exit", "quality hit");

0 commit comments

Comments
 (0)