From 792724a33745115fe06e079f88fafac74ed0b7f1 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Nicolai=20H=C3=A4hnle?= Date: Sat, 26 Aug 2017 01:11:14 +0200 Subject: [PATCH] radeonsi: remove SET_PREDICATION workaround on newer firmware MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit We need to keep the workaround for older firmware, though. Reviewed-by: Marek Olšák --- src/gallium/drivers/radeon/r600_query.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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 || -- 2.30.2