summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers
diff options
context:
space:
mode:
authorChia-I Wu <[email protected]>2015-02-18 13:26:29 -0700
committerChia-I Wu <[email protected]>2015-02-18 14:20:29 -0700
commitb0e26173b26b60bb3892de9e4b764f608e0e13c7 (patch)
tree023a7c8433e28f206e5c1a05f44f5ea14e9c6d54 /src/gallium/drivers
parent68573f57eeba1229a7963440428c3229c7ad7ff6 (diff)
ilo: fix PCB alloc asserts on Gen7.5 GT3
GT3 has two slices and all limits are doubled.
Diffstat (limited to 'src/gallium/drivers')
-rw-r--r--src/gallium/drivers/ilo/ilo_builder_3d_top.h6
1 files changed, 5 insertions, 1 deletions
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);