st/mesa: Only pause queries if there are any active queries to pause.
Previously, ReadPixels, PBO upload/download, and clears would call cso_save_state with CSO_PAUSE_QUERIES, causing cso_context to call pipe->set_active_query_state() twice for each operation. This can potentially cause driver work to enable/disable statistics counters. But often, there are no queries happening which need to be paused. By keeping a simple tally of active queries, we can skip this work. Reviewed-by: Tapani Pälli <tapani.palli@intel.com> Reviewed-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
@@ -267,7 +267,7 @@ clear_with_quad(struct gl_context *ctx, unsigned clear_buffers)
|
||||
CSO_BIT_STREAM_OUTPUTS |
|
||||
CSO_BIT_VERTEX_ELEMENTS |
|
||||
CSO_BIT_AUX_VERTEX_BUFFER_SLOT |
|
||||
CSO_BIT_PAUSE_QUERIES |
|
||||
(st->active_queries ? CSO_BIT_PAUSE_QUERIES : 0) |
|
||||
CSO_BITS_ALL_SHADERS));
|
||||
|
||||
/* blend state: RGBA masking */
|
||||
|
Reference in New Issue
Block a user