diff options
| author | Brian Paul <brianp@vmware.com> | 2009-10-25 18:06:18 -0600 | 
|---|---|---|
| committer | Brian Paul <brianp@vmware.com> | 2009-10-25 18:06:24 -0600 | 
| commit | 11caea687e3f10ae12d33e44edf84635f73047dd (patch) | |
| tree | 36e411b7d118f8033aaccb5a1d148e24bc89306a | |
| parent | 355b5bde5056297f4f1636850449b91626958408 (diff) | |
mesa: choose texture format in core mesa, not drivers
Call the ctx->Driver.ChooseTextureFormat() function from core Mesa's
_mesa_[Copy]TexImage functions instead of in the driver functions.
One less thing for drivers to do.
| -rw-r--r-- | src/mesa/drivers/dri/intel/intel_tex_image.c | 6 | ||||
| -rw-r--r-- | src/mesa/drivers/dri/r200/r200_texstate.c | 4 | ||||
| -rw-r--r-- | src/mesa/drivers/dri/r300/r300_texstate.c | 3 | ||||
| -rw-r--r-- | src/mesa/drivers/dri/r600/r600_texstate.c | 4 | ||||
| -rw-r--r-- | src/mesa/drivers/dri/radeon/radeon_fbo.c | 3 | ||||
| -rw-r--r-- | src/mesa/drivers/dri/radeon/radeon_texstate.c | 4 | ||||
| -rw-r--r-- | src/mesa/drivers/dri/radeon/radeon_texture.c | 3 | ||||
| -rw-r--r-- | src/mesa/drivers/dri/tdfx/tdfx_tex.c | 11 | ||||
| -rw-r--r-- | src/mesa/drivers/glide/fxddtex.c | 12 | ||||
| -rw-r--r-- | src/mesa/main/teximage.c | 48 | ||||
| -rw-r--r-- | src/mesa/main/texstore.c | 16 | ||||
| -rw-r--r-- | src/mesa/state_tracker/st_cb_texture.c | 4 | 
12 files changed, 54 insertions, 64 deletions
| diff --git a/src/mesa/drivers/dri/intel/intel_tex_image.c b/src/mesa/drivers/dri/intel/intel_tex_image.c index daf6d9da0e..ef5902a5e5 100644 --- a/src/mesa/drivers/dri/intel/intel_tex_image.c +++ b/src/mesa/drivers/dri/intel/intel_tex_image.c @@ -330,10 +330,6 @@ intelTexImage(GLcontext * ctx,                                           &postConvHeight);     } -   /* choose the texture format */ -   texImage->TexFormat = intelChooseTextureFormat(ctx, internalFormat, -                                                  format, type); -     if (_mesa_is_format_compressed(texImage->TexFormat)) {        texelBytes = 0;     } @@ -787,8 +783,6 @@ intelSetTexBuffer2(__DRIcontext *pDRICtx, GLint target,     intelImage->face = target_to_face(target);     intelImage->level = level; -   texImage->TexFormat = intelChooseTextureFormat(&intel->ctx, internalFormat, -                                                  type, format);     texImage->RowStride = rb->region->pitch;     intel_miptree_reference(&intelImage->mt, intelObj->mt); diff --git a/src/mesa/drivers/dri/r200/r200_texstate.c b/src/mesa/drivers/dri/r200/r200_texstate.c index 20ec6fffaf..7d0afa1add 100644 --- a/src/mesa/drivers/dri/r200/r200_texstate.c +++ b/src/mesa/drivers/dri/r200/r200_texstate.c @@ -835,9 +835,7 @@ void r200SetTexBuffer2(__DRIcontext *pDRICtx, GLint target, GLint glx_texture_fo  	_mesa_init_teximage_fields(radeon->glCtx, target, texImage,  				   rb->base.Width, rb->base.Height, 1, 0, rb->cpp);  	texImage->RowStride = rb->pitch / rb->cpp; -	texImage->TexFormat = radeonChooseTextureFormat(radeon->glCtx, -							internalFormat, -							type, format, 0); +  	rImage->bo = rb->bo;  	radeon_bo_ref(rImage->bo);  	t->bo = rb->bo; diff --git a/src/mesa/drivers/dri/r300/r300_texstate.c b/src/mesa/drivers/dri/r300/r300_texstate.c index 63f0154cd3..b7bb8bfadc 100644 --- a/src/mesa/drivers/dri/r300/r300_texstate.c +++ b/src/mesa/drivers/dri/r300/r300_texstate.c @@ -444,9 +444,6 @@ void r300SetTexBuffer2(__DRIcontext *pDRICtx, GLint target, GLint glx_texture_fo  	_mesa_init_teximage_fields(radeon->glCtx, target, texImage,  				   rb->base.Width, rb->base.Height, 1, 0, rb->cpp);  	texImage->RowStride = rb->pitch / rb->cpp; -	texImage->TexFormat = radeonChooseTextureFormat(radeon->glCtx, -							internalFormat, -							type, format, 0);  	rImage->bo = rb->bo;  	radeon_bo_ref(rImage->bo);  	t->bo = rb->bo; diff --git a/src/mesa/drivers/dri/r600/r600_texstate.c b/src/mesa/drivers/dri/r600/r600_texstate.c index 63d88f83d6..a083f9afc0 100644 --- a/src/mesa/drivers/dri/r600/r600_texstate.c +++ b/src/mesa/drivers/dri/r600/r600_texstate.c @@ -907,9 +907,7 @@ void r600SetTexBuffer2(__DRIcontext *pDRICtx, GLint target, GLint glx_texture_fo  	_mesa_init_teximage_fields(radeon->glCtx, target, texImage,  				   rb->base.Width, rb->base.Height, 1, 0, rb->cpp);  	texImage->RowStride = rb->pitch / rb->cpp; -	texImage->TexFormat = radeonChooseTextureFormat(radeon->glCtx, -							internalFormat, -							type, format, 0); +  	rImage->bo = rb->bo;  	radeon_bo_ref(rImage->bo);  	t->bo = rb->bo; diff --git a/src/mesa/drivers/dri/radeon/radeon_fbo.c b/src/mesa/drivers/dri/radeon/radeon_fbo.c index 40846828c5..3f0ab83996 100644 --- a/src/mesa/drivers/dri/radeon/radeon_fbo.c +++ b/src/mesa/drivers/dri/radeon/radeon_fbo.c @@ -385,6 +385,9 @@ restart:  			    texImage->TexFormat);  			return GL_FALSE;  		} +                /* XXX why is the tex format being set here? +                 * I think this can be removed. +                 */  		texImage->TexFormat = radeonChooseTextureFormat(ctx, texImage->InternalFormat, 0,  								_mesa_get_format_datatype(texImage->TexFormat),  								1); diff --git a/src/mesa/drivers/dri/radeon/radeon_texstate.c b/src/mesa/drivers/dri/radeon/radeon_texstate.c index c7786381ae..0fd9a138d6 100644 --- a/src/mesa/drivers/dri/radeon/radeon_texstate.c +++ b/src/mesa/drivers/dri/radeon/radeon_texstate.c @@ -709,9 +709,7 @@ void radeonSetTexBuffer2(__DRIcontext *pDRICtx, GLint target, GLint glx_texture_  	_mesa_init_teximage_fields(radeon->glCtx, target, texImage,  				   rb->base.Width, rb->base.Height, 1, 0, rb->cpp);  	texImage->RowStride = rb->pitch / rb->cpp; -	texImage->TexFormat = radeonChooseTextureFormat(radeon->glCtx, -							internalFormat, -							type, format, 0); +  	rImage->bo = rb->bo;  	radeon_bo_ref(rImage->bo);  	t->bo = rb->bo; diff --git a/src/mesa/drivers/dri/radeon/radeon_texture.c b/src/mesa/drivers/dri/radeon/radeon_texture.c index d8e81237d0..9b391620c6 100644 --- a/src/mesa/drivers/dri/radeon/radeon_texture.c +++ b/src/mesa/drivers/dri/radeon/radeon_texture.c @@ -538,9 +538,6 @@ static void radeon_teximage(  						  &postConvHeight);  	} -	/* Choose and fill in the texture format for this image */ -	texImage->TexFormat = radeonChooseTextureFormat(ctx, internalFormat, format, type, 0); -  	if (_mesa_is_format_compressed(texImage->TexFormat)) {  		texelBytes = 0;  	} else { diff --git a/src/mesa/drivers/dri/tdfx/tdfx_tex.c b/src/mesa/drivers/dri/tdfx/tdfx_tex.c index af434315c1..0aa09e733b 100644 --- a/src/mesa/drivers/dri/tdfx/tdfx_tex.c +++ b/src/mesa/drivers/dri/tdfx/tdfx_tex.c @@ -1396,11 +1396,6 @@ tdfxTexImage2D(GLcontext *ctx, GLenum target, GLint level,      }  #endif -    /* choose the texture format */ -    assert(ctx->Driver.ChooseTextureFormat); -    texImage->TexFormat = (*ctx->Driver.ChooseTextureFormat)(ctx, -                                     internalFormat, format, type); -    assert(texImage->TexFormat);      mesaFormat = texImage->TexFormat;      mml->glideFormat = fxGlideFormat(mesaFormat);      ti->info.format = mml->glideFormat; @@ -1618,12 +1613,6 @@ tdfxCompressedTexImage2D (GLcontext *ctx, GLenum target,      mml->height = height * mml->hScale; -    /* choose the texture format */ -    assert(ctx->Driver.ChooseTextureFormat); -    texImage->TexFormat = (*ctx->Driver.ChooseTextureFormat)(ctx, -                                           internalFormat, -1/*format*/, -1/*type*/); -    assert(texImage->TexFormat); -      /* Determine the appropriate Glide texel format,       * given the user's internal texture format hint.       */ diff --git a/src/mesa/drivers/glide/fxddtex.c b/src/mesa/drivers/glide/fxddtex.c index 9fcbf96114..a863b028ad 100644 --- a/src/mesa/drivers/glide/fxddtex.c +++ b/src/mesa/drivers/glide/fxddtex.c @@ -1384,11 +1384,6 @@ fxDDTexImage2D(GLcontext * ctx, GLenum target, GLint level,     }  #endif -   /* choose the texture format */ -   assert(ctx->Driver.ChooseTextureFormat); -   texImage->TexFormat = (*ctx->Driver.ChooseTextureFormat)(ctx, -                                          internalFormat, format, type); -   assert(texImage->TexFormat);     texelBytes = _mesa_get_format_bytes(texImage->TexFormat->MesaFormat);     /*if (!fxMesa->HaveTexFmt) assert(texelBytes == 1 || texelBytes == 2);*/ @@ -1648,13 +1643,6 @@ fxDDCompressedTexImage2D (GLcontext *ctx, GLenum target,     mml->width = width * mml->wScale;     mml->height = height * mml->hScale; - -   /* choose the texture format */ -   assert(ctx->Driver.ChooseTextureFormat); -   texImage->TexFormat = (*ctx->Driver.ChooseTextureFormat)(ctx, -                                          internalFormat, -1/*format*/, -1/*type*/); -   assert(texImage->TexFormat); -     /* Determine the appropriate Glide texel format,      * given the user's internal texture format hint.      */ diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c index bd5ad56258..2555934eca 100644 --- a/src/mesa/main/teximage.c +++ b/src/mesa/main/teximage.c @@ -2195,6 +2195,12 @@ _mesa_TexImage1D( GLenum target, GLint level, GLint internalFormat,                                         postConvWidth, 1, 1,                                         border, internalFormat); +            /* Choose actual texture format */ +            texImage->TexFormat = +               ctx->Driver.ChooseTextureFormat(ctx, internalFormat, +                                               format, type); +            ASSERT(texImage->TexFormat != MESA_FORMAT_NONE); +              /* Give the texture to the driver.  <pixels> may be null. */              ASSERT(ctx->Driver.TexImage1D);              ctx->Driver.TexImage1D(ctx, target, level, internalFormat, @@ -2311,6 +2317,12 @@ _mesa_TexImage2D( GLenum target, GLint level, GLint internalFormat,                                         postConvWidth, postConvHeight, 1,                                         border, internalFormat); +            /* Choose actual texture format */ +            texImage->TexFormat = +               ctx->Driver.ChooseTextureFormat(ctx, internalFormat, +                                               format, type); +            ASSERT(texImage->TexFormat != MESA_FORMAT_NONE); +              /* Give the texture to the driver.  <pixels> may be null. */              ASSERT(ctx->Driver.TexImage2D);              ctx->Driver.TexImage2D(ctx, target, level, internalFormat, @@ -2423,6 +2435,12 @@ _mesa_TexImage3D( GLenum target, GLint level, GLint internalFormat,                                         width, height, depth,                                         border, internalFormat); +            /* Choose actual texture format */ +            texImage->TexFormat = +               ctx->Driver.ChooseTextureFormat(ctx, internalFormat, +                                               format, type); +            ASSERT(texImage->TexFormat != MESA_FORMAT_NONE); +              /* Give the texture to the driver.  <pixels> may be null. */              ASSERT(ctx->Driver.TexImage3D);              ctx->Driver.TexImage3D(ctx, target, level, internalFormat, @@ -2735,6 +2753,12 @@ _mesa_CopyTexImage1D( GLenum target, GLint level,           _mesa_init_teximage_fields(ctx, target, texImage, postConvWidth, 1, 1,                                      border, internalFormat); +         /* Choose actual texture format */ +         texImage->TexFormat = +            ctx->Driver.ChooseTextureFormat(ctx, internalFormat, +                                            GL_NONE, GL_NONE); +         ASSERT(texImage->TexFormat != MESA_FORMAT_NONE); +           ASSERT(ctx->Driver.CopyTexImage1D);           ctx->Driver.CopyTexImage1D(ctx, target, level, internalFormat,                                      x, y, width, border); @@ -2812,6 +2836,12 @@ _mesa_CopyTexImage2D( GLenum target, GLint level, GLenum internalFormat,                                      postConvWidth, postConvHeight, 1,                                      border, internalFormat); +         /* Choose actual texture format */ +         texImage->TexFormat = +            ctx->Driver.ChooseTextureFormat(ctx, internalFormat, +                                            GL_NONE, GL_NONE); +         ASSERT(texImage->TexFormat != MESA_FORMAT_NONE); +           ASSERT(ctx->Driver.CopyTexImage2D);           ctx->Driver.CopyTexImage2D(ctx, target, level, internalFormat,                                      x, y, width, height, border); @@ -3290,6 +3320,12 @@ _mesa_CompressedTexImage1DARB(GLenum target, GLint level,              _mesa_init_teximage_fields(ctx, target, texImage, width, 1, 1,                                         border, internalFormat); +            /* Choose actual texture format */ +            texImage->TexFormat = +               ctx->Driver.ChooseTextureFormat(ctx, internalFormat, +                                               GL_NONE, GL_NONE); +            ASSERT(texImage->TexFormat != MESA_FORMAT_NONE); +              ASSERT(ctx->Driver.CompressedTexImage1D);              ctx->Driver.CompressedTexImage1D(ctx, target, level,                                               internalFormat, width, border, @@ -3396,6 +3432,12 @@ _mesa_CompressedTexImage2DARB(GLenum target, GLint level,              _mesa_init_teximage_fields(ctx, target, texImage, width, height, 1,                                         border, internalFormat); +            /* Choose actual texture format */ +            texImage->TexFormat = +               ctx->Driver.ChooseTextureFormat(ctx, internalFormat, +                                               GL_NONE, GL_NONE); +            ASSERT(texImage->TexFormat != MESA_FORMAT_NONE); +              ASSERT(ctx->Driver.CompressedTexImage2D);              ctx->Driver.CompressedTexImage2D(ctx, target, level,                                               internalFormat, width, height, @@ -3501,6 +3543,12 @@ _mesa_CompressedTexImage3DARB(GLenum target, GLint level,                                         width, height, depth,                                         border, internalFormat); +            /* Choose actual texture format */ +            texImage->TexFormat = +               ctx->Driver.ChooseTextureFormat(ctx, internalFormat, +                                               GL_NONE, GL_NONE); +            ASSERT(texImage->TexFormat != MESA_FORMAT_NONE); +              ASSERT(ctx->Driver.CompressedTexImage3D);              ctx->Driver.CompressedTexImage3D(ctx, target, level,                                               internalFormat, diff --git a/src/mesa/main/texstore.c b/src/mesa/main/texstore.c index dd146254b4..692923ba0a 100644 --- a/src/mesa/main/texstore.c +++ b/src/mesa/main/texstore.c @@ -3250,10 +3250,6 @@ _mesa_store_teximage1d(GLcontext *ctx, GLenum target, GLint level,     GLuint sizeInBytes;     (void) border; -   texImage->TexFormat -      = ctx->Driver.ChooseTextureFormat(ctx, internalFormat, format, type); -   ASSERT(texImage->TexFormat); -     /* allocate memory */     sizeInBytes = texture_size(texImage);     texImage->Data = _mesa_alloc_texmemory(sizeInBytes); @@ -3311,10 +3307,6 @@ _mesa_store_teximage2d(GLcontext *ctx, GLenum target, GLint level,     GLuint sizeInBytes;     (void) border; -   texImage->TexFormat -      = ctx->Driver.ChooseTextureFormat(ctx, internalFormat, format, type); -   ASSERT(texImage->TexFormat); -     /* allocate memory */     sizeInBytes = texture_size(texImage);     texImage->Data = _mesa_alloc_texmemory(sizeInBytes); @@ -3368,10 +3360,6 @@ _mesa_store_teximage3d(GLcontext *ctx, GLenum target, GLint level,     GLuint sizeInBytes;     (void) border; -   texImage->TexFormat -      = ctx->Driver.ChooseTextureFormat(ctx, internalFormat, format, type); -   ASSERT(texImage->TexFormat); -     /* allocate memory */     sizeInBytes = texture_size(texImage);     texImage->Data = _mesa_alloc_texmemory(sizeInBytes); @@ -3570,10 +3558,6 @@ _mesa_store_compressed_teximage2d(GLcontext *ctx, GLenum target, GLint level,     ASSERT(texImage->Depth == 1);     ASSERT(texImage->Data == NULL); /* was freed in glCompressedTexImage2DARB */ -   texImage->TexFormat -      = ctx->Driver.ChooseTextureFormat(ctx, internalFormat, 0, 0); -   ASSERT(texImage->TexFormat); -     /* allocate storage */     texImage->Data = _mesa_alloc_texmemory(imageSize);     if (!texImage->Data) { diff --git a/src/mesa/state_tracker/st_cb_texture.c b/src/mesa/state_tracker/st_cb_texture.c index 4397adbc12..e8bb720acc 100644 --- a/src/mesa/state_tracker/st_cb_texture.c +++ b/src/mesa/state_tracker/st_cb_texture.c @@ -555,10 +555,6 @@ st_TexImage(GLcontext * ctx,     }  #endif -   /* choose the texture format */ -   texImage->TexFormat = st_ChooseTextureFormat(ctx, internalFormat, -                                                format, type); -     _mesa_set_fetch_functions(texImage, dims);     if (_mesa_is_format_compressed(texImage->TexFormat)) { | 
