From 9fc609585d579a17e80249c5595a4e06a67af0e8 Mon Sep 17 00:00:00 2001 From: Lionel Landwerlin Date: Tue, 1 Oct 2019 11:55:46 +0300 Subject: [PATCH] mesa: don't forget to clear _Layer field on texture unit On the Android Antutu benchmark we ran into an assert in ISL where the (base layer + num layers) > total layers. It turns out the core of mesa forgot to clear the _Layer variable, potentially leaving an inconsistent value. v2: Pull setting u->_Layer out of the conditional blocks (Jason) Signed-off-by: Lionel Landwerlin Cc: Reviewed-by: Eric Engestrom Reviewed-by: Jason Ekstrand (cherry picked from commit 2208d79ddeebd1673f477611d508566ef82bd7c0) --- src/mesa/main/shaderimage.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mesa/main/shaderimage.c b/src/mesa/main/shaderimage.c index 242a8c29909..219674be086 100644 --- a/src/mesa/main/shaderimage.c +++ b/src/mesa/main/shaderimage.c @@ -588,11 +588,11 @@ set_image_binding(struct gl_image_unit *u, struct gl_texture_object *texObj, if (texObj && _mesa_tex_target_is_layered(texObj->Target)) { u->Layered = layered; u->Layer = layer; - u->_Layer = (u->Layered ? 0 : u->Layer); } else { u->Layered = GL_FALSE; u->Layer = 0; } + u->_Layer = (u->Layered ? 0 : u->Layer); _mesa_reference_texobj(&u->TexObj, texObj); }