From 409add30b367df1ac3d2675a20324229be8e7832 Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Thu, 16 Jan 2014 02:10:45 +0800 Subject: [PATCH] ilo: fix a false assertion failure on GEN6 Layer offsetting is possible when it is level 0, layer 0. --- src/gallium/drivers/ilo/ilo_gpe_gen6.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/gallium/drivers/ilo/ilo_gpe_gen6.c b/src/gallium/drivers/ilo/ilo_gpe_gen6.c index c8ad38b..3ea8b8f 100644 --- a/src/gallium/drivers/ilo/ilo_gpe_gen6.c +++ b/src/gallium/drivers/ilo/ilo_gpe_gen6.c @@ -1115,10 +1115,18 @@ zs_init_info(const struct ilo_dev_info *dev, info->hiz.stride = tex->hiz.bo_stride; info->hiz.tiling = INTEL_TILING_Y; - assert(!offset_to_layer); - info->hiz.offset = 0; - x_offset[2] = 0; - y_offset[2] = 0; + /* + * Layer offsetting is used on GEN6 only. And on GEN6, HiZ is enabled + * only when the depth buffer is non-mipmapped and non-array, making + * layer offsetting no-op. + */ + if (offset_to_layer) { + assert(level == 0 && first_layer == 0 && num_layers == 1); + + info->hiz.offset = 0; + x_offset[2] = 0; + y_offset[2] = 0; + } } info->width = tex->base.width0; -- 2.7.4