1cc1dc7a3Sopenharmony_ci# 3.x series change log
2cc1dc7a3Sopenharmony_ci
3cc1dc7a3Sopenharmony_ciThis page summarizes the major functional and performance changes in each
4cc1dc7a3Sopenharmony_cirelease of the 3.x series.
5cc1dc7a3Sopenharmony_ci
6cc1dc7a3Sopenharmony_ciAll performance data on this page is measured on an Intel Core i5-9600K
7cc1dc7a3Sopenharmony_ciclocked at 4.2 GHz, running `astcenc` using AVX2 and 6 threads.
8cc1dc7a3Sopenharmony_ci
9cc1dc7a3Sopenharmony_ci<!-- ---------------------------------------------------------------------- -->
10cc1dc7a3Sopenharmony_ci## 3.7
11cc1dc7a3Sopenharmony_ci
12cc1dc7a3Sopenharmony_ci**Status:** April 2022
13cc1dc7a3Sopenharmony_ci
14cc1dc7a3Sopenharmony_ciThe 3.7 release contains another round of performance optimizations, including
15cc1dc7a3Sopenharmony_cisignificant improvements to the command line front-end (faster PNG loader) and
16cc1dc7a3Sopenharmony_cithe arm64 build of the codec (faster NEON implementation).
17cc1dc7a3Sopenharmony_ci
18cc1dc7a3Sopenharmony_ci* **General:**
19cc1dc7a3Sopenharmony_ci  * **Feature:** The command line tool PNG loader has been switched to use
20cc1dc7a3Sopenharmony_ci    the Wuffs library, which is robust and significantly faster than the
21cc1dc7a3Sopenharmony_ci    current stb_image implementation.
22cc1dc7a3Sopenharmony_ci  * **Feature:** Support for non-invariant builds returns. Opt-in to slightly
23cc1dc7a3Sopenharmony_ci    faster, but not bit-exact, builds by setting `-DNO_INVARIANCE=ON` for the
24cc1dc7a3Sopenharmony_ci    CMake configuration. This improves performance by around 2%.
25cc1dc7a3Sopenharmony_ci  * **Optimization:** Changed SIMD `select()` so that it matches the default
26cc1dc7a3Sopenharmony_ci    NEON behavior (bitwise select), rather than the default x86-64 behavior
27cc1dc7a3Sopenharmony_ci    (lane select on MSB). Specialization `select_msb()` added for the one case
28cc1dc7a3Sopenharmony_ci    we want to select on a sign-bit, where NEON needs a different
29cc1dc7a3Sopenharmony_ci    implementation. This provides a significant (>25%) performance uplift on
30cc1dc7a3Sopenharmony_ci    NEON implementations.
31cc1dc7a3Sopenharmony_ci
32cc1dc7a3Sopenharmony_ci### Performance:
33cc1dc7a3Sopenharmony_ci
34cc1dc7a3Sopenharmony_ciKey for charts:
35cc1dc7a3Sopenharmony_ci
36cc1dc7a3Sopenharmony_ci* Color = block size (see legend).
37cc1dc7a3Sopenharmony_ci* Letter = image format (N = normal map, G = grayscale, L = LDR, H = HDR).
38cc1dc7a3Sopenharmony_ci
39cc1dc7a3Sopenharmony_ci**Relative performance vs 3.5 release:**
40cc1dc7a3Sopenharmony_ci
41cc1dc7a3Sopenharmony_ci![Relative scores 3.7 vs 3.6](./ChangeLogImg/relative-3.6-to-3.7.png)
42cc1dc7a3Sopenharmony_ci
43cc1dc7a3Sopenharmony_ci<!-- ---------------------------------------------------------------------- -->
44cc1dc7a3Sopenharmony_ci## 3.6
45cc1dc7a3Sopenharmony_ci
46cc1dc7a3Sopenharmony_ci**Status:** April 2022
47cc1dc7a3Sopenharmony_ci
48cc1dc7a3Sopenharmony_ciThe 3.6 release contains another round of performance optimizations.
49cc1dc7a3Sopenharmony_ci
50cc1dc7a3Sopenharmony_ciThere are no interface changes in this release, but in general the API is not
51cc1dc7a3Sopenharmony_cidesigned to be binary compatible across versions. We always recommend
52cc1dc7a3Sopenharmony_cirebuilding your client-side code using the updated `astcenc.h` header.
53cc1dc7a3Sopenharmony_ci
54cc1dc7a3Sopenharmony_ci* **General:**
55cc1dc7a3Sopenharmony_ci  * **Feature:** Data tables are now optimized for contexts without the
56cc1dc7a3Sopenharmony_ci    `SELF_DECOMPRESS_ONLY` flag set. The flag therefore no longer improves
57cc1dc7a3Sopenharmony_ci    compression performance, but still reduces context creation time and
58cc1dc7a3Sopenharmony_ci    context data table memory footprint.
59cc1dc7a3Sopenharmony_ci  * **Feature:** Image quality for 4x4 `-fastest` configuration has been
60cc1dc7a3Sopenharmony_ci    improved.
61cc1dc7a3Sopenharmony_ci  * **Optimization:** Decimation modes are reliably excluded from processing
62cc1dc7a3Sopenharmony_ci    when they are only partially selected in the compressor configuration (e.g.
63cc1dc7a3Sopenharmony_ci    if used for single plane, but not dual plane modes). This is a significant
64cc1dc7a3Sopenharmony_ci    performance optimization for all quality levels.
65cc1dc7a3Sopenharmony_ci  * **Optimization:** Fast-path block load function variant added for 2D LDR
66cc1dc7a3Sopenharmony_ci    images with no swizzle. This is a moderate performance optimization for the
67cc1dc7a3Sopenharmony_ci    fast and fastest quality levels.
68cc1dc7a3Sopenharmony_ci
69cc1dc7a3Sopenharmony_ci### Performance:
70cc1dc7a3Sopenharmony_ci
71cc1dc7a3Sopenharmony_ciKey for charts:
72cc1dc7a3Sopenharmony_ci
73cc1dc7a3Sopenharmony_ci* Color = block size (see legend).
74cc1dc7a3Sopenharmony_ci* Letter = image format (N = normal map, G = grayscale, L = LDR, H = HDR).
75cc1dc7a3Sopenharmony_ci
76cc1dc7a3Sopenharmony_ci**Relative performance vs 3.5 release:**
77cc1dc7a3Sopenharmony_ci
78cc1dc7a3Sopenharmony_ci![Relative scores 3.6 vs 3.5](./ChangeLogImg/relative-3.5-to-3.6.png)
79cc1dc7a3Sopenharmony_ci
80cc1dc7a3Sopenharmony_ci<!-- ---------------------------------------------------------------------- -->
81cc1dc7a3Sopenharmony_ci## 3.5
82cc1dc7a3Sopenharmony_ci
83cc1dc7a3Sopenharmony_ci**Status:** March 2022
84cc1dc7a3Sopenharmony_ci
85cc1dc7a3Sopenharmony_ciThe 3.5 release contains another round of performance optimizations.
86cc1dc7a3Sopenharmony_ci
87cc1dc7a3Sopenharmony_ciThere are no interface changes in this release, but in general the API is not
88cc1dc7a3Sopenharmony_cidesigned to be binary compatible across versions. We always recommend
89cc1dc7a3Sopenharmony_cirebuilding your client-side code using the updated `astcenc.h` header.
90cc1dc7a3Sopenharmony_ci
91cc1dc7a3Sopenharmony_ci* **General:**
92cc1dc7a3Sopenharmony_ci  * **Feature:** Compressor configurations using `SELF_DECOMPRESS_ONLY` mode
93cc1dc7a3Sopenharmony_ci    store compacted partition tables, which significantly improves both
94cc1dc7a3Sopenharmony_ci    context create time and runtime performance.
95cc1dc7a3Sopenharmony_ci  * **Feature:** Bilinear infill for decimated weight grids supports a new
96cc1dc7a3Sopenharmony_ci    variant for half-decimated grids which are only decimated in one axis.
97cc1dc7a3Sopenharmony_ci
98cc1dc7a3Sopenharmony_ci### Performance:
99cc1dc7a3Sopenharmony_ci
100cc1dc7a3Sopenharmony_ciKey for charts:
101cc1dc7a3Sopenharmony_ci
102cc1dc7a3Sopenharmony_ci* Color = block size (see legend).
103cc1dc7a3Sopenharmony_ci* Letter = image format (N = normal map, G = grayscale, L = LDR, H = HDR).
104cc1dc7a3Sopenharmony_ci
105cc1dc7a3Sopenharmony_ci**Relative performance vs 3.4 release:**
106cc1dc7a3Sopenharmony_ci
107cc1dc7a3Sopenharmony_ci![Relative scores 3.5 vs 3.4](./ChangeLogImg/relative-3.4-to-3.5.png)
108cc1dc7a3Sopenharmony_ci
109cc1dc7a3Sopenharmony_ci
110cc1dc7a3Sopenharmony_ci<!-- ---------------------------------------------------------------------- -->
111cc1dc7a3Sopenharmony_ci## 3.4
112cc1dc7a3Sopenharmony_ci
113cc1dc7a3Sopenharmony_ci**Status:** February 2022
114cc1dc7a3Sopenharmony_ci
115cc1dc7a3Sopenharmony_ciThe 3.4 release introduces another round of optimizations, removing a number
116cc1dc7a3Sopenharmony_ciof power-user configuration options to simplify the core compressor data path.
117cc1dc7a3Sopenharmony_ci
118cc1dc7a3Sopenharmony_ciReminder for users of the library interface - the API is not designed to be
119cc1dc7a3Sopenharmony_cibinary compatible across versions, and this release is not compatible with
120cc1dc7a3Sopenharmony_ciearlier releases. Please update and rebuild your client-side code using the
121cc1dc7a3Sopenharmony_ciupdated `astcenc.h` header.
122cc1dc7a3Sopenharmony_ci
123cc1dc7a3Sopenharmony_ci* **General:**
124cc1dc7a3Sopenharmony_ci  * **Feature:** Many memory allocations have been moved off the stack into
125cc1dc7a3Sopenharmony_ci    dynamically allocated working memory. This significantly reduces the peak
126cc1dc7a3Sopenharmony_ci    stack usage, allowing the compressor to run in systems with 128KB stack
127cc1dc7a3Sopenharmony_ci    limits.
128cc1dc7a3Sopenharmony_ci  * **Feature:** Builds now support `-DBLOCK_MAX_TEXELS=<count>` to allow a
129cc1dc7a3Sopenharmony_ci    compressor to support a subset of block sizes. This can reduce binary size
130cc1dc7a3Sopenharmony_ci    and runtime memory footprint, and improve performance.
131cc1dc7a3Sopenharmony_ci  * **Feature:** The `-v` and `-va` options to set a per-texel error weight
132cc1dc7a3Sopenharmony_ci    function are no longer supported.
133cc1dc7a3Sopenharmony_ci  * **Feature:** The `-b` option to set a per-texel error weight boost for
134cc1dc7a3Sopenharmony_ci    block border texels is no longer supported.
135cc1dc7a3Sopenharmony_ci  * **Feature:** The `-a` option to set a per-texel error weight based on texel
136cc1dc7a3Sopenharmony_ci    alpha value is no longer supported as an error weighting tool, but is still
137cc1dc7a3Sopenharmony_ci    supported for providing sprite-sheet RDO.
138cc1dc7a3Sopenharmony_ci  * **Feature:** The `-mask` option to set an error metric for mask map
139cc1dc7a3Sopenharmony_ci    textures is still supported, but is currently a no-op in the compressor.
140cc1dc7a3Sopenharmony_ci  * **Feature:** The `-perceptual` option to set a perceptual error metric is
141cc1dc7a3Sopenharmony_ci    still supported, but is currently a no-op in the compressor for mask map
142cc1dc7a3Sopenharmony_ci    and normal map textures.
143cc1dc7a3Sopenharmony_ci  * **Bug-fix:** Corrected decompression of error blocks in some cases, so now
144cc1dc7a3Sopenharmony_ci    returning the expected error color (magenta for LDR, NaN for HDR). Note
145cc1dc7a3Sopenharmony_ci    that astcenc determines the error color to use based on the output image
146cc1dc7a3Sopenharmony_ci    data type not the decoder profile.
147cc1dc7a3Sopenharmony_ci* **Binary releases:**
148cc1dc7a3Sopenharmony_ci  * **Improvement:** Windows binaries changed to use ClangCL 12.0, which gives
149cc1dc7a3Sopenharmony_ci    up to 10% performance improvement.
150cc1dc7a3Sopenharmony_ci
151cc1dc7a3Sopenharmony_ci### Performance:
152cc1dc7a3Sopenharmony_ci
153cc1dc7a3Sopenharmony_ciKey for charts:
154cc1dc7a3Sopenharmony_ci
155cc1dc7a3Sopenharmony_ci* Color = block size (see legend).
156cc1dc7a3Sopenharmony_ci* Letter = image format (N = normal map, G = grayscale, L = LDR, H = HDR).
157cc1dc7a3Sopenharmony_ci
158cc1dc7a3Sopenharmony_ci**Relative performance vs 3.3 release:**
159cc1dc7a3Sopenharmony_ci
160cc1dc7a3Sopenharmony_ci![Relative scores 3.4 vs 3.3](./ChangeLogImg/relative-3.3-to-3.4.png)
161cc1dc7a3Sopenharmony_ci
162cc1dc7a3Sopenharmony_ci
163cc1dc7a3Sopenharmony_ci<!-- ---------------------------------------------------------------------- -->
164cc1dc7a3Sopenharmony_ci## 3.3
165cc1dc7a3Sopenharmony_ci
166cc1dc7a3Sopenharmony_ci**Status:** November 2021
167cc1dc7a3Sopenharmony_ci
168cc1dc7a3Sopenharmony_ciThe 3.3 release improves image quality for normal maps, and two component
169cc1dc7a3Sopenharmony_citextures. Normal maps are expected to compress 25% slower than the 3.2
170cc1dc7a3Sopenharmony_cirelease, although it should be noted that they are still faster to compress
171cc1dc7a3Sopenharmony_ciin 3.3 than when using the 2.5 series. This release also fixes one reported
172cc1dc7a3Sopenharmony_cistability issue.
173cc1dc7a3Sopenharmony_ci
174cc1dc7a3Sopenharmony_ci* **General:**
175cc1dc7a3Sopenharmony_ci  * **Feature:** Normal map image quality has been improved.
176cc1dc7a3Sopenharmony_ci  * **Feature:** Two component image quality has been improved, provided
177cc1dc7a3Sopenharmony_ci    that unused components are correctly zero-weighted using e.g. `-cw` on the
178cc1dc7a3Sopenharmony_ci    command line.
179cc1dc7a3Sopenharmony_ci  * **Bug-fix:** Improved stability when trying to compress complex blocks that
180cc1dc7a3Sopenharmony_ci    could not beat even the starting quality threshold. These will now always
181cc1dc7a3Sopenharmony_ci    compress in to a constant color blocks.
182cc1dc7a3Sopenharmony_ci
183cc1dc7a3Sopenharmony_ci<!-- ---------------------------------------------------------------------- -->
184cc1dc7a3Sopenharmony_ci## 3.2
185cc1dc7a3Sopenharmony_ci
186cc1dc7a3Sopenharmony_ci**Status:** August 2021
187cc1dc7a3Sopenharmony_ci
188cc1dc7a3Sopenharmony_ciThe 3.2 release is a bugfix release; no significant image quality or
189cc1dc7a3Sopenharmony_ciperformance differences are expected.
190cc1dc7a3Sopenharmony_ci
191cc1dc7a3Sopenharmony_ci* **General:**
192cc1dc7a3Sopenharmony_ci  * **Bug-fix:** Improved stability when new contexts were created while other
193cc1dc7a3Sopenharmony_ci    contexts were compressing or decompressing an image.
194cc1dc7a3Sopenharmony_ci  * **Bug-fix:** Improved stability when decompressing blocks with invalid
195cc1dc7a3Sopenharmony_ci    block encodings.
196cc1dc7a3Sopenharmony_ci
197cc1dc7a3Sopenharmony_ci<!-- ---------------------------------------------------------------------- -->
198cc1dc7a3Sopenharmony_ci## 3.1
199cc1dc7a3Sopenharmony_ci
200cc1dc7a3Sopenharmony_ci**Status:** July 2021
201cc1dc7a3Sopenharmony_ci
202cc1dc7a3Sopenharmony_ciThe 3.1 release gives another performance boost, typically between 5 and 20%
203cc1dc7a3Sopenharmony_cifaster than the 3.0 release, as well as further incremental improvements to
204cc1dc7a3Sopenharmony_ciimage quality. A number of build system improvements make astcenc easier and
205cc1dc7a3Sopenharmony_cifaster to integrate into other projects as a library, including support for
206cc1dc7a3Sopenharmony_cibuilding universal binaries on macOS. Full change list is shown below.
207cc1dc7a3Sopenharmony_ci
208cc1dc7a3Sopenharmony_ciReminder for users of the library interface - the API is not designed to be
209cc1dc7a3Sopenharmony_cibinary compatible across versions, and this release is not compatible with
210cc1dc7a3Sopenharmony_ciearlier releases. Please update and rebuild your client-side code using the
211cc1dc7a3Sopenharmony_ciupdated `astcenc.h` header.
212cc1dc7a3Sopenharmony_ci
213cc1dc7a3Sopenharmony_ci* **General:**
214cc1dc7a3Sopenharmony_ci  * **Feature:** RGB color data now supports `-perceptual` operation. The
215cc1dc7a3Sopenharmony_ci    current implementation is simple, weighting color channel errors by their
216cc1dc7a3Sopenharmony_ci    contribution to perceived luminance. This mimics the behavior of the human
217cc1dc7a3Sopenharmony_ci    visual system, which is most sensitive to green, then red, then blue.
218cc1dc7a3Sopenharmony_ci  * **Feature:** Codec supports a new low weight search mode, which is a
219cc1dc7a3Sopenharmony_ci    simpler weight assignment for encodings with a low number of weights in the
220cc1dc7a3Sopenharmony_ci    weight grid. The weight threshold can be overridden using the new
221cc1dc7a3Sopenharmony_ci    `-lowweightmodelimit` command line option.
222cc1dc7a3Sopenharmony_ci  * **Feature:** All platform builds now support building a native binary.
223cc1dc7a3Sopenharmony_ci    Native binaries automatically select the SIMD level based on the default
224cc1dc7a3Sopenharmony_ci    configuration of the compiler in use. Native binaries built on one machine
225cc1dc7a3Sopenharmony_ci    may use different SIMD options than native binaries build on another.
226cc1dc7a3Sopenharmony_ci  * **Feature:** macOS platform builds now support building universal binaries
227cc1dc7a3Sopenharmony_ci    containing both `x86_64` and `arm64` target support.
228cc1dc7a3Sopenharmony_ci  * **Feature:** Building the command line can be disabled when using as a
229cc1dc7a3Sopenharmony_ci    library in another project. Set `-DCLI=OFF` during the CMake configure
230cc1dc7a3Sopenharmony_ci    step.
231cc1dc7a3Sopenharmony_ci  * **Feature:** A standalone minimal example of the core codec API usage has
232cc1dc7a3Sopenharmony_ci    been added in the `./Utils/Example/` directory.
233cc1dc7a3Sopenharmony_ci* **Core API:**
234cc1dc7a3Sopenharmony_ci  * **Feature:** Config flag `ASTCENC_FLG_USE_PERCEPTUAL` works for color data.
235cc1dc7a3Sopenharmony_ci  * **Feature:** Config option `tune_low_weight_count_limit` added.
236cc1dc7a3Sopenharmony_ci  * **Feature:** New heuristic added which prunes dual weight plane searches if
237cc1dc7a3Sopenharmony_ci    they are unlikely to help. This heuristic is not user controllable.
238cc1dc7a3Sopenharmony_ci  * **Feature:** Image quality has been improved. In general we see significant
239cc1dc7a3Sopenharmony_ci    improvements (up to 0.2dB) for high bitrate encodings (4x4, 5x4), and a
240cc1dc7a3Sopenharmony_ci    smaller improvement (up to 0.1dB) for lower bitrate encodings.
241cc1dc7a3Sopenharmony_ci  * **Bug fix:** Arm "none" SIMD builds could be invariant with other builds.
242cc1dc7a3Sopenharmony_ci    This fix has also been back-ported to the 2.x LTS branch.
243cc1dc7a3Sopenharmony_ci
244cc1dc7a3Sopenharmony_ci### Performance:
245cc1dc7a3Sopenharmony_ci
246cc1dc7a3Sopenharmony_ciKey for charts:
247cc1dc7a3Sopenharmony_ci
248cc1dc7a3Sopenharmony_ci* Color = block size (see legend).
249cc1dc7a3Sopenharmony_ci* Letter = image format (N = normal map, G = grayscale, L = LDR, H = HDR).
250cc1dc7a3Sopenharmony_ci
251cc1dc7a3Sopenharmony_ci**Relative performance vs 3.0 release:**
252cc1dc7a3Sopenharmony_ci
253cc1dc7a3Sopenharmony_ci![Relative scores 3.1 vs 3.0](./ChangeLogImg/relative-3.0-to-3.1.png)
254cc1dc7a3Sopenharmony_ci
255cc1dc7a3Sopenharmony_ci<!-- ---------------------------------------------------------------------- -->
256cc1dc7a3Sopenharmony_ci## 3.0
257cc1dc7a3Sopenharmony_ci
258cc1dc7a3Sopenharmony_ci**Status:** June 2021
259cc1dc7a3Sopenharmony_ci
260cc1dc7a3Sopenharmony_ciThe 3.0 release is the first in a series of updates to the compressor that are
261cc1dc7a3Sopenharmony_cimaking more radical changes than we felt we could make with the 2.x series.
262cc1dc7a3Sopenharmony_ciThe primary goals of the 3.x series are to keep the image quality ~static or
263cc1dc7a3Sopenharmony_cibetter compared to the 2.5 release, but continue to improve performance.
264cc1dc7a3Sopenharmony_ci
265cc1dc7a3Sopenharmony_ciReminder for users of the library interface - the API is not designed to be
266cc1dc7a3Sopenharmony_cibinary compatible across versions, and this release is not compatible with
267cc1dc7a3Sopenharmony_ciearlier releases. Please update and rebuild your client-side code using the
268cc1dc7a3Sopenharmony_ciupdated `astcenc.h` header.
269cc1dc7a3Sopenharmony_ci
270cc1dc7a3Sopenharmony_ci* **General:**
271cc1dc7a3Sopenharmony_ci  * **Feature:** The code has been significantly cleaned up, with improved
272cc1dc7a3Sopenharmony_ci    comments, API documentation, function naming, and variable naming.
273cc1dc7a3Sopenharmony_ci* **Core API:**
274cc1dc7a3Sopenharmony_ci  * **API Change:** The core APIs for `astcenc_compress_image()` and for
275cc1dc7a3Sopenharmony_ci    `astcenc_decompress_image()` now accept swizzle structures by `const`
276cc1dc7a3Sopenharmony_ci    pointer, instead of pass-by-value.
277cc1dc7a3Sopenharmony_ci  * **API Change:** Calling the `astcenc_compress_reset()` and the
278cc1dc7a3Sopenharmony_ci    `astcenc_decompress_reset()` functions between images is no longer required
279cc1dc7a3Sopenharmony_ci    if the context was created for use by a single thread.
280cc1dc7a3Sopenharmony_ci  * **Feature:** New heuristics have been added for controlling when to search
281cc1dc7a3Sopenharmony_ci    beyond 2 partitions and 1 plane, and when to search beyond 3 partitions and
282cc1dc7a3Sopenharmony_ci    1 plane. The previous `tune_partition_early_out_limit` config option has
283cc1dc7a3Sopenharmony_ci    been removed, and replaced with two new options
284cc1dc7a3Sopenharmony_ci    `tune_2_partition_early_out_limit_factor` and
285cc1dc7a3Sopenharmony_ci    `tune_3_partition_early_out_limit_factor`. See command line help for more
286cc1dc7a3Sopenharmony_ci    detailed documentation.
287cc1dc7a3Sopenharmony_ci  * **Feature:** New heuristics have been added for controlling when to use
288cc1dc7a3Sopenharmony_ci    dual weight planes. The previous `tune_two_plane_early_out_limit` has been
289cc1dc7a3Sopenharmony_ci    renamed to`tune_2_plane_early_out_limit_correlation`. See command line help
290cc1dc7a3Sopenharmony_ci    for more detailed documentation.
291cc1dc7a3Sopenharmony_ci  * **Feature:** Support for using dual weight planes has been restricted to
292cc1dc7a3Sopenharmony_ci    single partition blocks; it rarely helps blocks with 2 or more partitions
293cc1dc7a3Sopenharmony_ci    and takes considerable compression search time.
294cc1dc7a3Sopenharmony_ci
295cc1dc7a3Sopenharmony_ci### Performance:
296cc1dc7a3Sopenharmony_ci
297cc1dc7a3Sopenharmony_ciKey for charts:
298cc1dc7a3Sopenharmony_ci
299cc1dc7a3Sopenharmony_ci* Color = block size (see legend).
300cc1dc7a3Sopenharmony_ci* Letter = image format (N = normal map, G = grayscale, L = LDR, H = HDR).
301cc1dc7a3Sopenharmony_ci
302cc1dc7a3Sopenharmony_ci**Relative performance vs 2.5 release:**
303cc1dc7a3Sopenharmony_ci
304cc1dc7a3Sopenharmony_ci![Relative scores 3.0 vs 2.5](./ChangeLogImg/relative-2.5-to-3.0.png)
305cc1dc7a3Sopenharmony_ci
306cc1dc7a3Sopenharmony_ci- - -
307cc1dc7a3Sopenharmony_ci
308cc1dc7a3Sopenharmony_ci_Copyright © 2021-2022, Arm Limited and contributors. All rights reserved._
309