From 515269b3a73cd64ac9c017e8b3c698be9a5383f6 Mon Sep 17 00:00:00 2001 From: Marek Olšák Date: Wed, 6 Aug 2014 02:11:04 +0200 Subject: radeonsi: fix a hang with instancing in Unigine Heaven/Valley on Hawaii This isn't documented anywhere, but it's the only thing that works for this case. Cc: mesa-stable@lists.freedesktop.org Reviewed-by: Alex Deucher --- src/gallium/drivers/radeonsi/si_state_draw.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) (limited to 'src/gallium') diff --git a/src/gallium/drivers/radeonsi/si_state_draw.c b/src/gallium/drivers/radeonsi/si_state_draw.c index eb21ba1c906..4e808a3eedf 100644 --- a/src/gallium/drivers/radeonsi/si_state_draw.c +++ b/src/gallium/drivers/radeonsi/si_state_draw.c @@ -411,14 +411,11 @@ static bool si_update_draw_info_state(struct si_context *sctx, bool ia_switch_on_eop = wd_switch_on_eop; unsigned primgroup_size = 64; - /* Hawaii hangs if instancing is enabled and each instance - * is smaller than a prim group and WD_SWITCH_ON_EOP is 0. + /* Hawaii hangs if instancing is enabled and WD_SWITCH_ON_EOP is 0. * We don't know that for indirect drawing, so treat it as * always problematic. */ if (sctx->b.family == CHIP_HAWAII && - (info->indirect || - (info->instance_count > 1 && - u_prims_for_vertices(info->mode, info->count) < primgroup_size))) { + (info->indirect || info->instance_count > 1)) { wd_switch_on_eop = true; ia_switch_on_eop = true; } -- cgit v1.2.3