diff options
author | Nicolai Hähnle <[email protected]> | 2015-11-28 00:02:26 +0100 |
---|---|---|
committer | Nicolai Hähnle <[email protected]> | 2015-11-28 11:08:49 +0100 |
commit | 9e5e702cfb380af461062c96d974027da8d5f17a (patch) | |
tree | 0f986c0f7665238cc9d6c24daf1373ada2255465 /src/gallium/drivers/radeon/r600_pipe_common.h | |
parent | ea3f394e4a2bd8303d199acd0642f39784b7e27f (diff) |
radeon: only suspend queries on flush if they haven't been suspended yet
Non-timer queries are suspended during blits. When the blits end, the queries
are resumed, but this resume operation itself might run out of CS space and
trigger a flush. When this happens, we must prevent a duplicate suspend during
preflush suspend, and we must also prevent a duplicate resume when the CS flush
returns back to the original resume operation.
This fixes a regression that was introduced by:
commit 8a125afa6e88a3eeddba8c7fdc1a75c9b99d5489
Author: Nicolai Hähnle <[email protected]>
Date: Wed Nov 18 18:40:22 2015 +0100
radeon: ensure that timing/profiling queries are suspended on flush
The queries_suspended_for_flush flag is redundant because suspended queries
are not removed from their respective linked list.
Reviewed-by: Marek Olšák <[email protected]>
Reported-by: Axel Davy <[email protected]>
Cc: "11.1" <[email protected]>
Tested-by: Axel Davy <[email protected]>
Reviewed-by: Marek Olšák <[email protected]>
Diffstat (limited to 'src/gallium/drivers/radeon/r600_pipe_common.h')
-rw-r--r-- | src/gallium/drivers/radeon/r600_pipe_common.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/gallium/drivers/radeon/r600_pipe_common.h b/src/gallium/drivers/radeon/r600_pipe_common.h index 253d6577680..a4f3fcef7fd 100644 --- a/src/gallium/drivers/radeon/r600_pipe_common.h +++ b/src/gallium/drivers/radeon/r600_pipe_common.h @@ -396,6 +396,7 @@ struct r600_common_context { struct list_head active_nontimer_queries; struct list_head active_timer_queries; unsigned num_cs_dw_nontimer_queries_suspend; + bool nontimer_queries_suspended_by_flush; unsigned num_cs_dw_timer_queries_suspend; /* Additional hardware info. */ unsigned backend_mask; |