KTX (Khronos Texture) is a lightweight container for textures for OpenGL(R),
Vulkan(R) and other GPU APIs. KTX files contain all the parameters needed
for texture loading. A single file can contain anything from a simple
base-level 2D texture through to a cubemap array texture with mipmaps.
Contained textures can be in a Basis Universal format, in any of the
block-compressed formats supported by OpenGL family and Vulkan APIs and
extensions or in an uncompressed single-plane format. Basis Universal
currently encompasses two formats that can be quickly transcoded to any
GPU-supported format: LZ/ETC1S, which combines block-compression and
supercompression, and UASTC, a block-compressed format. Formats other than
LZ/ETC1S can be supercompressed with Zstd and ZLIB.
===> The following configuration options are available for khronos-texture-4.4.2:
====> Use CPU-specific optimizations: you have to select exactly one of them
AVX2=off: Use the AVX2 instruction set
NONE=off: Don't use any SIMD instructions
SSE2=on: Use the SSE2 instruction set
SSE41=off: Use the SSE4.1 instruction set
===> Use 'make config' to modify these settings
graphics/khronos-texture: Fix build with libc++ 21
[...]
In file included from
/wrkdirs/usr/ports/graphics/khronos-texture/work/KTX-Software-4.4.2/external/fmt/src/os.cc:13:
In file included from
/wrkdirs/usr/ports/graphics/khronos-texture/work/KTX-Software-4.4.2/external/fmt/include/fmt/os.h:11:
/wrkdirs/usr/ports/graphics/khronos-texture/work/KTX-Software-4.4.2/external/fmt/include/fmt/format.h:747:28:
error: use of undeclared identifier 'malloc'
747 | T* p = static_cast<T*>(malloc(n * sizeof(T)));
| ^~~~~~
/wrkdirs/usr/ports/graphics/khronos-texture/work/KTX-Software-4.4.2/external/fmt/include/fmt/format.h:752:35:
error: use of undeclared identifier 'free'
752 | void deallocate(T* p, size_t) { free(p); }
| ^~~~
[...]
While here udpate to USES+=compiler:c++14-lang - port uses -std=c++14.
PR: 293197
MFH: 2026Q1
graphics/khronos-texture: Turn off NEON for armv7 by default: the code uses
intrinsics only available on aarch64
/wrkdirs/usr/ports/graphics/khronos-texture/work/KTX-Software-4.3.2/lib/astc-encoder/Source/astcenc_vecmathlib_neon_4.h:409:9:
error: use of undeclared identifier 'vaddvq_u32'; did you mean 'vpaddlq_u32'?
409 | return vaddvq_u32(vshlq_u32(tmp, shift));
| ^~~~~~~~~~
| vpaddlq_u32
/usr/lib/clang/19/include/arm_neon.h:21450:49: note: 'vpaddlq_u32' declared here
21450 | __ai __attribute__((target("neon"))) uint64x2_t vpaddlq_u32(uint32x4_t
__p0) {
| ^
Same for: vminvq_s32 vmaxvq_s32 vqtbl1q_s8 vdivq_f32 vminnmq_f32
vmaxnmq_f32 vrndnq_f32 vminvq_f32 vmaxvq_f32 vsqrtq_f32 vcvt_f16_f32
vcvt_f32_f16 vqtbl1q_s8 vqtbl2q_s8 vaddvq_u32 vminvq_s32 vmaxvq_s32
vqtbl1q_s8 and etc.
https://portsfallout.com/fallout?port=graphics%2Fkhronos-texture
graphics/khronos-texture: replace ton of OPTIONS_DEFAULT_* with
OPTIONS_DEFAULT_OTHER_ARCHS
While here satisfy portlint
Approved by: arrowd (mentor, implicit)
graphics/khronos-texture: new port - required for games/lwjgl3
This port required for build lwjgl 3, and lwjgl 3 required for run Java
Minecraft Client 1.20.x on FreeBSD without linux compatibility layer.
PR: 275279269879269900
Approved by: arrowd (mentor)
Differential Revision: https://reviews.freebsd.org/D44120