mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-07 06:30:11 +01:00
st/mesa: fix mipmap generation bug
In st_finalize_texture() we were looking at the st_texture_object:: lastLevel field instead of the pipe_resource::last_level field to determine which resource to store the mipmap in. Then, in st_generate_mipmap() we need to call st_finalize_texture() to make sure the destination resource is properly allocated. These changes fix the broken piglit fbo-generatemipmap-formats test.
This commit is contained in:
parent
c1095f0b0c
commit
cae2bb76c1
2 changed files with 8 additions and 1 deletions
|
|
@ -1855,8 +1855,9 @@ st_finalize_texture(struct gl_context *ctx,
|
||||||
* will match.
|
* will match.
|
||||||
*/
|
*/
|
||||||
if (firstImage->pt &&
|
if (firstImage->pt &&
|
||||||
|
stObj->pt &&
|
||||||
firstImage->pt != stObj->pt &&
|
firstImage->pt != stObj->pt &&
|
||||||
firstImage->pt->last_level >= stObj->lastLevel) {
|
firstImage->pt->last_level >= stObj->pt->last_level) {
|
||||||
pipe_resource_reference(&stObj->pt, firstImage->pt);
|
pipe_resource_reference(&stObj->pt, firstImage->pt);
|
||||||
pipe_sampler_view_reference(&stObj->sampler_view, NULL);
|
pipe_sampler_view_reference(&stObj->sampler_view, NULL);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -370,6 +370,12 @@ st_generate_mipmap(struct gl_context *ctx, GLenum target,
|
||||||
|
|
||||||
pt = stObj->pt;
|
pt = stObj->pt;
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
/* Make sure that the base texture image data is present in the
|
||||||
|
* texture buffer.
|
||||||
|
*/
|
||||||
|
st_finalize_texture(ctx, st->pipe, texObj);
|
||||||
|
}
|
||||||
|
|
||||||
assert(pt->last_level >= lastLevel);
|
assert(pt->last_level >= lastLevel);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue