From: Nicolai Hähnle Date: Fri, 25 Aug 2017 23:11:14 +0000 (+0200) Subject: radeonsi: remove SET_PREDICATION workaround on newer firmware X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=792724a33745115fe06e079f88fafac74ed0b7f1;p=mesa.git radeonsi: remove SET_PREDICATION workaround on newer firmware We need to keep the workaround for older firmware, though. Reviewed-by: Marek Olšák --- diff --git a/src/gallium/drivers/radeon/r600_query.c b/src/gallium/drivers/radeon/r600_query.c index 03ff1018a71..76307ca0662 100644 --- a/src/gallium/drivers/radeon/r600_query.c +++ b/src/gallium/drivers/radeon/r600_query.c @@ -1803,11 +1803,13 @@ static void r600_render_condition(struct pipe_context *ctx, if (query) { bool needs_workaround = false; - /* There is a firmware regression in VI which causes successive + /* There was a firmware regression in VI which causes successive * SET_PREDICATION packets to give the wrong answer for * non-inverted stream overflow predication. */ - if (rctx->chip_class >= VI && !condition && + if (((rctx->chip_class == VI && rctx->screen->info.pfp_fw_feature < 49) || + (rctx->chip_class == GFX9 && rctx->screen->info.pfp_fw_feature < 38)) && + !condition && (rquery->b.type == PIPE_QUERY_SO_OVERFLOW_ANY_PREDICATE || (rquery->b.type == PIPE_QUERY_SO_OVERFLOW_PREDICATE && (rquery->buffer.previous ||