Update astcenc to the upstream 5.3.0 release
This is mostly a maintenance update that brings the compressor inline with the recently published Khronos Data Format Specification 1.4 release which clarified some ambiguity in the specification. This update also gives minor codec optimizations, bug fixes, and image quality improvements. The biggest improvement for Godot is that builds using MSVC cl.exe will now correctly default to the SSE2-optimized backend rather than the reference C backend. This makes compression more than 3 times faster. Builds using other compilers (GCC, LLVM/Clang) were not impacted by the underlying issue, and see no performance uplift.
This commit is contained in:
25
thirdparty/astcenc/astcenc_entry.cpp
vendored
25
thirdparty/astcenc/astcenc_entry.cpp
vendored
@ -1,6 +1,6 @@
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
// ----------------------------------------------------------------------------
|
||||
// Copyright 2011-2024 Arm Limited
|
||||
// Copyright 2011-2025 Arm Limited
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||
// use this file except in compliance with the License. You may obtain a copy
|
||||
@ -1123,6 +1123,29 @@ astcenc_error astcenc_compress_reset(
|
||||
#endif
|
||||
}
|
||||
|
||||
/* See header for documentation. */
|
||||
astcenc_error astcenc_compress_cancel(
|
||||
astcenc_context* ctxo
|
||||
) {
|
||||
#if defined(ASTCENC_DECOMPRESS_ONLY)
|
||||
(void)ctxo;
|
||||
return ASTCENC_ERR_BAD_CONTEXT;
|
||||
#else
|
||||
astcenc_contexti* ctx = &ctxo->context;
|
||||
if (ctx->config.flags & ASTCENC_FLG_DECOMPRESS_ONLY)
|
||||
{
|
||||
return ASTCENC_ERR_BAD_CONTEXT;
|
||||
}
|
||||
|
||||
// Cancel compression before cancelling avg. This avoids the race condition
|
||||
// where cancelling them in the other order could see a compression worker
|
||||
// starting to process even though some of the avg data is undefined.
|
||||
ctxo->manage_compress.cancel();
|
||||
ctxo->manage_avg.cancel();
|
||||
return ASTCENC_SUCCESS;
|
||||
#endif
|
||||
}
|
||||
|
||||
/* See header for documentation. */
|
||||
astcenc_error astcenc_decompress_image(
|
||||
astcenc_context* ctxo,
|
||||
|
||||
Reference in New Issue
Block a user