[Mesa-stable] [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-stable mailing list