summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLionel Landwerlin <lionel.g.landwerlin@intel.com>2019-10-01 11:55:46 +0300
committerJuan A. Suarez Romero <jasuarez@igalia.com>2019-10-02 09:41:27 -0400
commit9fc609585d579a17e80249c5595a4e06a67af0e8 (patch)
tree887204c8d7e9c69a73c787d8f7ec3381adb8e86d
parentab1ae127908f601f64c95c61fbbe40a99abbdb60 (diff)
downloadmesa-9fc609585d579a17e80249c5595a4e06a67af0e8.tar.gz
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 <lionel.g.landwerlin@intel.com> Cc: <mesa-stable@lists.freedesktop.org> Reviewed-by: Eric Engestrom <eric.engestrom@intel.com> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> (cherry picked from commit 2208d79ddeebd1673f477611d508566ef82bd7c0)
-rw-r--r--src/mesa/main/shaderimage.c2
1 files changed, 1 insertions, 1 deletions
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);
}