Richard Geldreich
882abb5320
- .basis transcoder class now validates the basis_slice_desc structs to ensure the original (unpadded) dimensions are valid, not too large (beyond 16K on either dimension), and are in sync with the slice's block dimensions. All methods that parse the slice desc structs now validate the contents first.
...
- basisu_lowlevel_etc1s_transcoder::transcode_slice(): Added PVRTC temp buf malloc buffer size sanity checking
Thanks to Canxuepiao Jian for the report.
2026-04-20 03:00:32 -04:00
Richard Geldreich
961935d699
Changing C compression API for XUAST LDR: if unified quality level is not being used, and the lower level uastc_rdo_or_dct_quality parameter was set to 100, we would previously return an error. Now DCT is not enabled, as expected.
2026-03-04 10:08:34 -05:00
Richard Geldreich
790ab66fb6
for non-ETC1S texture video: every frame is an i-frame
2026-02-28 22:26:53 -05:00
Richard Geldreich
a62ec17827
adding comment
2026-02-28 17:34:46 -05:00
Richard Geldreich
1dbeaf032d
minor typo fix
2026-02-28 03:47:25 -05:00
Richard Geldreich
3c245522c2
minor warning message fix (if m_xuastc_ldr_use_dct is true, m_params.m_quality_level must be >= 0)
2026-02-26 18:54:39 -05:00
Richard Geldreich
02b7ce3804
updating comments and status display related to m_quality
2026-02-26 18:44:56 -05:00
Richard Geldreich
c43b5c3f04
Fixing DFD of alpha channel ETC1S so it validates using KTX-Software
2026-02-24 22:24:57 -05:00
Richard Geldreich
81a4186404
v2.1 update for KTX-Software and Khronos file format KTX2 compatibility.
...
This update impacts the UASTC HDR 4x4, UASTC HDR 6x6i, and XUASTC LDR formats. New KTX2 files in these specific formats using v2.1 can't be loaded using v2.0, however we've kept backwards compatibility with all of our previously written KTX2 files. (v2.1 can transcode all previously written files.)
This is part of our effort to be compatible with Khronos's specification.
bc6hf encoder's smooth block path updated to handle inputs with texels close to MAX_HALF_FLOAT.
Adding command line options to basisu tool so it can write either v2.0 or v1.6 compatible UASTC HDR 6x6i files. The default is v1.6.
Updating WebGL KTX2 testbed so on ASTC devices it automatically switches between sRGB or linear internal formats for the created texture.
2026-02-24 20:35:11 -05:00
Richard Geldreich
33c4966491
comment typo fix
2026-02-14 21:11:50 -05:00
Richard Geldreich
03d2057014
adjusting comments for clarity
2026-02-12 20:44:17 -05:00
Richard Geldreich
e93d3beb36
merging v2.0 from xuastc_private
2026-01-19 01:59:54 -05:00
Aaron Franke
f3a63a3f54
Remove trailing space characters
2025-11-21 11:52:38 -08:00
Richard Geldreich
6e54503437
adding compressor validate output flag from XUASTC branch
2025-11-18 17:25:32 -05:00
Richard Geldreich
69ad18e035
removing unnecessary debug prints
2025-09-02 17:33:13 -04:00
Richard Geldreich
100ace82d2
emcc warning fixes, fixing warnings in WASM cmakelists.txt files, changing ETC1S encoder to use std::map vs. std::unordered_map for hopefully more cross platform determinism
2025-06-24 17:22:05 -04:00
Richard Geldreich
1ba75b4e34
ASTC 6x6 HDR/6x6 HDR intermediate update
2025-01-21 11:01:08 -05:00
Arseny Kapoulkine
23791a55f5
Fix verbose printfs when m_status_output = false
...
Regression since HDR merge; m_status_output = false should result in no
prints outside of error cases.
2024-10-05 15:23:53 -07:00
Richard Geldreich
59d28d60e9
Fixing UASTC HDR DFD
2024-09-10 23:37:07 -04:00
Richard Geldreich
1d56bfd544
Modifying UASTC HDR DFD
2024-09-10 20:48:20 -04:00
Richard Geldreich
fb721b9e62
UASTC HDR merge
2024-09-10 14:44:59 -04:00
Richard Geldreich
c86a40c7e6
Adding -clbench command line option, and a new API basis_benchmark_etc1s_opencl() to determine if OpenCL encoding is worthwhile on the current machine/driver/GPU.
2022-10-07 19:33:34 -04:00
Richard Geldreich
deeb5acb56
v1.16 release: OpenCL support, removing global selector palette code (it was unused/dead code), ETC1S encoding optimizations, -parallel command line option
2022-01-28 08:32:54 -05:00
Arseny Kapoulkine
94d8efb875
Disable read/wrote output when status output is off
...
This was the only output that was being printed when m_status_output is
false; since this defaults to true in command-line builds this doesn't
affect them.
2021-06-05 22:25:30 -07:00
Arseny Kapoulkine
0eb541a118
Implement custom resampling command line args
...
This change implements -resample X Y command line support in addition to
-resample_factor, when a more sophisticated algorithm is needed to
compute the desired image size.
For example, these can be used to round the image to a multiple of 4 or
to a power of 2 for improved compatibility with various graphics APIs.
2021-04-14 21:13:19 -07:00
flashk
1cd2b7506a
Apply swizzle to user supplied mipmaps
2021-04-14 10:37:16 -07:00
Rich Geldreich
ee626cec19
Adding initial support for user-provided mipmaps. This isn't hooked up to the command line tool or the JS wrappers yet.
2021-04-13 22:48:01 -04:00
Rich Geldreich
ed135f03a0
Re-enabling the ktx2 mipPadding alignment workaround
2021-04-12 14:52:37 -04:00
Rich Geldreich
316a8de5f1
Fixing comment
2021-04-12 14:51:57 -04:00
Rich Geldreich
cb6322848b
Adding some macros to disable the KTX2 mipPadding alignment bug workaround, and to not write key value fields at all.
2021-04-12 14:47:15 -04:00
Rich Geldreich
7f0a00afe1
Adding KTX2 transcoding/encoding/decompression to PNG/KTX1 support to the transcoder, encoder, JavaScript wrappers. This is also adding Zstandard to the repo, which is optional. Set BASISD_SUPPORT_KTX2_ZSTD=0 when compiling the encoder/transcoder to disable it, or from cmake set KTX2_ZSTANDARD=FALSE.
2021-04-12 13:30:45 -04:00
Rich Geldreich
bf13257528
Merge branch 'branch'
2021-03-30 14:53:22 -04:00
Rich Geldreich
053ed374b4
In progress global codebook changes
2021-03-30 14:51:26 -04:00
JCash
2c0c038ffe
Renamed to minimum/maximum
2021-03-30 19:17:50 +02:00
JCash
03cca3778e
Replaced std::min/std::max with basisu::min/basisu::max
...
Removed use of NOMINMAX
2021-03-30 18:44:07 +02:00
Rich Geldreich
b5334deb8a
Putting miniz into its own C++ namespace to fix clashes
2021-03-13 09:52:35 -05:00
Rich Geldreich
2d4fe933b2
Basis Universal v1.13:
...
- Optimized ETC1S encoder (3-4.5x faster)
- Added optional SSE 4.1 support to encoder
- Switched from std::vector to a custom vector in the encoder and transcoder
- Added CppSPMD (SSE only for now)
- UASTC RDO is now more effective, but the command line parameter controlling qualiy has changed (to "lambda")
2021-03-09 11:00:25 -05:00
Rich Geldreich
85fa18ec94
Adding encoder WebAssembly support, encode_test sample
...
Encoder is now a library in the "encoder" directory
JavaScript wrappers now expose the entire codec: encoder, transcoder, container independent transcoding, and .basis file information
2020-12-17 14:26:28 -05:00
Rich Geldreich
62539278e1
Moving encoder-related files to the "encoder" directory
2020-12-17 13:57:57 -05:00