Skip to content

v4.4.2

Latest

Choose a tag to compare

@github-actions github-actions released this 04 Oct 09:03
· 38 commits to main since this release
v4.4.2

Notice

v4.4.2 is an emergency release that replaces v4.4.1 which has been withdrawn. It
fixes the version number in the release assets. There are no other changes
compared to v4.4.1.

Summary

  • ktxTexture2_DecodeAstc now exposed in libktx_read on all platforms and in
    the JS bindings.
  • ktx info can now show info about KTX v1 files. It and the underlying libktx
    function now display GL type and format token names instead of hex values.
  • Many bugs and robustness issues have been fixed. Many of these address changes
    in CI runner images and the latest compilers.
  • ASTC encoder updated to 5.3.0.
  • LodePNG updated to 20250506.
  • Building with Visual Studio 2019 is no longer supported.

The legacy tools will be removed in Release 4.5. Adjust your workflows accordingly.

New Features in v4.4.2

libktx functions

  • ktxTexture2_DecodeAstc, which decodes an ASTC format texture to an
    uncompressed format, is now available in libktx_read on all platforms and in
    both the libktx and libktx_read JS bindings.
  • ktxPrintKTX1InfoTextForStream, which prints information about a KTX v1 file
    and was previously internal, is now exposed.

Notable Fixes in v4.4.2

  • A bug in mipmap generation in ktx create that led to sRGB images being
    resampled without first decoding to linear has been fixed. If you have affected
    KTX files you should regenerate your textures from their source images.
  • libktx_read no longer includes the ASTC encode functions, only the decode
    functions.
  • A bug that caused a hang in ktx create, when the source image is an RGB PNG
    file with an sBIT chunk and an alpha component is being added to the texture
    being created, has been fixed.

Known Issues

  • Files deflated with zlib using libktx compiled with GCC and run on x86_64 may not be bit-identical with those using libktx compiled with GCC and run on arm64.

  • Users making Basis Universal encoded or GPU block compressed textures for WebGL must be aware of WebGL restrictions with regard to texture size and may need to resize input images appropriately before using the ktx create tool, or use the --resize feature to produce an appropriately sized texture. In general, the dimensions of block compressed textures must be a multiple of the block size in WebGL and for WebGL 1.0 textures must have power-of-two dimensions. Additional portability restrictions apply for glTF per the KHR_texture_basisu extension which can be verified using the --gltf-basisu command-line option of ktx validate.

  • Basis Universal encoding results (both ETC1S/LZ and UASTC) are non-deterministic across platforms. Results are valid but level sizes and data will differ slightly. See issue #60 in the basis_universal repository.

  • UASTC RDO results differ from run to run unless multi-threading or RDO multi-threading is disabled. In toktx use --threads 1 for the former or --uastc_rdo_m for the latter. As with the preceeding issue results are valid but level sizes will differ slightly. See issue #151 in the basis_universal repository.

  • Neither the Vulkan nor GL loaders support depth/stencil textures.

Changes since v4.4.0 (by part)

libktx

Tools

JS Bindings

Java Bindings

Python Bindings

External Package Dependencies

Tests

Build Scripts and CMake files