summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers
diff options
context:
space:
mode:
authorNicolai Hähnle <[email protected]>2017-08-26 01:11:14 +0200
committerNicolai Hähnle <[email protected]>2017-09-13 18:25:08 +0200
commit792724a33745115fe06e079f88fafac74ed0b7f1 (patch)
tree4e50dfab436b1668a51e91d9d327d1df93e6d4eb /src/gallium/drivers
parentb8c6e8884886a8209cbda49b444eca0a9aa5f9bc (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/gallium/drivers')
-rw-r--r--src/gallium/drivers/radeon/r600_query.c6
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 ||