Mesa (master): ilo: fix PCB alloc asserts on Gen7.5 GT3

Chia-I Wu olv at kemper.freedesktop.org
Wed Feb 18 21:22:53 UTC 2015


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

Author: Chia-I Wu <olvaffe at gmail.com>
Date:   Wed Feb 18 13:26:29 2015 -0700

ilo: fix PCB alloc asserts on Gen7.5 GT3

GT3 has two slices and all limits are doubled.

---

 src/gallium/drivers/ilo/ilo_builder_3d_top.h |    6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/gallium/drivers/ilo/ilo_builder_3d_top.h b/src/gallium/drivers/ilo/ilo_builder_3d_top.h
index 30c787d..d359252 100644
--- a/src/gallium/drivers/ilo/ilo_builder_3d_top.h
+++ b/src/gallium/drivers/ilo/ilo_builder_3d_top.h
@@ -90,7 +90,9 @@ gen7_3dstate_push_constant_alloc(struct ilo_builder *builder,
                         GEN6_RENDER_SUBTYPE_3D |
                         subop;
    const uint8_t cmd_len = 2;
-   const int slice_count = (ilo_dev_gen(builder->dev) >= ILO_GEN(8)) ? 2 : 1;
+   const int slice_count = ((ilo_dev_gen(builder->dev) == ILO_GEN(7.5) &&
+                             builder->dev->gt == 3) ||
+                            ilo_dev_gen(builder->dev) >= ILO_GEN(8)) ? 2 : 1;
    uint32_t *dw;
    int end;
 
@@ -138,6 +140,8 @@ gen7_3dstate_push_constant_alloc(struct ilo_builder *builder,
       size = 15 * slice_count;
    }
 
+   assert(offset % slice_count == 0 && size % slice_count == 0);
+
    ilo_builder_batch_pointer(builder, cmd_len, &dw);
 
    dw[0] = cmd | (cmd_len - 2);




More information about the mesa-commit mailing list