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>
This commit is contained in:
@@ -593,11 +593,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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user