[PATCH v4 5/7] mesa: update external textures when (re-)binding

Marek Olšák maraeo at gmail.com
Sat Jan 14 13:49:04 UTC 2017


Reviewed-by: Marek Olšák <marek.olsak at amd.com>

On Dec 6, 2016 5:17 PM, "Philipp Zabel" <p.zabel at pengutronix.de> wrote:

> To comply with the requirement from the GL_OES_EGL_image_external
> extension that a call to glBindTexture guarantees that all further
> sampling will return values that correspond to the values in the
> external texture at or after the time that glBindTexture was called,
> do not bail out early from mesa_BindTextures if the target is
> external.
> This will later allow the state tracker to instruct the pipe driver
> to invalidate internal resources derived from the external texture.
>
> Signed-off-by: Philipp Zabel <p.zabel at pengutronix.de>
> ---
>  src/mesa/main/texobj.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/src/mesa/main/texobj.c b/src/mesa/main/texobj.c
> index e5b7070..25b959d 100644
> --- a/src/mesa/main/texobj.c
> +++ b/src/mesa/main/texobj.c
> @@ -1619,9 +1619,10 @@ bind_texture(struct gl_context *ctx,
>     assert(targetIndex < NUM_TEXTURE_TARGETS);
>
>     /* Check if this texture is only used by this context and is already
> bound.
> -    * If so, just return.
> +    * If so, just return. For GL_OES_image_external, rebinding the texture
> +    * always must invalidate cached resources.
>      */
> -   {
> +   if (targetIndex != TEXTURE_EXTERNAL_INDEX) {
>        bool early_out;
>        mtx_lock(&ctx->Shared->Mutex);
>        early_out = ((ctx->Shared->RefCount == 1)
> --
> 2.10.2
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/etnaviv/attachments/20170114/2235a1d8/attachment-0001.html>


More information about the etnaviv mailing list