From b0e26173b26b60bb3892de9e4b764f608e0e13c7 Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Wed, 18 Feb 2015 13:26:29 -0700 Subject: [PATCH] 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 30c787d7f3a..d359252aa8c 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); -- 2.30.2