Mesa (master): st/mesa: ask pipe driver to recreate derived internal resources when (re-) binding external textures

Lucas Stach lynxeye at kemper.freedesktop.org
Fri Jan 20 14:35:58 UTC 2017


Module: Mesa
Branch: master
Commit: 97de7e658664865f042b1729f3f959ee0fb7b6a4
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=97de7e658664865f042b1729f3f959ee0fb7b6a4

Author: Philipp Zabel <p.zabel at pengutronix.de>
Date:   Thu Jan 19 15:05:41 2017 +0100

st/mesa: ask pipe driver to recreate derived internal resources when (re-)binding external textures

Use the resource_changed callback to invalidate internal resources
derived from external textures when they are (re-)bound. This is needed
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.

Signed-off-by: Philipp Zabel <p.zabel at pengutronix.de>
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
Signed-off-by: Lucas Stach <l.stach at pengutronix.de>

---

 src/mesa/state_tracker/st_atom_texture.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/mesa/state_tracker/st_atom_texture.c b/src/mesa/state_tracker/st_atom_texture.c
index 76e512f..92023e0 100644
--- a/src/mesa/state_tracker/st_atom_texture.c
+++ b/src/mesa/state_tracker/st_atom_texture.c
@@ -91,6 +91,10 @@ update_single_texture(struct st_context *st,
       stObj->prev_sRGBDecode = samp->sRGBDecode;
    }
 
+   if (texObj->TargetIndex == TEXTURE_EXTERNAL_INDEX &&
+       stObj->pt->screen->resource_changed)
+         stObj->pt->screen->resource_changed(stObj->pt->screen, stObj->pt);
+
    *sampler_view =
       st_get_texture_sampler_view_from_stobj(st, stObj, samp, glsl_version);
    return GL_TRUE;




More information about the mesa-commit mailing list