diff options
author | Nicolai Hähnle <[email protected]> | 2017-08-26 01:11:14 +0200 |
---|---|---|
committer | Nicolai Hähnle <[email protected]> | 2017-09-13 18:25:08 +0200 |
commit | 792724a33745115fe06e079f88fafac74ed0b7f1 (patch) | |
tree | 4e50dfab436b1668a51e91d9d327d1df93e6d4eb /src | |
parent | b8c6e8884886a8209cbda49b444eca0a9aa5f9bc (diff) |
radeonsi: remove SET_PREDICATION workaround on newer firmware
We need to keep the workaround for older firmware, though.
Reviewed-by: Marek Olšák <[email protected]>
Diffstat (limited to 'src')
-rw-r--r-- | src/gallium/drivers/radeon/r600_query.c | 6 |
1 files 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 || |