
AMD Compressonator
AMD Compressonator is a set of tools to allow artists and developers to more easily work with compressed assets and easily visualize the quality impact of various compression technologies.
Compressonator v4.4 is now available!
The new features included with this release are summarised below, but if you want to jump in and try it for yourself the Compressonator page contains all of the download and documentation links.
The performance of BC1 compression on the CPU in Compressonator Core has been improved by up to 50% (depending on the input texture) with no difference in quality through the implementation of SIMD instructions.
Three variations of the SIMD code exist using different instruction set extensions (SSE4, AVX2, and AVX-512). The appropriate variation is automatically chosen by selecting the most modern instruction set extensions supported by the CPU running the code, but a few new functions have also been added to the Compressonator Core interface to allow for manual setting of the instruction set to use if desired.
The five newly added functions to the API are: EnableSSE4(), EnableAVX2(), EnableAVX512(), DisableSIMD(), and GetEnabledSIMDExtension(). The first three allow users to enable the code path for the specified instruction set extension, but only if the CPU supports it. Only one can be enabled at a time. The fourth function, DisableSIMD(), will turn off all SIMD instructions and revert back to the original code. The final function allows users to query the currently enabled code path by returning an integer representing the enabled SIMD extensions (check cmp_core.h for more information). If no manual setting has been done, the return value will correspond to whatever has been automatically detected to be the newest extensions available on the current CPU. Otherwise, the return value will be whatever was manually set (if the manually set instruction set was supported).
Future releases will work on expanding the SIMD support to the rest of the BCn codecs in Compressonator Core.
A new option has been added to Compressonator CLI: FilterGamma. The option allows users to choose a gamma correction level to apply to images while generating mipmaps. This brings the mipmap generation capabilities of Compressonator CLI closer to Compressonator GUI, which already has this functionality. The valid range of values to pass to the FilterGamma option are between 1.0 and 2.6 and can be used like this:
compressonatorcli -miplevels 5 -FilterGamma 1.6 example.png output.dds
Additionally, the stopping condition for mipmap generation has been updated. Previously, mipmap generation would stop when either the width or height were below the desired size, now it only stops once both the width and height are below the requested minimum size. This update also applies to cases were the minimum size is 1, the lowest mipmap level will always have the size 1x1.
The latest release of Compressonator is available on GitHub.
Also, check out the Compressonator documentation to get started.