Mesa (master): ilo: fix a false assertion failure on GEN6

Chia-I Wu olv at kemper.freedesktop.org
Sat Feb 22 14:48:33 UTC 2014


Module: Mesa
Branch: master
Commit: 409add30b367df1ac3d2675a20324229be8e7832
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=409add30b367df1ac3d2675a20324229be8e7832

Author: Chia-I Wu <olvaffe at gmail.com>
Date:   Thu Jan 16 02:10:45 2014 +0800

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;




More information about the mesa-commit mailing list