[Mesa-dev] [PATCH 1/2] radeonsi: fix a hang with instancing in Unigine Heaven/Valley on Hawaii
Marek Olšák
maraeo at gmail.com
Wed Aug 6 06:32:58 PDT 2014
From: Marek Olšák <marek.olsak at amd.com>
This isn't documented anywhere, but it's the only thing that works
for this case.
---
src/gallium/drivers/radeonsi/si_state_draw.c | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/src/gallium/drivers/radeonsi/si_state_draw.c b/src/gallium/drivers/radeonsi/si_state_draw.c
index eb21ba1..4e808a3 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;
}
--
1.9.1
More information about the mesa-dev
mailing list