Nvidia details Neural Texture Compression, claims significant improvements over traditional...

nanoguy

Posts: 1,355   +27
Staff member
In context: Games today use highly-detailed textures that can quickly fill the frame buffer on many graphics cards, leading to stuttering and game crashes in recent AAA titles for many gamers. With GPU manufacturers being stingy with VRAM even on the newest mid-range models, the onus is on software engineers to find a way to squeeze more from the hardware available today. Perhaps ironically, the most promising development in this direction so far comes from Nvidia – neural texture compression could reduce system requirements for future AAA titles, at least when it comes to VRAM and storage.

One of the hottest topics at the moment is centered around modern AAA games and their system requirements. Both the minimum and recommended specs have increased, and as we've seen with titles like The Last of Us Part I, Forspoken, The Callisto Protocol, and Hogwarts Legacy, running them even at 1080p using the Ultra preset is now posing issues for graphics cards equipped with 8GB of VRAM.

When looking at the latest Steam survey, we see that 8GB is the most common VRAM size for PCs with dedicated graphics solutions. That probably won't change for a while, especially since graphics card upgrades are still expensive and GPU makers don't seem to be interested in offering more than 8GB of graphics memory on most mainstream models.

Also read: Why Are Modern PC Games Using So Much VRAM?

The good news is Nvidia has been working on a solution that could reduce VRAM usage. In a research paper published this week, the company details a new algorithm for texture compression that is supposedly better than both traditional block compression (BC) methods as well as other advanced compression techniques such as AVIF and JPEG-XL.

The new algorithm is simply called neural texture compression (NTC), and as the name suggests it uses a neural network designed specifically for material textures. To make this fast enough for practical use, Nvidia researchers built several small neural networks optimized for each material. As you can see from the image above, textures compressed with NTC preserve a lot more detail while also being significantly smaller than even these same textures compressed with BC techniques to a quarter of the original resolution.

In modern games, the visual properties of a material are stored in separate maps that describe how it absorbs and reflects light, and the assortment used varies from one game engine to another. Every map usually packs additional, scaled-down versions of the original map into the same file. These so-called "mipmaps" are used to optimize graphics memory usage when the full resolution of the texture isn't needed, such as when a particular object is far away from your point of view.

Also read: How 3D Game Rendering Works: Texturing

Researchers explain the idea behind their approach is to compress all these maps along with their mipmap chain into a single file, and then have them be decompressed in real time with the same random access as traditional block texture compression.

Compressing tens of thousands of unique textures for a game also takes time, but Nvidia says the new algorithm is supposedly ten times faster than typical PyTorch implementations. For instance, a 9-channel 4K material texture can be compressed in one to 15 minutes using an Nvidia RTX 4090, depending on the quality level you set. The researchers note NTC supports textures with resolutions up to 8K (8,192 by 8,192) but didn't offer performance figures for such a scenario.

An obvious advantage is that game developers will be able to utilize NTC to hopefully reduce storage and VRAM requirements for future games, or, at the very least, reduce stuttering by fitting more textures in the same frame buffer and thus reducing the need to swap them in and out when moving across a detailed environment. Another advantage is that NTC relies on matrix multiplication, which is fast on modern GPUs and even faster when using Tensor Cores on GeForce RTX GPUs.

However, NTC does have some limitations that may limit its appeal. First, as with any lossy compression, it can introduce visual degradation at low bitrates. Researchers observed mild blurring, the removal of fine details, color banding, color shifts, and features leaking between texture channels.

Furthermore, game artists won't be able to optimize textures in all the same ways they do today, for instance, by lowering the resolution of certain texture maps for less important objects or NPCs. Nvidia says all maps need to be the same size before compression, which is bound to complicate workflows. This sounds even worse when you consider that the benefits of NTC don't apply at larger camera distances.

Perhaps the biggest disadvantages of NTC have to do with texture filtering. As we've seen with technologies like DLSS, there is potential for image flickering and other visual artifacts when using textures compressed through NTC. And while games can utilize anisotropic filtering to improve the appearance of textures in the distance at a minimal performance cost, the same isn't possible with Nvidia's NTC at this point.

Graphics geeks and game developers who want a deep dive into NTC can find the paper here – it's well worth a read. Nvidia will also present the new algorithm at SIGGRAPH 2023, which kicks off on August 6.

Permalink to story.

 
No, devs will get even more lazy with optimisation and probably not even bother to compress the textures, using the fact that this tech is there and ending with the same result. Also ironic that Nvidia springs this up when they have been very tight about putting more VRAM on their cards
 
So you're saying it will have "16 times the detail"?
PS: onus. Fancy.
PS2: I couldn't make any conclusions, it's kinda confusing how beneficial it will be in the end.
 
Interesting tech demo, but from the downsides listed, it's still far from being production ready.
Indeed -- as good as it looks, a two-fold increase in rendering time isn't great. That said, the paper does make it clear that the expectation is the decompression cost would be hidden in already-long render times (I.e. using ray tracing) and through better use of idle tensor cores (which for most games only get used for upscaling towards the end of the render chain).
 
Good luck getting developers to use it. If they were interested in using texture compression, we wouldn't have 150GB game installs.
Can't actually if you're joking or not, but pretty much every asset is compressed, especially textures. If they weren't, game installs would be way bigger than 150 GB!
 
But the native render time the provide is more than twice as high meaning using it will cut frames by 50% or more. SSDs are cheaper than graphics cards and I don't want 4090s with 12gb of VRAM
 
No, devs will get even more lazy with optimisation and probably not even bother to compress the textures, using the fact that this tech is there and ending with the same result. Also ironic that Nvidia springs this up when they have been very tight about putting more VRAM on their cards

To be fair, VRAM is by far the most expensive part of the GPU, so you don't want to slap on much more then you actually need.
 
But the native render time the provide is more than twice as high meaning using it will cut frames by 50% or more. SSDs are cheaper than graphics cards and I don't want 4090s with 12gb of VRAM
Twice as high to decompress and process the textures, not twice as high for the entire render pipeline. It would be insane if that were true :) (costing more to implement than even ray tracing)
At 60 fps, it takes ~16.6ms to render a frame. This new tech would make the FPS drop by around 1-2 FPS for a 4090. (the drop in FPS is most likely bigger on GPUs with weaker tensor cores performance)

Indeed -- as good as it looks, a two-fold increase in rendering time isn't great. That said, the paper does make it clear that the expectation is the decompression cost would be hidden in already-long render times (I.e. using ray tracing) and through better use of idle tensor cores (which for most games only get used for upscaling towards the end of the render chain).
Alongside the other problems listed. What most ppl hate the most is when they have to change their workflow. And the texture filtering needs to be addressed. Not being able to use anisotropic filtering is a big issue in some cases.

I really wonder how much bigger the performance cost is for weaker GPUs. Would we see it go past 2-3ms?
 
Last edited:
To be fair, VRAM is by far the most expensive part of the GPU, so you don't want to slap on much more then you actually need.
Not sure about GDDR6X, but good GDDR6 memory chips should be well under 10$ per GB. (maybe under 5$ if the bulk orders are high enough)
I don't remember where, but I saw some time ago that Samsung 16Gbps 1GB GDDR6 chips were around 3$ or less for large orders (in the many thousands) and it was above 10$ for small orders
 
To be fair:

- this tech is very interesting but just because Nvidia is way too cheap to put more vram (even charging more for each graphics card)

- this tech is interesting but as most game producers also receive "incentives" to use as much as possible vram and ssd, why would they use this tech?

I have a good photo and 4k video library and I really need to be very aggressive to use 150 GB on one album with lots thousands of photos. I cannot understand how a game can use up to 150 GB almost for textures and sounds so why do game studios need so much space? Well, I can uncompress my photos and videos...

At the end of the day, more space and vram used (as megapixel on cameras) seem to work unconsciously as "better" so people think a game is better if it uses tones of space and they automatically think their 8 GB $999 card is the guilty and must buy a $1999 card...
 
Last edited:
Good luck getting developers to use it. If they were interested in using texture compression, we wouldn't have 150GB game installs.

Texture size is not the only reason for this... Lmao

PS5 and XSX have 16GB shared RAM. OS + Game eats ~10GB leaving 6GB tops for graphics.

Will PS5 Pro and refreshed XSX get 32GB shared RAM? I doubt it

The rushed console ports we have seen lately, are the only games that uses a ton of VRAM, and patches reduced VRAM usage ALOT in several of them, post release. TLOU for example.

No game should use more than 8GB VRAM for 1440p and 16GB should be sufficient for 4K.
Any higher and it's just crappy optimization and code. Atomic Heart uses 6GB tops maxed out at 1440p and looks better than 99.9% of games released in the last 5 years.

Do you plan to re-test TLOU after the huge 27GB patch that lowered VRAM usage ALOT?
 
Last edited:
Where on Earth are you getting the idea that the latest consoles only have 6 GB for rendering?

From actual game devs speaking about it on youtube...

16GB shared RAM is all PS5 and XSX have.

Meanwhile a decent PC today have 32GB RAM and 8-12 if not 16GB VRAM on top of this. Yet have issues with some console ports = crappy optimization and nothing else.

The games that are using alot of VRAM don't even have the best looking textures anyway :joy:
 
Last edited:
From actual game devs speaking about it on youtube...

16GB shared RAM is all PS5 and XSX have.

Meanwhile a decent PC today have 32GB RAM and 8-12 if not 16GB VRAM on top of this. Yet have issues with some console ports = crappy optimization and nothing else.

The games that are using alot of VRAM don't even have the best looking textures anyway :joy:
Consoles have the entire RAM pool available for the game as VRAM (sans the 1-2GB which are system reserved).

I know games also need regular RAM which reduces the available VRAM, but the biggest things put into it are still textures. You just don't have to swap them from RAM to VRAM anymore, only one copy is needed.

RAM usage should also be much lower on consoles because of less overhead from the drivers/API/kernel.

It's not unrealistic to have around 8GB of the unified RAM used by the GPU on a console. (and this is with FSR and/or dinamic resolution active and the better directstorage API which helps with the memory swap from the SSD). You can then easily understand why on PC it can use more than 8GB (higher res textures, higher render resolutions, higher quality RT, etc)
 
Consoles have the entire RAM pool available for the game as VRAM (sans the 1-2GB which are system reserved).

I know games also need regular RAM which reduces the available VRAM, but the biggest things put into it are still textures. You just don't have to swap them from RAM to VRAM anymore, only one copy is needed.

RAM usage should also be much lower on consoles because of less overhead from the drivers/API/kernel.

It's not unrealistic to have more than 8GB of the unified RAM used by the GPU on a console.

Consoles use way more of the RAM for OS and actual GAME CODE than for graphics.
Like I said, 10/16 is often OS/GAME leaving the remaining 6GB available for graphics (you never max out completely = stuttering).
If in doubt, you can look up game devs speaking about this on Youtube.

A console _can_ use 14-15/16GB for graphics yes, teoretically. It just never happends because GAME CODE usually uses way more than graphics.

Same is true for PC.
And this is why most game requirements have way more RAM needed than VRAM. It's often 2:1 or so. Sometimes 3:1.

More and more PC games wants 32GB RAM for max settings. It's listed in many games for ultra spec.
 
Back