mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 00:58:05 +02:00
radeon: fix teximage migration failure in rare case
Always store selected miptree in texObj->mt so get_base_teximage_offset returns correct data. Found with piglit/mipmap-setup. Candidate for 7.8 branch. Signed-off-by: Maciej Cencora <m.cencora@gmail.com>
This commit is contained in:
parent
452a7d5a9d
commit
ad24ea37bb
1 changed files with 4 additions and 4 deletions
|
|
@ -604,15 +604,15 @@ int radeon_validate_texture_miptree(GLcontext * ctx, struct gl_texture_object *t
|
|||
radeon_mipmap_tree *dst_miptree;
|
||||
dst_miptree = get_biggest_matching_miptree(t, t->minLod, t->maxLod);
|
||||
|
||||
radeon_miptree_unreference(&t->mt);
|
||||
if (!dst_miptree) {
|
||||
radeon_miptree_unreference(&t->mt);
|
||||
radeon_try_alloc_miptree(rmesa, t);
|
||||
dst_miptree = t->mt;
|
||||
radeon_print(RADEON_TEXTURE, RADEON_NORMAL,
|
||||
"%s: No matching miptree found, allocated new one %p\n",
|
||||
__FUNCTION__, t->mt);
|
||||
|
||||
} else {
|
||||
radeon_miptree_reference(dst_miptree, &t->mt);
|
||||
radeon_print(RADEON_TEXTURE, RADEON_NORMAL,
|
||||
"%s: Using miptree %p\n", __FUNCTION__, t->mt);
|
||||
}
|
||||
|
|
@ -629,7 +629,7 @@ int radeon_validate_texture_miptree(GLcontext * ctx, struct gl_texture_object *t
|
|||
"Checking image level %d, face %d, mt %p ... ",
|
||||
level, face, img->mt);
|
||||
|
||||
if (img->mt != dst_miptree) {
|
||||
if (img->mt != t->mt) {
|
||||
radeon_print(RADEON_TEXTURE, RADEON_TRACE,
|
||||
"MIGRATING\n");
|
||||
|
||||
|
|
@ -637,7 +637,7 @@ int radeon_validate_texture_miptree(GLcontext * ctx, struct gl_texture_object *t
|
|||
if (src_bo && radeon_bo_is_referenced_by_cs(src_bo, rmesa->cmdbuf.cs)) {
|
||||
radeon_firevertices(rmesa);
|
||||
}
|
||||
migrate_image_to_miptree(dst_miptree, img, face, level);
|
||||
migrate_image_to_miptree(t->mt, img, face, level);
|
||||
} else
|
||||
radeon_print(RADEON_TEXTURE, RADEON_TRACE, "OK\n");
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue