Because we disable render condition in r600_flush, but not in r600_context_flush.
struct r600_screen *screen;
struct radeon_winsys *ws;
struct radeon_winsys_cs *cs;
+ struct pipe_context *pipe;
+
+ void (*flush)(void *pipe, unsigned flags);
struct r600_range *range;
unsigned nblocks;
/* Flush if there's not enough space. */
if (num_dw > RADEON_MAX_CMDBUF_DWORDS) {
- r600_context_flush(ctx, RADEON_FLUSH_ASYNC);
+ ctx->flush(ctx->pipe, RADEON_FLUSH_ASYNC);
}
}
return NULL;
}
+ rctx->ctx.pipe = &rctx->context;
+ rctx->ctx.flush = r600_flush_from_winsys;
rctx->ws->cs_set_flush_callback(rctx->ctx.cs, r600_flush_from_winsys, rctx);
util_slab_create(&rctx->pool_transfers,