Skip to content

Commit

Permalink
git subrepo pull (merge) lib/astc-encoder
Browse files Browse the repository at this point in the history
subrepo:
  subdir:   "lib/astc-encoder"
  merged:   "d38c8c85"
upstream:
  origin:   "https://github.com/ARM-software/astc-encoder.git"
  branch:   "main"
  commit:   "2f9362c1"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/MarkCallow/git-subrepo.git"
  commit:   "c1f1132"
  • Loading branch information
MarkCallow committed May 25, 2021
1 parent 360d10b commit 3e75b6a
Show file tree
Hide file tree
Showing 32 changed files with 3,436 additions and 3,022 deletions.
2 changes: 1 addition & 1 deletion lib/astc-encoder/.gitrepo
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
[subrepo]
remote = https://github.com/ARM-software/astc-encoder.git
branch = main
commit = 36070fff1c2435f6d9f547bab3456aee06bce7da
commit = 2f9362c16e71cb6da1ae48bc23ca7e9243ba8f99
parent = 90c01d4fe24470b1065d99cecff49e9514e5fad3
method = merge
cmdver = 0.4.3
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ releases. Please update and rebuild your client-side code using the updated
library users targeting older 32-bit Android and iOS devices.
* **Feature:** A compressor mode for encoding HDR textures that have been
encoded into LDR RGBM wrapper format is now supported. Note that this
encoding has some strong recomendations for how the RGBM encoding is
encoding has some strong recommendations for how the RGBM encoding is
implemented to avoid block artifacts in the compressed image.
* **Core API:**
* **API Change:** The core API has been changed to be a pure C API, making it
Expand Down
56 changes: 56 additions & 0 deletions lib/astc-encoder/Docs/ChangeLog-3x.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# 3.x series change log

This page summarizes the major functional and performance changes in each
release of the 3.x series.

All performance data on this page is measured on an Intel Core i5-9600K
clocked at 4.2 GHz, running astcenc using AVX2 and 6 threads.

<!-- ---------------------------------------------------------------------- -->
## 3.0

**Status:** ETA, August 2021

The 3.0 alpha release is a preview release for the 3.x series. This series is
aiming to provide a major update to the codec with more experimental changes
than we could make with the 2.x series.

Reminder for users of the library interface - the API is not designed to be
binary compatible across versions, and this release is not compatible with
earlier releases. Please update and rebuild your client-side code using the
updated `astcenc.h` header.

* **General:**
* **Feature:** The code has been significantly cleaned up, with improved
API documentation, function and variable naming conventions, and comments.
* **Core API:**
* **Feature:** New heuristics have been added for controlling when to search
beyond 2 partitions and 1 plane, and when to search beyond 3 partitions and
1 plane. The previous `tune_partition_early_out_limit` config option has
been removed, and replaced with two new options
`tune_2_partition_early_out_limit_factor` and
`tune_3_partition_early_out_limit_factor`. See command line help for more
detailed documentation.
* **Feature:** New heuristics have been added for controlling when to use
2 planes. The previous `tune_two_plane_early_out_limit` has been renamed to
`tune_2_plane_early_out_limit_correlation` and a new heuristic
`tune_2_plane_early_out_limit_factor` has been added. See command line help
for more detailed documentation.
* **API Change:** The core APIs for `astcenc_compress_image()` and for
`astcenc_decompress_image()` now accept swizzle structures by `const`
pointer, instead of pass-by-value.
* **API Change:** Calling the `astcenc_compress_reset()` and the
`astcenc_decompress_reset()` functions between images is no longer required
if the context was created for use by a single thread.

### Performance:

The current performance and image quality for the 3.0 development build vs the
stable 2.5 release is shown below.

* Color = block size (see legend).
* Letter = image format (N = normal map, G = greyscale, L = LDR, H = HDR).

**Relative performance vs 2.5 release:**

![Relative scores 3.0-develop vs 2.5](./ChangeLogImg/relative-main-to-2.5.png)
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 0 additions & 8 deletions lib/astc-encoder/Docs/Roadmap.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@ significantly slower than color LDR textures, and it feels like we should be
able to come up with a criteria to exit "easy blocks" faster. Simple linear
PSNR may not be a good choice, but _something_ should be possible.


## Command line front-end implementation

The current command line front-end is very similar to the version in the 1.x
Expand All @@ -61,10 +60,3 @@ be selected at runtime.

Last time we tried this using a dynamically loaded shared object was 8% slower
than a static build, which we need to investigate and reduce.

## Code cleanup

We've been doing this piecemeal, but we want to have a push on improving the
quality of the source code style and documentation for the codec. This includes
module-level documentation of the core algorithms, adding Doxygen API
documentation for the codec, and generally apply some code cleanup.
9 changes: 6 additions & 3 deletions lib/astc-encoder/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,9 +58,12 @@ from 0.89 bits/pixel up to 8 bits/pixel.
Release build binaries for the `astcenc` stable releases are provided in the
[GitHub Releases page][3].

* Latest stable release: 2.5
* Change log: [2.x series](./Docs/ChangeLog.md)
* Roadmap: [2.x series and beyond](./Docs/Roadmap.md)
**Latest stable release:** 2.5
* Change log: [2.x series](./Docs/ChangeLog-2x.md)

**Latest development release:** 3.0-develop
* Change log: [3.x series](./Docs/ChangeLog-3x.md)
* Roadmap: [3.0 and beyond](./Docs/Roadmap.md)

Binaries are provided for 64-bit builds on Windows, macOS, and Linux. The
builds of the astcenc are provided as multiple binaries, each tuned for a
Expand Down
Loading

0 comments on commit 3e75b6a

Please sign in to comment.