From 83a02427e576a5126a618c13bc3e12ff2b4a3e0a Mon Sep 17 00:00:00 2001 From: =?utf8?q?Viktor=20Novotn=C3=BD?= Date: Tue, 1 May 2012 15:23:51 +0200 Subject: [PATCH] dri/nv10-nv20: Add support for S3TC MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Viktor Novotný Signed-off-by: Francisco Jerez --- src/mesa/drivers/dri/nouveau/nv10_context.c | 4 ++++ src/mesa/drivers/dri/nouveau/nv10_state_tex.c | 10 ++++++++++ src/mesa/drivers/dri/nouveau/nv20_context.c | 4 ++++ src/mesa/drivers/dri/nouveau/nv20_state_tex.c | 10 ++++++++++ 4 files changed, 28 insertions(+) diff --git a/src/mesa/drivers/dri/nouveau/nv10_context.c b/src/mesa/drivers/dri/nouveau/nv10_context.c index 90c1545ce37..a2448caaf81 100644 --- a/src/mesa/drivers/dri/nouveau/nv10_context.c +++ b/src/mesa/drivers/dri/nouveau/nv10_context.c @@ -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; diff --git a/src/mesa/drivers/dri/nouveau/nv10_state_tex.c b/src/mesa/drivers/dri/nouveau/nv10_state_tex.c index 0254341151b..b467bb33142 100644 --- a/src/mesa/drivers/dri/nouveau/nv10_state_tex.c +++ b/src/mesa/drivers/dri/nouveau/nv10_state_tex.c @@ -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); } diff --git a/src/mesa/drivers/dri/nouveau/nv20_context.c b/src/mesa/drivers/dri/nouveau/nv20_context.c index c91171791cc..5a36c8766d7 100644 --- a/src/mesa/drivers/dri/nouveau/nv20_context.c +++ b/src/mesa/drivers/dri/nouveau/nv20_context.c @@ -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; diff --git a/src/mesa/drivers/dri/nouveau/nv20_state_tex.c b/src/mesa/drivers/dri/nouveau/nv20_state_tex.c index 799510daa69..d8bfdf2e58f 100644 --- a/src/mesa/drivers/dri/nouveau/nv20_state_tex.c +++ b/src/mesa/drivers/dri/nouveau/nv20_state_tex.c @@ -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); } -- 2.30.2