bool old_perfect_enable);
void (*save_qbo_state)(struct pipe_context *ctx, struct r600_qbo_state *st);
-
- /* This ensures there is enough space in the command stream. */
- void (*need_gfx_cs_space)(struct pipe_context *ctx, unsigned num_dw,
- bool include_draw_vbo);
};
/* r600_buffer_common.c */
r600_update_occlusion_query_state(ctx, query->b.type, 1);
si_update_prims_generated_query_state((void*)ctx, query->b.type, 1);
- ctx->need_gfx_cs_space(&ctx->b, query->num_cs_dw_begin + query->num_cs_dw_end,
- true);
+ si_need_cs_space((struct si_context*)ctx);
/* Get a new query buffer if needed. */
if (query->buffer.results_end + query->result_size > query->buffer.buf->b.b.width0) {
return; // previous buffer allocation failure
/* The queries which need begin already called this in begin_query. */
- if (query->flags & R600_QUERY_HW_FLAG_NO_START) {
- ctx->need_gfx_cs_space(&ctx->b, query->num_cs_dw_end, false);
- }
+ if (query->flags & R600_QUERY_HW_FLAG_NO_START)
+ si_need_cs_space((struct si_context*)ctx);
/* emit end query */
va = query->buffer.buf->gpu_address + query->buffer.results_end;
assert(ctx->num_cs_dw_queries_suspend == 0);
/* Check CS space here. Resuming must not be interrupted by flushes. */
- ctx->need_gfx_cs_space(&ctx->b, num_cs_dw, true);
+ si_need_cs_space((struct si_context*)ctx);
LIST_FOR_EACH_ENTRY(query, &ctx->active_queries, list) {
r600_query_hw_emit_start(ctx, query);
return si_create_blend_state_mode(&sctx->b.b, &blend, mode);
}
-static void si_need_gfx_cs_space(struct pipe_context *ctx, unsigned num_dw,
- bool include_draw_vbo)
-{
- si_need_cs_space((struct si_context*)ctx);
-}
-
static void si_init_config(struct si_context *sctx);
void si_init_state_functions(struct si_context *sctx)
sctx->b.b.set_active_query_state = si_set_active_query_state;
sctx->b.set_occlusion_query_state = si_set_occlusion_query_state;
sctx->b.save_qbo_state = si_save_qbo_state;
- sctx->b.need_gfx_cs_space = si_need_gfx_cs_space;
sctx->b.b.draw_vbo = si_draw_vbo;