supertuxkart-sourceforge-migration / stk-migration-test2

0 stars 0 forks source link

Texture compression #1059

Open supertuxkart-sourceforge-migration opened 10 years ago

supertuxkart-sourceforge-migration commented 10 years ago

Author: funto66

As samuncle asked me to open a ticket for that, here it is:

STK doesn't use any texture compression. In a quick test I made, AMD CodeXL counted around 300MB of texture memory in Fort Magma. That could be highly reduced by using texture compression. DXT1 has a compression ratio of 6:1 and DXT5 of 4:1 (which one to use depends on the presence of an alpha channel - DXT1 supports up to 1 bit alpha).

Those are the standard compression methods that are supported virtually by all GPUs (but not by all drivers - there are patents issues, so open source driver do not necessarily support those). Maybe ETC2 or other methods (BC6/BC7?) could be interesting, but I think DXTn would be fine.

Benefits of using texture compression are both in memory and speed (as texture cache misses would be minimized).

DDS is the only file format that supports DXTn compression natively, but support for it is quite lacking (the GIMP-dds plugin crashes for me, the original tool for manipulating it is the DirectX Texture Tool, which is obviously Windows-only).

My view on adding texture compression to STK is:

On developing the feature:

Migrated-From: https://sourceforge.net/apps/trac/supertuxkart/ticket/1059

supertuxkart-sourceforge-migration commented 10 years ago

Author: curaga Current irrlicht trunk supports DDS compressed textures fully. It's still work to refresh it though.

Regarding VRAM usage, it should be pointed out that before this summer, the artists had no way of knowing if a texture was suitably sized. Only now with my branch/the mipmap view they can see if a texture is too big or too small.

Using the mipmap debug view to identify too large textures would help everyone, while compressed textures only the blob users. Some examples of too large textures are Sara and the rope of Hacienda.

supertuxkart-sourceforge-migration commented 10 years ago

Author: funto66 Cool, then an update of Irrlicht seems the way to go.

It is right that too large textures should be spotted and reduced, and the mipmap view is a great tool for that. However, texture compression would basically divide everything by a factor of at least 4 and not require any work on the artist's side. Obviously, ideally we should do both :)