From: Topi Pohjolainen Date: Tue, 25 Apr 2017 06:56:33 +0000 (+0300) Subject: i965: Prepare image validation for isl based miptrees X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=143e3a679a99334bc1d2e18c1000422782c999ed;p=mesa.git i965: Prepare image validation for isl based miptrees Reviewed-by: Jason Ekstrand Signed-off-by: Topi Pohjolainen --- diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c index 0fdf7117af8..d589a591042 100644 --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c @@ -1090,6 +1090,21 @@ intel_miptree_match_image(struct intel_mipmap_tree *mt, if (mt->target == GL_TEXTURE_CUBE_MAP) depth = 6; + if (mt->surf.size > 0) { + if (level >= mt->surf.levels) + return false; + + const unsigned level_depth = + mt->surf.dim == ISL_SURF_DIM_3D ? + minify(mt->surf.logical_level0_px.depth, level) : + mt->surf.logical_level0_px.array_len; + + return width == minify(mt->surf.logical_level0_px.width, level) && + height == minify(mt->surf.logical_level0_px.height, level) && + depth == level_depth && + MAX2(image->NumSamples, 1) == mt->surf.samples; + } + int level_depth = mt->level[level].depth; if (mt->num_samples > 1) { switch (mt->msaa_layout) {