-#if FX_TC_NCC
- /* [dBorca] Hack alert:
- * 1) NCC w/o DITHER_ERR has poor quality and NCC w/ DITHER_ERR is
- * damn slow!
- * 2) NCC compression cannot be used with multitexturing, because
- * the decompression tables are not per TMU anymore (bear in mind
- * that earlier Voodoos could handle 2 NCC tables for each TMU --
- * just look for POINTCAST_PALETTE). As a last resort, we could
- * fake NCC multitexturing through multipass rendering, but...
- * ohwell, it's not worth the effort...
- * This stand true for multitexturing palletized textures.
- * 3) since NCC is not an OpenGL standard (as opposed to FXT1/DXTC), we
- * can't use precompressed textures!
+ /* [dBorca]
+ * We should enable generic texture compression functions,
+ * but some poorly written apps automatically assume S3TC.
+ * Binding NCC to GL_COMPRESSED_RGB[A] is an unnecessary hassle,
+ * since it's slow and ugly (better with palette textures, then).
+ * Moreover, NCC is not an OpenGL standard, so we can't use
+ * precompressed textures. Last, but not least, NCC runs amok
+ * when multitexturing on a Voodoo3 and up (see POINTCAST vs UMA).
+ * Note: this is also a problem with palette textures, but
+ * faking multitex by multipass is evil...
+ * Implementing NCC requires three stages:
+ * fxDDChooseTextureFormat:
+ * bind GL_COMPRESSED_RGB[A] to _mesa_texformat_argb8888,
+ * so we can quantize properly, at a later time
+ * fxDDTexImage:
+ * if GL_COMPRESSED_RGB
+ * use _mesa_texformat_l8 to get 1bpt and set GR_TEXFMT_YIQ_422
+ * if GL_COMPRESSED_RGBA
+ * use _mesa_texformat_al88 to get 2bpt and set GR_TEXFMT_AYIQ_8422
+ * txMipQuantize(...);
+ * if (level == 0) {
+ * txPalToNcc((GuNccTable *)(&(ti->palette)), pxMip.pal);
+ * }
+ * fxSetupSingleTMU_NoLock/fxSetupDoubleTMU_NoLock:
+ * grTexDownloadTable(GR_TEXTABLE_NCC0, &(ti->palette));