dri/nv10-nv20: Add support for S3TC

Signed-off-by: Viktor Novotný <noviktor@seznam.cz>
Signed-off-by: Francisco Jerez <currojerez@riseup.net>
This commit is contained in:
Viktor Novotný
2012-05-01 15:23:51 +02:00
committed by Francisco Jerez
parent 6d5efe96ee
commit 83a02427e5
4 changed files with 28 additions and 0 deletions
@@ -449,6 +449,10 @@ nv10_context_create(struct nouveau_screen *screen, const struct gl_config *visua
ctx->Extensions.ARB_texture_env_dot3 = true;
ctx->Extensions.NV_fog_distance = true;
ctx->Extensions.NV_texture_rectangle = true;
if (ctx->Mesa_DXTn) {
ctx->Extensions.EXT_texture_compression_s3tc = true;
ctx->Extensions.S3_s3tc = true;
}
/* GL constants. */
ctx->Const.MaxTextureLevels = 12;
@@ -111,6 +111,16 @@ get_tex_format_pot(struct gl_texture_image *ti)
case MESA_FORMAT_L8:
return NV10_3D_TEX_FORMAT_FORMAT_L8;
case MESA_FORMAT_RGB_DXT1:
case MESA_FORMAT_RGBA_DXT1:
return NV10_3D_TEX_FORMAT_FORMAT_DXT1;
case MESA_FORMAT_RGBA_DXT3:
return NV10_3D_TEX_FORMAT_FORMAT_DXT3;
case MESA_FORMAT_RGBA_DXT5:
return NV10_3D_TEX_FORMAT_FORMAT_DXT5;
default:
assert(0);
}
@@ -460,6 +460,10 @@ nv20_context_create(struct nouveau_screen *screen, const struct gl_config *visua
ctx->Extensions.ARB_texture_env_dot3 = true;
ctx->Extensions.NV_fog_distance = true;
ctx->Extensions.NV_texture_rectangle = true;
if (ctx->Mesa_DXTn) {
ctx->Extensions.EXT_texture_compression_s3tc = true;
ctx->Extensions.S3_s3tc = true;
}
/* GL constants. */
ctx->Const.MaxTextureCoordUnits = NV20_TEXTURE_UNITS;
@@ -108,6 +108,16 @@ get_tex_format_pot(struct gl_texture_image *ti)
case MESA_FORMAT_L8:
return NV20_3D_TEX_FORMAT_FORMAT_L8;
case MESA_FORMAT_RGB_DXT1:
case MESA_FORMAT_RGBA_DXT1:
return NV20_3D_TEX_FORMAT_FORMAT_DXT1;
case MESA_FORMAT_RGBA_DXT3:
return NV20_3D_TEX_FORMAT_FORMAT_DXT3;
case MESA_FORMAT_RGBA_DXT5:
return NV20_3D_TEX_FORMAT_FORMAT_DXT5;
default:
assert(0);
}