[Mesa-dev] [PATCH] mesa: set _NEW_BUFFERS when updating texture bound to current buffers
Marek Olšák
maraeo at gmail.com
Sat Jul 9 20:47:35 UTC 2016
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
Marek
On Fri, Jul 8, 2016 at 8:24 PM, Ilia Mirkin <imirkin at alum.mit.edu> wrote:
> 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 at alum.mit.edu>
> Cc: "11.2 12.0" <mesa-stable at lists.freedesktop.org>
> ---
> src/mesa/main/teximage.c | 8 +++++++-
> 1 file changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c
> index 26a6c21..a97815f 100644
> --- a/src/mesa/main/teximage.c
> +++ b/src/mesa/main/teximage.c
> @@ -2605,10 +2605,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;
> }
> }
> }
> --
> 2.7.3
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list