summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhilipp Zabel <[email protected]>2017-01-19 15:05:41 +0100
committerLucas Stach <[email protected]>2017-01-20 15:30:30 +0100
commit97de7e658664865f042b1729f3f959ee0fb7b6a4 (patch)
treeaa68cf858e1db143d6e0f033b5319f14c425a8f9
parent9bab714c61fa1eb22c6723af81caf83fffe549f4 (diff)
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 <[email protected]> Reviewed-by: Marek Olšák <[email protected]> Signed-off-by: Lucas Stach <[email protected]>
-rw-r--r--src/mesa/state_tracker/st_atom_texture.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/mesa/state_tracker/st_atom_texture.c b/src/mesa/state_tracker/st_atom_texture.c
index 76e512f52aa..92023e0dc3a 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;