summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mesa/drivers/dri/intel/intel_tex_image.c22
-rw-r--r--src/mesa/drivers/dri/nouveau/nouveau_texture.c21
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_texture.c34
-rw-r--r--src/mesa/main/dd.h2
-rw-r--r--src/mesa/main/teximage.c7
-rw-r--r--src/mesa/main/texobj.c3
-rw-r--r--src/mesa/main/texstore.c9
-rw-r--r--src/mesa/main/texstore.h2
-rw-r--r--src/mesa/state_tracker/st_cb_texture.c21
9 files changed, 33 insertions, 88 deletions
diff --git a/src/mesa/drivers/dri/intel/intel_tex_image.c b/src/mesa/drivers/dri/intel/intel_tex_image.c
index a023fef5634..acb21fbc7e4 100644
--- a/src/mesa/drivers/dri/intel/intel_tex_image.c
+++ b/src/mesa/drivers/dri/intel/intel_tex_image.c
@@ -133,8 +133,7 @@ static bool
try_pbo_upload(struct gl_context *ctx,
struct gl_texture_image *image,
const struct gl_pixelstore_attrib *unpack,
- GLenum format, GLenum type,
- GLint width, GLint height, const void *pixels)
+ GLenum format, GLenum type, const void *pixels)
{
struct intel_texture_image *intelImage = intel_texture_image(image);
struct intel_context *intel = intel_context(ctx);
@@ -162,7 +161,7 @@ try_pbo_upload(struct gl_context *ctx,
}
ctx->Driver.AllocTextureImageBuffer(ctx, image, image->TexFormat,
- width, height, 1);
+ image->Width, image->Height, 1);
if (!intelImage->mt) {
DBG("%s: no miptree\n", __FUNCTION__);
@@ -177,7 +176,7 @@ try_pbo_upload(struct gl_context *ctx,
if (unpack->RowLength > 0)
src_stride = unpack->RowLength;
else
- src_stride = width;
+ src_stride = image->Width;
intel_miptree_get_image_offset(intelImage->mt, intelImage->base.Base.Level,
intelImage->base.Base.Face, 0,
@@ -191,7 +190,7 @@ try_pbo_upload(struct gl_context *ctx,
src_offset, false,
dst_stride, dst_buffer, 0,
intelImage->mt->region->tiling,
- 0, 0, dst_x, dst_y, width, height,
+ 0, 0, dst_x, dst_y, image->Width, image->Height,
GL_COPY)) {
DBG("%s: blit failed\n", __FUNCTION__);
return false;
@@ -205,28 +204,25 @@ static void
intelTexImage(struct gl_context * ctx,
GLuint dims,
struct gl_texture_image *texImage,
- GLint internalFormat,
- GLint width, GLint height, GLint depth, GLint border,
GLenum format, GLenum type, const void *pixels,
const struct gl_pixelstore_attrib *unpack)
{
DBG("%s target %s level %d %dx%dx%d\n", __FUNCTION__,
_mesa_lookup_enum_by_nr(texImage->TexObject->Target),
- texImage->Level, width, height, depth);
+ texImage->Level, texImage->Width, texImage->Height, texImage->Depth);
/* Attempt to use the blitter for PBO image uploads.
*/
if (dims <= 2 &&
- try_pbo_upload(ctx, texImage, unpack, format, type,
- width, height, pixels)) {
+ try_pbo_upload(ctx, texImage, unpack, format, type, pixels)) {
return;
}
DBG("%s: upload image %dx%dx%d pixels %p\n",
- __FUNCTION__, width, height, depth, pixels);
+ __FUNCTION__, texImage->Width, texImage->Height, texImage->Depth,
+ pixels);
- _mesa_store_teximage(ctx, dims, texImage, internalFormat,
- width, height, depth, 0,
+ _mesa_store_teximage(ctx, dims, texImage,
format, type, pixels, unpack);
}
diff --git a/src/mesa/drivers/dri/nouveau/nouveau_texture.c b/src/mesa/drivers/dri/nouveau/nouveau_texture.c
index 0060f464307..18dc9f7e650 100644
--- a/src/mesa/drivers/dri/nouveau/nouveau_texture.c
+++ b/src/mesa/drivers/dri/nouveau/nouveau_texture.c
@@ -481,8 +481,6 @@ get_teximage_placement(struct gl_texture_image *ti)
static void
nouveau_teximage(struct gl_context *ctx, GLint dims,
struct gl_texture_image *ti,
- GLint internalFormat,
- GLint width, GLint height, GLint depth, GLint border,
GLsizei imageSize,
GLenum format, GLenum type, const GLvoid *pixels,
const struct gl_pixelstore_attrib *packing,
@@ -493,10 +491,11 @@ nouveau_teximage(struct gl_context *ctx, GLint dims,
struct nouveau_surface *s = &to_nouveau_teximage(ti)->surface;
struct nouveau_teximage *nti = to_nouveau_teximage(ti);
int ret;
+ GLuint depth = compressed ? 1 : ti->Depth;
/* Allocate a new bo for the image. */
nouveau_surface_alloc(ctx, s, LINEAR, get_teximage_placement(ti),
- ti->TexFormat, width, height);
+ ti->TexFormat, ti->Width, ti->Height);
nti->base.RowStride = s->pitch / s->cpp;
if (compressed)
@@ -505,19 +504,19 @@ nouveau_teximage(struct gl_context *ctx, GLint dims,
pixels, packing, "glCompressedTexImage");
else
pixels = _mesa_validate_pbo_teximage(ctx,
- dims, width, height, depth, format, type,
+ dims, ti->Width, ti->Height, depth, format, type,
pixels, packing, "glTexImage");
if (pixels) {
/* Store the pixel data. */
nouveau_teximage_map(ctx, ti, GL_MAP_WRITE_BIT,
- 0, 0, width, height);
+ 0, 0, ti->Width, ti->Height);
ret = _mesa_texstore(ctx, dims, ti->_BaseFormat,
ti->TexFormat,
s->pitch,
&nti->base.Map,
- width, height, depth,
+ ti->Width, ti->Height, depth,
format, type, pixels, packing);
assert(ret);
@@ -525,7 +524,7 @@ nouveau_teximage(struct gl_context *ctx, GLint dims,
_mesa_unmap_teximage_pbo(ctx, packing);
if (!validate_teximage(ctx, t, level, 0, 0, 0,
- width, height, depth))
+ ti->Width, ti->Height, depth))
/* It doesn't fit, mark it as dirty. */
texture_dirty(t);
}
@@ -544,13 +543,10 @@ nouveau_teximage(struct gl_context *ctx, GLint dims,
static void
nouveau_teximage_123d(struct gl_context *ctx, GLuint dims,
struct gl_texture_image *ti,
- GLint internalFormat,
- GLint width, GLint height, GLint depth, GLint border,
GLenum format, GLenum type, const GLvoid *pixels,
const struct gl_pixelstore_attrib *packing)
{
- nouveau_teximage(ctx, dims, ti, internalFormat,
- width, height, depth, border, 0, format, type, pixels,
+ nouveau_teximage(ctx, dims, ti, 0, format, type, pixels,
packing, GL_FALSE);
}
@@ -561,8 +557,7 @@ nouveau_compressed_teximage(struct gl_context *ctx, GLuint dims,
GLint width, GLint height, GLint depth, GLint border,
GLsizei imageSize, const GLvoid *data)
{
- nouveau_teximage(ctx, 2, ti, internalFormat,
- width, height, 1, border, imageSize, 0, 0, data,
+ nouveau_teximage(ctx, 2, ti, imageSize, 0, 0, data,
&ctx->Unpack, GL_TRUE);
}
diff --git a/src/mesa/drivers/dri/radeon/radeon_texture.c b/src/mesa/drivers/dri/radeon/radeon_texture.c
index 6c7171953bb..04f3e232b37 100644
--- a/src/mesa/drivers/dri/radeon/radeon_texture.c
+++ b/src/mesa/drivers/dri/radeon/radeon_texture.c
@@ -573,38 +573,6 @@ static void teximage_assign_miptree(radeonContextPtr rmesa,
"%s Failed to allocate miptree.\n", __func__);
}
-/**
- * All glTexImage calls go through this function.
- */
-static void radeon_teximage(
- struct gl_context *ctx, int dims,
- struct gl_texture_image *texImage,
- GLint internalFormat,
- GLint width, GLint height, GLint depth,
- GLsizei imageSize,
- GLenum format, GLenum type, const GLvoid * pixels,
- const struct gl_pixelstore_attrib *packing,
- int compressed)
-{
- _mesa_store_teximage(ctx, dims, texImage, internalFormat,
- width, height, depth, 0,
- format, type, pixels,
- packing);
-}
-
-static void
-radeonTexImage(struct gl_context * ctx, GLuint dims,
- struct gl_texture_image *texImage,
- GLint internalFormat,
- GLint width, GLint height, GLint depth,
- GLint border,
- GLenum format, GLenum type, const GLvoid * pixels,
- const struct gl_pixelstore_attrib *packing)
-{
- radeon_teximage(ctx, dims, texImage, internalFormat, width, height, depth,
- 0, format, type, pixels, packing, 0);
-}
-
unsigned radeonIsFormatRenderable(gl_format mesa_format)
{
if (mesa_format == _radeon_texformat_argb8888 || mesa_format == _radeon_texformat_rgb565 ||
@@ -725,8 +693,6 @@ radeon_init_common_texture_funcs(radeonContextPtr radeon,
functions->ChooseTextureFormat = radeonChooseTextureFormat_mesa;
- functions->TexImage = radeonTexImage;
-
functions->CopyTexSubImage = radeonCopyTexSubImage;
functions->Bitmap = _mesa_meta_Bitmap;
diff --git a/src/mesa/main/dd.h b/src/mesa/main/dd.h
index e60d019bb0d..546e360819a 100644
--- a/src/mesa/main/dd.h
+++ b/src/mesa/main/dd.h
@@ -208,8 +208,6 @@ struct dd_function_table {
*/
void (*TexImage)(struct gl_context *ctx, GLuint dims,
struct gl_texture_image *texImage,
- GLint internalFormat,
- GLint width, GLint height, GLint depth, GLint border,
GLenum format, GLenum type, const GLvoid *pixels,
const struct gl_pixelstore_attrib *packing);
diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c
index 9ffdb465668..607869cdf76 100644
--- a/src/mesa/main/teximage.c
+++ b/src/mesa/main/teximage.c
@@ -2616,8 +2616,7 @@ teximage(struct gl_context *ctx, GLuint dims,
border, internalFormat, texFormat);
/* Give the texture to the driver. <pixels> may be null. */
- ctx->Driver.TexImage(ctx, dims, texImage, internalFormat,
- width, height, depth, border, format,
+ ctx->Driver.TexImage(ctx, dims, texImage, format,
type, pixels, unpack);
check_gen_mipmap(ctx, target, texObj, level);
@@ -2945,8 +2944,8 @@ copyteximage(struct gl_context *ctx, GLuint dims,
border, internalFormat, texFormat);
/* Allocate texture memory (no pixel data yet) */
- ctx->Driver.TexImage(ctx, dims, texImage, internalFormat,
- width, height, 1, border, GL_NONE, GL_NONE,
+ ctx->Driver.TexImage(ctx, dims, texImage,
+ GL_NONE, GL_NONE,
NULL, &ctx->Unpack);
if (_mesa_clip_copytexsubimage(ctx, &dstX, &dstY, &srcX, &srcY,
diff --git a/src/mesa/main/texobj.c b/src/mesa/main/texobj.c
index 529a6d44929..f70da4fbc94 100644
--- a/src/mesa/main/texobj.c
+++ b/src/mesa/main/texobj.c
@@ -807,8 +807,7 @@ _mesa_get_fallback_texture(struct gl_context *ctx, gl_texture_index tex)
0, /* border */
GL_RGBA, texFormat);
- ctx->Driver.TexImage(ctx, dims, texImage, GL_RGBA,
- width, height, depth, 0,
+ ctx->Driver.TexImage(ctx, dims, texImage,
GL_RGBA, GL_UNSIGNED_BYTE, texel,
&ctx->DefaultPacking);
}
diff --git a/src/mesa/main/texstore.c b/src/mesa/main/texstore.c
index ab9fdf26d3e..52eef3ebab3 100644
--- a/src/mesa/main/texstore.c
+++ b/src/mesa/main/texstore.c
@@ -4336,25 +4336,24 @@ void
_mesa_store_teximage(struct gl_context *ctx,
GLuint dims,
struct gl_texture_image *texImage,
- GLint internalFormat,
- GLint width, GLint height, GLint depth, GLint border,
GLenum format, GLenum type, const GLvoid *pixels,
const struct gl_pixelstore_attrib *packing)
{
assert(dims == 1 || dims == 2 || dims == 3);
- if (width == 0 || height == 0 || depth == 0)
+ if (texImage->Width == 0 || texImage->Height == 0 || texImage->Depth == 0)
return;
/* allocate storage for texture data */
if (!ctx->Driver.AllocTextureImageBuffer(ctx, texImage, texImage->TexFormat,
- width, height, depth)) {
+ texImage->Width, texImage->Height,
+ texImage->Depth)) {
_mesa_error(ctx, GL_OUT_OF_MEMORY, "glTexImage%uD", dims);
return;
}
store_texsubimage(ctx, texImage,
- 0, 0, 0, width, height, depth,
+ 0, 0, 0, texImage->Width, texImage->Height, texImage->Depth,
format, type, pixels, packing, "glTexImage");
}
diff --git a/src/mesa/main/texstore.h b/src/mesa/main/texstore.h
index 5a1c014231c..fbcb41b490d 100644
--- a/src/mesa/main/texstore.h
+++ b/src/mesa/main/texstore.h
@@ -93,8 +93,6 @@ extern void
_mesa_store_teximage(struct gl_context *ctx,
GLuint dims,
struct gl_texture_image *texImage,
- GLint internalFormat,
- GLint width, GLint height, GLint depth, GLint border,
GLenum format, GLenum type, const GLvoid *pixels,
const struct gl_pixelstore_attrib *packing);
diff --git a/src/mesa/state_tracker/st_cb_texture.c b/src/mesa/state_tracker/st_cb_texture.c
index 92ce3fa2073..0c4e8a8f47b 100644
--- a/src/mesa/state_tracker/st_cb_texture.c
+++ b/src/mesa/state_tracker/st_cb_texture.c
@@ -500,8 +500,6 @@ st_AllocTextureImageBuffer(struct gl_context *ctx,
*/
static void
prep_teximage(struct gl_context *ctx, struct gl_texture_image *texImage,
- GLint internalFormat,
- GLint width, GLint height, GLint depth, GLint border,
GLenum format, GLenum type)
{
struct gl_texture_object *texObj = texImage->TexObject;
@@ -518,11 +516,13 @@ prep_teximage(struct gl_context *ctx, struct gl_texture_image *texImage,
/* oops, need to init this image again */
texFormat = _mesa_choose_texture_format(ctx, texObj, target, level,
- internalFormat, format, type);
+ texImage->InternalFormat, format,
+ type);
_mesa_init_teximage_fields(ctx, texImage,
- width, height, depth, border,
- internalFormat, texFormat);
+ texImage->Width, texImage->Height,
+ texImage->Depth, texImage->Border,
+ texImage->InternalFormat, texFormat);
stObj->surface_based = GL_FALSE;
}
@@ -532,15 +532,11 @@ prep_teximage(struct gl_context *ctx, struct gl_texture_image *texImage,
static void
st_TexImage(struct gl_context * ctx, GLuint dims,
struct gl_texture_image *texImage,
- GLint internalFormat,
- GLint width, GLint height, GLint depth, GLint border,
GLenum format, GLenum type, const void *pixels,
const struct gl_pixelstore_attrib *unpack)
{
- prep_teximage(ctx, texImage, internalFormat, width, height, depth, border,
- format, type);
- _mesa_store_teximage(ctx, dims, texImage, internalFormat, width, height, depth,
- border, format, type, pixels, unpack);
+ prep_teximage(ctx, texImage, format, type);
+ _mesa_store_teximage(ctx, dims, texImage, format, type, pixels, unpack);
}
@@ -551,8 +547,7 @@ st_CompressedTexImage(struct gl_context *ctx, GLuint dims,
GLint width, GLint height, GLint border, GLint depth,
GLsizei imageSize, const GLvoid *data)
{
- prep_teximage(ctx, texImage, internalFormat, width, height, depth, border,
- GL_NONE, GL_NONE);
+ prep_teximage(ctx, texImage, GL_NONE, GL_NONE);
_mesa_store_compressed_teximage(ctx, dims, texImage, internalFormat, width,
height, depth, border, imageSize, data);
}