#include "freedreno_context.h"
#include "freedreno_draw.h"
+#include "freedreno_program.h"
#include "freedreno_resource.h"
#include "freedreno_texture.h"
#include "freedreno_state.h"
#include "freedreno_gmem.h"
#include "freedreno_query.h"
+#include "freedreno_query_hw.h"
#include "freedreno_util.h"
static struct fd_ringbuffer *next_rb(struct fd_context *ctx)
if (!ctx->needs_flush)
return;
- fd_gmem_render_tiles(pctx);
+ fd_gmem_render_tiles(ctx);
DBG("%p/%p/%p", ctx->ring->start, ctx->ring->cur, ctx->ring->end);
fd_context_next_rb(pctx);
ctx->needs_flush = false;
- ctx->cleared = ctx->restore = ctx->resolve = 0;
+ ctx->cleared = ctx->partial_cleared = ctx->restore = ctx->resolve = 0;
ctx->gmem_reason = 0;
ctx->num_draws = 0;
DBG("");
- util_slab_destroy(&ctx->transfer_pool);
+ fd_prog_fini(pctx);
+ fd_hw_query_fini(pctx);
util_dynarray_fini(&ctx->draw_patches);
if (ctx->primconvert)
util_primconvert_destroy(ctx->primconvert);
+ util_slab_destroy(&ctx->transfer_pool);
+
fd_ringmarker_del(ctx->draw_start);
fd_ringmarker_del(ctx->draw_end);
fd_ringmarker_del(ctx->binning_start);
pctx->flush = fd_context_flush;
for (i = 0; i < ARRAY_SIZE(ctx->rings); i++) {
- ctx->rings[i] = fd_ringbuffer_new(screen->pipe, 0x400000);
+ ctx->rings[i] = fd_ringbuffer_new(screen->pipe, 0x100000);
if (!ctx->rings[i])
goto fail;
}
fd_query_context_init(pctx);
fd_texture_init(pctx);
fd_state_init(pctx);
+ fd_hw_query_init(pctx);
ctx->blitter = util_blitter_create(pctx);
if (!ctx->blitter)