void r600_preflush_suspend_features(struct r600_common_context *ctx) { /* Disable render condition. */ ctx->saved_render_cond = NULL; ctx->saved_render_cond_cond = FALSE; ctx->saved_render_cond_mode = 0; if (ctx->current_render_cond) { ctx->saved_render_cond = ctx->current_render_cond; ctx->saved_render_cond_cond = ctx->current_render_cond_cond; ctx->saved_render_cond_mode = ctx->current_render_cond_mode; ctx->b.render_condition(&ctx->b, NULL, FALSE, 0); } /* suspend queries */ ctx->queries_suspended_for_flush = false; if (ctx->num_cs_dw_nontimer_queries_suspend) { r600_suspend_nontimer_queries(ctx); r600_suspend_timer_queries(ctx); ctx->queries_suspended_for_flush = true; } ctx->streamout.suspended = false; if (ctx->streamout.begin_emitted) { r600_emit_streamout_end(ctx); ctx->streamout.suspended = true; } }
void r600_preflush_suspend_features(struct r600_common_context *ctx) { /* suspend queries */ ctx->queries_suspended_for_flush = false; if (ctx->num_cs_dw_nontimer_queries_suspend) { r600_suspend_nontimer_queries(ctx); r600_suspend_timer_queries(ctx); ctx->queries_suspended_for_flush = true; } ctx->streamout.suspended = false; if (ctx->streamout.begin_emitted) { r600_emit_streamout_end(ctx); ctx->streamout.suspended = true; } }
void r600_preflush_suspend_features(struct r600_common_context *ctx) { /* suspend queries */ if (ctx->num_cs_dw_nontimer_queries_suspend) { /* Since non-timer queries are suspended during blits, * we have to guard against double-suspends. */ r600_suspend_nontimer_queries(ctx); ctx->nontimer_queries_suspended_by_flush = true; } if (!LIST_IS_EMPTY(&ctx->active_timer_queries)) r600_suspend_timer_queries(ctx); ctx->streamout.suspended = false; if (ctx->streamout.begin_emitted) { r600_emit_streamout_end(ctx); ctx->streamout.suspended = true; } }