From 143e3a679a99334bc1d2e18c1000422782c999ed Mon Sep 17 00:00:00 2001 From: Topi Pohjolainen Date: Tue, 25 Apr 2017 09:56:33 +0300 Subject: [PATCH] i965: Prepare image validation for isl based miptrees Reviewed-by: Jason Ekstrand Signed-off-by: Topi Pohjolainen --- src/mesa/drivers/dri/i965/intel_mipmap_tree.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) 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) { -- 2.30.2