Update v0.9.0 Beta
Breaking Changes
- Changed the shape of the image decoder network (Multi-Layer Perceptron, MLP) to a smaller one.
- This change significantly improves inference performance at a minor quality cost (about -0.25 dB PSNR).
- Replaced the BC7 encoding optimization solution to store mode and partition values for each block.
- This change makes the BC7 encoding process 2X-6X faster at the expense of about 0.3 bits per pixel per BC7 texture in storage (when GDeflate compression is used).
- NTC files compressed with earlier versions of LibNTC are incompatible with version 0.9.0.
LibNTC
- Added support for changing the number and sizes of the MLP hidden layers individually with just a few constants.
- Added support for compressing the BC7 mode buffers and slices of the latent texture with GDeflate.
- Added support for loading NTC files using smaller MLP hidden layers than what the library is compiled for.
- Added functions for decompressing GDeflate-compressed data on the CPU using libdeflate and on the GPU using
VK_NV_memory_decompression.- Note: GDeflate decompression on DX12 is also supported through DirectStorage, but that has to be implemented on the application side.
- Added CMake option
NTC_DEBUG_SHADERSto make profiling easier. - Refactored the code to explicitly use the same weight layout definition structures in all places.
Explorer
- Added a mode for comparing two image files to each other when the
--comparecommand line option is used. - Added display of per-texture and per-channel PSNR values in the results window.
- Added support for saving the manifest file including all changes made in the GUI.
- Added support for specifying per-channel loss function scales in the GUI and from the manifest.
- Changed the default graphics API to Vulkan.
Rendering Sample
- Added decompression of GDeflate-compressed buffers on the GPU with
VK_NV_memory_decompressionor DirectStorage (disabled by default, use--gpuGDeflate).
Command-Line Tool
- Added decompression of GDeflate-compressed buffers on the GPU for testing (disabled by default, use
--gpuGDeflate). - Added support for reading the manifest from STDIN.
- Added support for saving the manifest file automatically generated from input image files.
- Added support for specifying per-channel loss function scales from the manifest.
Testing Infrastructure
- Added ImageDiff, a small command line tool for comparing multiple pairs of images, including block compressed DDS textures.
- Added arguments to
test.pyto disable execution of some tests. - Added functional tests for BC compression.
Known Issues
Please see the Known Issues section of the main Readme file.
Intel Sponza Asset
Since version 0.7.2, we provide the model and texture files for the Intel Sponza scene compatible with the RTXNTC Rendering sample as a separate download. We recommend using this model for benchmarking and not the default FlightHelmet model. In this release, the texture files are updated with the new NTC latent structure.
Note that we only provide the NTC-specific files. They are enough to run the Renderig sample in the NTC mode, but not in the reference mode. To get the original textures, please download the Sponza Base Scene and Colorful Curtains packages from the Intel GPU Research Samples page and extract them to the same folder with the NTC files, and use the --referenceMaterials argument to ntc-renderer.exe.
Shader Model 6.9 Preview Drivers
For Cooperative Vector support on NVIDIA GPUs, please use the NVIDIA Graphics Driver preview version 590.26 or newer for DX12, or at least version 570 for Vulkan. The preview drivers can be downloaded using the following links (require an NVIDIA Developer Program account):
GeForce GPUs: https://developer.nvidia.com/downloads/shadermodel6-9-preview-driver
Quadro GPUs: https://developer.nvidia.com/downloads/assets/secure/shadermodel6-9-preview-driver-quadro