This repository (or folder, depending on how you got here) contains the source code for the NTC library.
LibNTC can be built separately following the same instructions as the full RTXNTC SDK, and does not depend on anything else in the SDK. This means it can be included into a larger project by copying only this folder or adding a submodule.
For the integration guide, please see the RTXNTC SDK.
NTC_BUILD_SHARED
: Configures whether LibNTC should be built as a static library (OFF
) or a dynamic one (ON
). Default isON
.NTC_WITH_CUDA
: Enables the CUDA-based functionality like compression. Set this toOFF
to build a compact version of LibNTC for integration into game engines.NTC_CUDA_ARCHITECTURES
: List of CUDA architectures in the CMake format for which the kernels should be compiled. A reduced list can make builds faster for development purposes.NTC_WITH_DX12
: Enables building the DX12 shaders and weight conversion features (Windows only). Default isON
.NTC_WITH_VULKAN
: Enables building the Vulkan shaders and weight conversion features. Default isON
.NTC_WITH_PREBUILT_SHADERS
: Enables building the shaders for decompression on load, BCn compression, and image difference passes. Default isON
.LIBNTC_BIN_DIRECTORY
: Location for the build LibNTC binaries on all build configurations. When unset, CMake default locations are used.
external/dxc
: Binary builds of a regular recent version of the DirectX Shader Compilerexternal/slang
: Binary builds of the Slang compiler and a custom version of DXC with Cooperative Vector supportinclude/libntc
: Public C++ headers for LibNTCinclude/libntc/shaders
: HLSL/Slang shader headers for things like Inference on Samplesrc
: Source code for LibNTCsrc/kernels
: Generated code for permutations of CUDA kernels doing NTC compression and decompressionsrc/RegressionKernels.h
Actual source code for the CUDA compression and decompression kernelssrc/shaders
: Source code for the prebuilt shaders used by LibNTC, such as decompression or BCn encodingsrc/tin
: Source code for the Tiny Inline Networks (TIN) library, customized for NTC
This project includes NVAPI software. All uses of NVAPI software are governed by the license terms specified here: https://github.com/NVIDIA/nvapi/blob/main/License.txt