From: Eric Anholt Date: Tue, 18 Dec 2012 20:03:49 +0000 (-0800) Subject: i965: Fix validation of ETC miptrees. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=46386816a77c6e5751a0685776c0a6320f46f8fe;p=mesa.git i965: Fix validation of ETC miptrees. When comparing to the teximage's format, we have to look at the format-the-mt-was-created-for not the format-actually-stored-in-the-mt. Improves glbenchmark 2.1 offscreen test performance 159% +/- 17% (n=3). Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=54582 Reviewed-by: Ian Romanick Reviewed-by: Jordan Justen --- diff --git a/src/mesa/drivers/dri/intel/intel_mipmap_tree.c b/src/mesa/drivers/dri/intel/intel_mipmap_tree.c index 609682769f2..901d0ea2910 100644 --- a/src/mesa/drivers/dri/intel/intel_mipmap_tree.c +++ b/src/mesa/drivers/dri/intel/intel_mipmap_tree.c @@ -604,12 +604,14 @@ intel_miptree_match_image(struct intel_mipmap_tree *mt, if (target_to_target(image->TexObject->Target) != mt->target) return false; - if (image->TexFormat != mt->format && - !(image->TexFormat == MESA_FORMAT_S8_Z24 && - mt->format == MESA_FORMAT_X8_Z24 && - mt->stencil_mt)) { + gl_format mt_format = mt->format; + if (mt->format == MESA_FORMAT_X8_Z24 && mt->stencil_mt) + mt_format = MESA_FORMAT_S8_Z24; + if (mt->etc_format != MESA_FORMAT_NONE) + mt_format = mt->etc_format; + + if (image->TexFormat != mt_format) return false; - } intel_miptree_get_dimensions_for_image(image, &width, &height, &depth);