intel: use new gl_texture_image:Face, Level fields
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
This commit is contained in:
@@ -541,8 +541,8 @@ intel_set_teximage_alpha_to_one(struct gl_context *ctx,
|
||||
|
||||
/* get dest x/y in destination texture */
|
||||
intel_miptree_get_image_offset(intel_image->mt,
|
||||
intel_image->level,
|
||||
intel_image->face,
|
||||
intel_image->base.Level,
|
||||
intel_image->base.Face,
|
||||
0,
|
||||
&image_x, &image_y);
|
||||
|
||||
|
||||
@@ -600,8 +600,8 @@ intel_renderbuffer_set_draw_offset(struct intel_renderbuffer *irb,
|
||||
|
||||
/* compute offset of the particular 2D image within the texture region */
|
||||
intel_miptree_get_image_offset(intel_image->mt,
|
||||
intel_image->level,
|
||||
intel_image->face,
|
||||
intel_image->base.Level,
|
||||
intel_image->base.Face,
|
||||
zoffset,
|
||||
&dst_x, &dst_y);
|
||||
|
||||
@@ -728,8 +728,8 @@ intel_render_texture(struct gl_context * ctx,
|
||||
|
||||
new_mt = intel_miptree_create(intel, image->TexObject->Target,
|
||||
intel_image->base.TexFormat,
|
||||
intel_image->level,
|
||||
intel_image->level,
|
||||
intel_image->base.Level,
|
||||
intel_image->base.Level,
|
||||
intel_image->base.Width,
|
||||
intel_image->base.Height,
|
||||
intel_image->base.Depth,
|
||||
@@ -737,8 +737,8 @@ intel_render_texture(struct gl_context * ctx,
|
||||
|
||||
intel_miptree_image_copy(intel,
|
||||
new_mt,
|
||||
intel_image->face,
|
||||
intel_image->level,
|
||||
intel_image->base.Face,
|
||||
intel_image->base.Level,
|
||||
old_mt);
|
||||
|
||||
intel_miptree_release(intel, &intel_image->mt);
|
||||
|
||||
@@ -227,7 +227,7 @@ intel_miptree_match_image(struct intel_mipmap_tree *mt,
|
||||
struct gl_texture_image *image)
|
||||
{
|
||||
struct intel_texture_image *intelImage = intel_texture_image(image);
|
||||
GLuint level = intelImage->level;
|
||||
GLuint level = intelImage->base.Level;
|
||||
|
||||
/* Images with borders are never pulled into mipmap trees. */
|
||||
if (image->Border)
|
||||
|
||||
@@ -95,17 +95,12 @@ intelGenerateMipmap(struct gl_context *ctx, GLenum target,
|
||||
if (!_mesa_is_format_compressed(first_image->TexFormat)) {
|
||||
GLuint nr_faces = (texObj->Target == GL_TEXTURE_CUBE_MAP) ? 6 : 1;
|
||||
GLuint face, i;
|
||||
/* Update the level information in our private data in the new images,
|
||||
* since it didn't get set as part of a normal TexImage path.
|
||||
*/
|
||||
for (face = 0; face < nr_faces; face++) {
|
||||
for (i = texObj->BaseLevel + 1; i < texObj->MaxLevel; i++) {
|
||||
struct intel_texture_image *intelImage =
|
||||
intel_texture_image(texObj->Image[face][i]);
|
||||
if (!intelImage)
|
||||
break;
|
||||
intelImage->level = i;
|
||||
intelImage->face = face;
|
||||
/* Unreference the miptree to signal that the new Data is a
|
||||
* bare pointer from mesa.
|
||||
*/
|
||||
|
||||
@@ -118,8 +118,8 @@ intel_copy_texsubimage(struct intel_context *intel,
|
||||
|
||||
/* get dest x/y in destination texture */
|
||||
intel_miptree_get_image_offset(intelImage->mt,
|
||||
intelImage->level,
|
||||
intelImage->face,
|
||||
intelImage->base.Level,
|
||||
intelImage->base.Face,
|
||||
0,
|
||||
&image_x, &image_y);
|
||||
|
||||
|
||||
@@ -63,7 +63,7 @@ intel_miptree_create_for_teximage(struct intel_context *intel,
|
||||
if (intelImage->base.Border)
|
||||
return NULL;
|
||||
|
||||
if (intelImage->level > intelObj->base.BaseLevel &&
|
||||
if (intelImage->base.Level > intelObj->base.BaseLevel &&
|
||||
(intelImage->base.Width == 1 ||
|
||||
(intelObj->base.Target != GL_TEXTURE_1D &&
|
||||
intelImage->base.Height == 1) ||
|
||||
@@ -74,19 +74,19 @@ intel_miptree_create_for_teximage(struct intel_context *intel,
|
||||
* likely base level width/height/depth for a full mipmap stack
|
||||
* from this info, so just allocate this one level.
|
||||
*/
|
||||
firstLevel = intelImage->level;
|
||||
lastLevel = intelImage->level;
|
||||
firstLevel = intelImage->base.Level;
|
||||
lastLevel = intelImage->base.Level;
|
||||
} else {
|
||||
/* If this image disrespects BaseLevel, allocate from level zero.
|
||||
* Usually BaseLevel == 0, so it's unlikely to happen.
|
||||
*/
|
||||
if (intelImage->level < intelObj->base.BaseLevel)
|
||||
if (intelImage->base.Level < intelObj->base.BaseLevel)
|
||||
firstLevel = 0;
|
||||
else
|
||||
firstLevel = intelObj->base.BaseLevel;
|
||||
|
||||
/* Figure out image dimensions at start level. */
|
||||
for (i = intelImage->level; i > firstLevel; i--) {
|
||||
for (i = intelImage->base.Level; i > firstLevel; i--) {
|
||||
width <<= 1;
|
||||
if (height != 1)
|
||||
height <<= 1;
|
||||
@@ -101,7 +101,7 @@ intel_miptree_create_for_teximage(struct intel_context *intel,
|
||||
*/
|
||||
if ((intelObj->base.Sampler.MinFilter == GL_NEAREST ||
|
||||
intelObj->base.Sampler.MinFilter == GL_LINEAR) &&
|
||||
intelImage->level == firstLevel &&
|
||||
intelImage->base.Level == firstLevel &&
|
||||
(intel->gen < 4 || firstLevel == 0)) {
|
||||
lastLevel = firstLevel;
|
||||
} else {
|
||||
@@ -186,8 +186,8 @@ try_pbo_upload(struct intel_context *intel,
|
||||
else
|
||||
src_stride = width;
|
||||
|
||||
intel_miptree_get_image_offset(intelImage->mt, intelImage->level,
|
||||
intelImage->face, 0,
|
||||
intel_miptree_get_image_offset(intelImage->mt, intelImage->base.Level,
|
||||
intelImage->base.Face, 0,
|
||||
&dst_x, &dst_y);
|
||||
|
||||
dst_stride = intelImage->mt->region->pitch;
|
||||
@@ -243,8 +243,8 @@ try_pbo_zcopy(struct intel_context *intel,
|
||||
else
|
||||
src_stride = width;
|
||||
|
||||
intel_miptree_get_image_offset(intelImage->mt, intelImage->level,
|
||||
intelImage->face, 0,
|
||||
intel_miptree_get_image_offset(intelImage->mt, intelImage->base.Level,
|
||||
intelImage->base.Face, 0,
|
||||
&dst_x, &dst_y);
|
||||
|
||||
dst_stride = intelImage->mt->region->pitch;
|
||||
@@ -407,9 +407,6 @@ intelTexImage(struct gl_context * ctx,
|
||||
DBG("%s target %s level %d %dx%dx%d border %d\n", __FUNCTION__,
|
||||
_mesa_lookup_enum_by_nr(target), level, width, height, depth, border);
|
||||
|
||||
intelImage->face = _mesa_tex_target_to_face(target);
|
||||
intelImage->level = level;
|
||||
|
||||
if (_mesa_is_format_compressed(texImage->TexFormat)) {
|
||||
texelBytes = 0;
|
||||
}
|
||||
@@ -514,8 +511,8 @@ intelTexImage(struct gl_context * ctx,
|
||||
}
|
||||
texImage->Data = intel_miptree_image_map(intel,
|
||||
intelImage->mt,
|
||||
intelImage->face,
|
||||
intelImage->level,
|
||||
intelImage->base.Face,
|
||||
intelImage->base.Level,
|
||||
&dstRowStride,
|
||||
intelImage->base.ImageOffsets);
|
||||
}
|
||||
@@ -684,8 +681,8 @@ intel_get_tex_image(struct gl_context * ctx, GLenum target, GLint level,
|
||||
intelImage->base.Data =
|
||||
intel_miptree_image_map(intel,
|
||||
intelImage->mt,
|
||||
intelImage->face,
|
||||
intelImage->level,
|
||||
intelImage->base.Face,
|
||||
intelImage->base.Level,
|
||||
&intelImage->base.RowStride,
|
||||
intelImage->base.ImageOffsets);
|
||||
intelImage->base.RowStride /= intelImage->mt->cpp;
|
||||
@@ -816,8 +813,6 @@ intelSetTexBuffer2(__DRIcontext *pDRICtx, GLint target,
|
||||
rb->region->width, rb->region->height, 1,
|
||||
0, internalFormat, texFormat);
|
||||
|
||||
intelImage->face = _mesa_tex_target_to_face(target);
|
||||
intelImage->level = level;
|
||||
texImage->RowStride = rb->region->pitch;
|
||||
intel_miptree_reference(&intelImage->mt, intelObj->mt);
|
||||
|
||||
@@ -874,8 +869,6 @@ intel_image_target_texture_2d(struct gl_context *ctx, GLenum target,
|
||||
image->region->width, image->region->height, 1,
|
||||
0, image->internal_format, image->format);
|
||||
|
||||
intelImage->face = _mesa_tex_target_to_face(target);
|
||||
intelImage->level = 0;
|
||||
texImage->RowStride = image->region->pitch;
|
||||
intel_miptree_reference(&intelImage->mt, intelObj->mt);
|
||||
|
||||
|
||||
@@ -52,11 +52,6 @@ struct intel_texture_image
|
||||
{
|
||||
struct gl_texture_image base;
|
||||
|
||||
/* These aren't stored in gl_texture_image
|
||||
*/
|
||||
GLuint level;
|
||||
GLuint face;
|
||||
|
||||
/* If intelImage->mt != NULL, image data is stored here.
|
||||
* Else if intelImage->base.Data != NULL, image is stored there.
|
||||
* Else there is no image data.
|
||||
|
||||
@@ -113,7 +113,7 @@ intelTexSubimage(struct gl_context * ctx,
|
||||
dstRowStride = pitch;
|
||||
|
||||
intel_miptree_get_image_offset(intelImage->mt, level,
|
||||
intelImage->face, 0,
|
||||
intelImage->base.Face, 0,
|
||||
&blit_x, &blit_y);
|
||||
blit_x += xoffset;
|
||||
blit_y += yoffset;
|
||||
@@ -122,8 +122,8 @@ intelTexSubimage(struct gl_context * ctx,
|
||||
} else {
|
||||
texImage->Data = intel_miptree_image_map(intel,
|
||||
intelImage->mt,
|
||||
intelImage->face,
|
||||
intelImage->level,
|
||||
intelImage->base.Face,
|
||||
intelImage->base.Level,
|
||||
&dstRowStride,
|
||||
texImage->ImageOffsets);
|
||||
}
|
||||
|
||||
@@ -42,8 +42,8 @@ copy_image_data_to_tree(struct intel_context *intel,
|
||||
*/
|
||||
intel_miptree_image_copy(intel,
|
||||
intelObj->mt,
|
||||
intelImage->face,
|
||||
intelImage->level, intelImage->mt);
|
||||
intelImage->base.Face,
|
||||
intelImage->base.Level, intelImage->mt);
|
||||
|
||||
intel_miptree_release(intel, &intelImage->mt);
|
||||
}
|
||||
@@ -54,8 +54,8 @@ copy_image_data_to_tree(struct intel_context *intel,
|
||||
*/
|
||||
intel_miptree_image_data(intel,
|
||||
intelObj->mt,
|
||||
intelImage->face,
|
||||
intelImage->level,
|
||||
intelImage->base.Face,
|
||||
intelImage->base.Level,
|
||||
intelImage->base.Data,
|
||||
intelImage->base.RowStride,
|
||||
intelImage->base.RowStride *
|
||||
@@ -177,8 +177,8 @@ intel_tex_map_level_images(struct intel_context *intel,
|
||||
intelImage->base.Data =
|
||||
intel_miptree_image_map(intel,
|
||||
intelImage->mt,
|
||||
intelImage->face,
|
||||
intelImage->level,
|
||||
intelImage->base.Face,
|
||||
intelImage->base.Level,
|
||||
&intelImage->base.RowStride,
|
||||
intelImage->base.ImageOffsets);
|
||||
/* convert stride to texels, not bytes */
|
||||
|
||||
Reference in New Issue
Block a user