This page summarizes the major functional and performance changes in each release of the 2.x series.
All performance data on this page is measured on an Intel Core i5-9600K clocked at 4.2 GHz, running astcenc using 6 threads.
Status:
The 2.2 release is the third release in the 2.x series. It includes ...
Reminder for users of the library interface - the API is not designed to be
stable across versions, and this release is not compatible with 2.1. Please
recompile your client-side code using the updated astcenc.h
header.
- General:
- Improvement: SSE4.2 profile changed to SSE4.1, which more accurately reflects the feature set used as we were not using any SSE4.2 intrinsics.
- Core API:
- API Change: Images using region-based metrics no longer need to include
padding; all input images should be tightly packed and
dim_pad
is removed from theastcenc_image
structure. - API Change: Image
data
is no longer a 3D array accessed usingdata[z][y][x]
indexing, it's an array of 2D slices. This makes it easier to directly use images loaded from other libraries.
- API Change: Images using region-based metrics no longer need to include
padding; all input images should be tightly packed and
Status: Released, November 2020
The 2.1 release is the second release in the 2.x series. It includes a number of performance optimizations and new features.
Reminder for users of the library interface - the API is not designed to be
stable across versions, and this release is not compatible with 2.0. Please
recompile your client-side code using the updated astcenc.h
header.
- Command line:
- Bug fix: The meaning of the
-tH\cH\dH
and-th\ch\dh
compression modes was inverted. They now match the documentation; use-*H
for HDR RGBA, and-*h
for HDR RGB with LDR alpha. - Feature: A new
-fastest
quality preset is now available. This is designed for fast "roughing out" of new content, and sacrifices significant image quality compared to-fast
. We do not recommend its use for production builds. - Feature: A new
-candidatelimit
compression tuning option is now available. This is a power-user control to determine how many candidates are returned for each block mode encoding trial. This feature is used automatically by the search presets; see-help
for details. - Improvement: The compression test modes (
-tl\ts\th\tH
) now emit a MTex/s performance metric, in addition to coding time.
- Bug fix: The meaning of the
- Core API:
- Feature: A new quality preset
ASTCENC_PRE_FASTEST
is available. See-fastest
above for details. - Feature: A new tuning option
tune_candidate_limit
is available in the config structure. See-candidatelimit
above for details. - Feature: Image input/output can now use
ASTCENC_TYPE_F32
data types.
- Feature: A new quality preset
- Stability:
- Feature: The SSE2, SSE4.2, and AVX2 variants now produce identical
compressed output when run on the same CPU when compiled with the
preprocessor define
ASTCENC_ISA_INVARIANCE=1
. For Make builds this can be set on the command line by settingISA_INV=1
. ISA invariance is off by default; it reduces performance by 1-3%.
- Feature: The SSE2, SSE4.2, and AVX2 variants now produce identical
compressed output when run on the same CPU when compiled with the
preprocessor define
Key for performance charts:
- Color = block size (see legend).
- Letter = image format (N = normal map, G = greyscale, L = LDR, H = HDR).
Absolute performance vs 2.0 release:
Relative performance vs 2.0 release:
Status: Released, August 2020
The 2.0 release is first release in the 2.x series. It includes a number of major changes over the earlier 1.7 series, and is not command-line compatible.
- The core codec can be built as a library, exposed via a new codec API.
- The core codec supports accelerated SIMD paths for SSE2, SSE4.2, and AVX2.
- The command line syntax has a clearer mapping to Khronos feature profiles.
Key for performance charts
- Color = block size (see legend).
- Letter = image format (N = normal map, G = greyscale, L = LDR, H = HDR).
Absolute performance vs 1.7 release:
Relative performance vs 1.7 release: