From: Kenneth Graunke Date: Sun, 19 Jun 2016 07:36:48 +0000 (-0700) Subject: mesa: Move compute_num_levels from st_gen_mipmap.c to mipmap.c. X-Git-Tag: upstream/18.1.0~1604 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=9bcd31ea90addd7a16802de8a28b2f3242dc8298;p=platform%2Fupstream%2Fmesa.git mesa: Move compute_num_levels from st_gen_mipmap.c to mipmap.c. I want to use compute_num_levels inside i965. Rather than duplicating it, move it from mesa/st to core Mesa, and make it non-static. Reviewed-by: Marek Olšák --- diff --git a/src/mesa/main/mipmap.c b/src/mesa/main/mipmap.c index fc36d40..1ed82c5 100644 --- a/src/mesa/main/mipmap.c +++ b/src/mesa/main/mipmap.c @@ -42,6 +42,30 @@ #include "util/format_r11g11b10f.h" +/** + * Compute the expected number of mipmap levels in the texture given + * the width/height/depth of the base image and the GL_TEXTURE_BASE_LEVEL/ + * GL_TEXTURE_MAX_LEVEL settings. This will tell us how many mipmap + * levels should be generated. + */ +unsigned +_mesa_compute_num_levels(struct gl_context *ctx, + struct gl_texture_object *texObj, + GLenum target) +{ + const struct gl_texture_image *baseImage; + GLuint numLevels; + + baseImage = _mesa_get_tex_image(ctx, texObj, target, texObj->BaseLevel); + + numLevels = texObj->BaseLevel + baseImage->MaxNumLevels; + numLevels = MIN2(numLevels, (GLuint) texObj->MaxLevel + 1); + if (texObj->Immutable) + numLevels = MIN2(numLevels, texObj->NumLevels); + assert(numLevels >= 1); + + return numLevels; +} static GLint bytes_per_pixel(GLenum datatype, GLuint comps) diff --git a/src/mesa/main/mipmap.h b/src/mesa/main/mipmap.h index d11c7fa..1f108f7 100644 --- a/src/mesa/main/mipmap.h +++ b/src/mesa/main/mipmap.h @@ -28,6 +28,10 @@ #include "mtypes.h" +unsigned +_mesa_compute_num_levels(struct gl_context *ctx, + struct gl_texture_object *texObj, + GLenum target); extern void _mesa_generate_mipmap_level(GLenum target, diff --git a/src/mesa/state_tracker/st_gen_mipmap.c b/src/mesa/state_tracker/st_gen_mipmap.c index 16b914a..f2aa800 100644 --- a/src/mesa/state_tracker/st_gen_mipmap.c +++ b/src/mesa/state_tracker/st_gen_mipmap.c @@ -45,32 +45,6 @@ /** - * Compute the expected number of mipmap levels in the texture given - * the width/height/depth of the base image and the GL_TEXTURE_BASE_LEVEL/ - * GL_TEXTURE_MAX_LEVEL settings. This will tell us how many mipmap - * levels should be generated. - */ -static GLuint -compute_num_levels(struct gl_context *ctx, - struct gl_texture_object *texObj, - GLenum target) -{ - const struct gl_texture_image *baseImage; - GLuint numLevels; - - baseImage = _mesa_get_tex_image(ctx, texObj, target, texObj->BaseLevel); - - numLevels = texObj->BaseLevel + baseImage->MaxNumLevels; - numLevels = MIN2(numLevels, (GLuint) texObj->MaxLevel + 1); - if (texObj->Immutable) - numLevels = MIN2(numLevels, texObj->NumLevels); - assert(numLevels >= 1); - - return numLevels; -} - - -/** * Called via ctx->Driver.GenerateMipmap(). */ void @@ -92,7 +66,7 @@ st_generate_mipmap(struct gl_context *ctx, GLenum target, assert(pt->nr_samples < 2); /* find expected last mipmap level to generate*/ - lastLevel = compute_num_levels(ctx, texObj, target) - 1; + lastLevel = _mesa_compute_num_levels(ctx, texObj, target) - 1; if (lastLevel == 0) return;