I did not find any valid resource online that is updated and compare the texture compression formats for OpenGL for desktop. Everything is either outdated or for mobile.
Looking on my platform, I see many different formats:
GL_ARB_compressed_texture_pixel_storage GL_ARB_texture_compression GL_ARB_texture_compression_bptc GL_ARB_texture_compression_rgtc GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_latc GL_EXT_texture_compression_rgtc GL_EXT_texture_compression_s3tc GL_NV_texture_compression_vtc
I have some other if I query directly for the GL_COMPRESSED_TEXTURE_FORMATS
public static final int GL_COMPRESSED_RGB_S3TC_DXT1_EXT = 33776; public static final int GL_COMPRESSED_RGBA_S3TC_DXT3_EXT = 33778; public static final int GL_COMPRESSED_RGBA_S3TC_DXT5_EXT = 33779; public static final int GL_PALETTE4_RGB8_OES = 0x8B90 = 35728; public static final int GL_PALETTE4_RGBA8_OES = 0x8B91; public static final int GL_PALETTE4_R5_G6_B5_OES = 0x8B92; public static final int GL_PALETTE4_RGBA4_OES = 0x8B93; public static final int GL_PALETTE4_RGB5_A1_OES = 0x8B94; public static final int GL_PALETTE8_RGB8_OES = 0x8B95; public static final int GL_PALETTE8_RGBA8_OES = 0x8B96; public static final int GL_PALETTE8_R5_G6_B5_OES = 0x8B97; public static final int GL_PALETTE8_RGBA4_OES = 0x8B98; public static final int GL_PALETTE8_RGB5_A1_OES = 0x8B99 = 35737; public static final int GL_COMPRESSED_RGB8_ETC2 = 0x9274 = 37492; public static final int GL_COMPRESSED_SRGB8_ETC2 = 0x9275; public static final int GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9276; public static final int GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9277; public static final int GL_COMPRESSED_RGBA8_ETC2_EAC = 0x9278; public static final int GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = 0x9279 = 37497; public static final int GL_COMPRESSED_R11_EAC = 0x9270 = 37488; public static final int GL_COMPRESSED_SIGNED_R11_EAC = 0x9271; public static final int GL_COMPRESSED_RG11_EAC = 0x9272; public static final int GL_COMPRESSED_SIGNED_RG11_EAC = 0x9273 = 37491;
Although here Nicol says to not rely on the glGet
but on the extensions…
As far as I got, all of them are lossy, right?
Googling around S3TC/DXTx/BCx seems the one most documented online but it is also very old and also outperformed by the more modern formats.
A very nice website comparing them is this one, but is for mobile and is also the only website I found that explains the different targets of DXT3 and DXT5. But it misses the EC2, that seems to be mandatory on GLES3 and GL4.3.
Another interesting website is this one.
PVRTCseems to be the best one in terms of performances, but unfortunately it runs only on dedicated hardware.
ASTC is also very good promising but has the same disadvantage of PVRTC.
ATITC by name seems very old as well (ATI Texture Compression)
So, I wish to know which is nowadays the best compression formats for GL3+ on desktops in your opinion.