I’m happy to announce that NVIDIA Texture Tools Exporter 2024.1.1 and NVTT 3.2.5.1 have been released!
In addition to support for more formats, this is mainly a hotfix release targeted at fixing a bug with the number of mips generated for portrait-mode images. Here are the full release notes!
New Features
-
Adds support for writing RGB8 and RGBA8 formats.
- These are like the BGR8 and BGRA8 formats, except the red component is stored in the first byte and the blue component is stored in the third byte.
- Thanks to NVIDIA Developer Forums user F4ll0ut for this suggestion!
-
Support for reading A2D5 and A2XY swizzle codes in DDS, allowing more RXGB textures to be read and fixing a bug with ATI2 textures.
- Some DDS file specify the format using the FourCC code and use the dwRGBBitCount (which is optional when a FourCC code is specified) for a “swizzle code”. A2D5 represents an RXGB red-alpha swap, and A2XY represents a red-green swap.
- Some DDS files use this to encode BC5 using the
ATI2
FourCC code and anA2XY
swizzle. Previously, this would read with the channels swapped; now it reads correctly!
-
Support for writing BC5U DDS files without the DXT10 DDS extension.
- Thank you to NVIDIA Developer Forums user MariaSavels for suggesting this!
Bug Fixes
- Fixes a bug where NVTTE 2024.1.0 generated the incorrect number of mips for images with a greater height than width.
- Thank you to NVIDIA Developer Forums user kambal_mx for reporting this bug!
- Fixes a bug where
nvtt::Surface::load()
would fail to load HDR images. - Fixes a bug where
--mip-filter-param-2
applied to--mip-filter-param-1
in the command line and presets.- Thank you to NVIDIA Developer Forums user mysterme for reporting this bug!
Improvements
Improvements:
- nvtt*.dll is now 63% smaller on disk, thanks to CUDA SASS compression and packaging fewer PTX versions
- If you’re a CUDA developer building for multiple platforms, you can try SASS compression as well by adding
-Xfatbin=--compress-all
to your NVCC command line or toCMAKE_CUDA_FLAGS
!
- If you’re a CUDA developer building for multiple platforms, you can try SASS compression as well by adding
nvtt::FloatImage::clear()
and functions that use it are now significantly faster.- The Exporter now displays compression effort levels that will use the GPU in green.
- A common question in the past was how to determine whether a given compressor will use CUDA-accelerated compression without compressing an image and looking at GPU usage in Task Manager. Previously, the Exporter had this information in a somewhat hidden way: the tooltip that appears when hovering over each effort level would display whether the algorithm was GPU accelerated, and whether NVTT determined it could run its CUDA kernels on the current system. This information is now more visible.
- We also fixed a bug in the process where if a CUDA-capable GPU was installed but its driver was out-of-date, the Exporter would report it supported CUDA compression but NVTT would instead compress on the CPU.
Thanks again to everyone who reported bugs and had feature suggestions! As always, please don’t hesitate to contact us in this forum or at texturetools@nvidia.com if you spot any bugs.