mesa: set _NEW_BUFFERS when updating texture bound to current buffers
When a glTexImage call updates the parameters of a currently bound framebuffer, we might miss out on revalidating whether it is complete. Make sure to set _NEW_BUFFERS which will trigger the revalidation in that case. Also while we're at it, fix the fb parameter passed in to the eventual RenderTexture call. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94148 Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Cc: "11.2 12.0" <mesa-stable@lists.freedesktop.org> Reviewed-by: Marek Olšák <marek.olsak@amd.com> Tested-by: Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
This commit is contained in:
parent
8b7607d28a
commit
da7223ebdc
|
@ -2606,10 +2606,16 @@ check_rtt_cb(GLuint key, void *data, void *userData)
|
|||
att->Texture == texObj &&
|
||||
att->TextureLevel == level &&
|
||||
att->CubeMapFace == face) {
|
||||
_mesa_update_texture_renderbuffer(ctx, ctx->DrawBuffer, att);
|
||||
_mesa_update_texture_renderbuffer(ctx, fb, att);
|
||||
assert(att->Renderbuffer->TexImage);
|
||||
/* Mark fb status as indeterminate to force re-validation */
|
||||
fb->_Status = 0;
|
||||
|
||||
/* Make sure that the revalidation actually happens if this is
|
||||
* being done to currently-bound buffers.
|
||||
*/
|
||||
if (fb == ctx->DrawBuffer || fb == ctx->ReadBuffer)
|
||||
ctx->NewState |= _NEW_BUFFERS;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue