gallium/radeon: formalize that create_batch_query doesn't need pipe_context

Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
This commit is contained in:
Marek Olšák
2017-03-01 19:24:42 +01:00
parent be6173e7d6
commit 4b064d16e5
3 changed files with 12 additions and 13 deletions

View File

@@ -99,7 +99,7 @@ struct r600_query_pc {
struct r600_pc_group *groups; struct r600_pc_group *groups;
}; };
static void r600_pc_query_destroy(struct r600_common_context *ctx, static void r600_pc_query_destroy(struct r600_common_screen *rscreen,
struct r600_query *rquery) struct r600_query *rquery)
{ {
struct r600_query_pc *query = (struct r600_query_pc *)rquery; struct r600_query_pc *query = (struct r600_query_pc *)rquery;
@@ -112,7 +112,7 @@ static void r600_pc_query_destroy(struct r600_common_context *ctx,
FREE(query->counters); FREE(query->counters);
r600_query_hw_destroy(ctx, rquery); r600_query_hw_destroy(rscreen, rquery);
} }
static bool r600_pc_query_prepare_buffer(struct r600_common_screen *screen, static bool r600_pc_query_prepare_buffer(struct r600_common_screen *screen,
@@ -301,8 +301,8 @@ struct pipe_query *r600_create_batch_query(struct pipe_context *ctx,
unsigned num_queries, unsigned num_queries,
unsigned *query_types) unsigned *query_types)
{ {
struct r600_common_context *rctx = (struct r600_common_context *)ctx; struct r600_common_screen *screen =
struct r600_common_screen *screen = rctx->screen; (struct r600_common_screen *)ctx->screen;
struct r600_perfcounters *pc = screen->perfcounters; struct r600_perfcounters *pc = screen->perfcounters;
struct r600_perfcounter_block *block; struct r600_perfcounter_block *block;
struct r600_pc_group *group; struct r600_pc_group *group;
@@ -365,7 +365,7 @@ struct pipe_query *r600_create_batch_query(struct pipe_context *ctx,
unsigned instances = 1; unsigned instances = 1;
if ((block->flags & R600_PC_BLOCK_SE) && group->se < 0) if ((block->flags & R600_PC_BLOCK_SE) && group->se < 0)
instances = rctx->screen->info.max_se; instances = screen->info.max_se;
if (group->instance < 0) if (group->instance < 0)
instances *= block->num_instances; instances *= block->num_instances;
@@ -423,7 +423,7 @@ struct pipe_query *r600_create_batch_query(struct pipe_context *ctx,
return (struct pipe_query *)query; return (struct pipe_query *)query;
error: error:
r600_pc_query_destroy(rctx, &query->b.b); r600_pc_query_destroy(screen, &query->b.b);
return NULL; return NULL;
} }

View File

@@ -51,13 +51,12 @@ struct r600_query_sw {
struct pipe_fence_handle *fence; struct pipe_fence_handle *fence;
}; };
static void r600_query_sw_destroy(struct r600_common_context *rctx, static void r600_query_sw_destroy(struct r600_common_screen *rscreen,
struct r600_query *rquery) struct r600_query *rquery)
{ {
struct pipe_screen *screen = rctx->b.screen;
struct r600_query_sw *query = (struct r600_query_sw *)rquery; struct r600_query_sw *query = (struct r600_query_sw *)rquery;
screen->fence_reference(screen, &query->fence, NULL); rscreen->b.fence_reference(&rscreen->b, &query->fence, NULL);
FREE(query); FREE(query);
} }
@@ -414,7 +413,7 @@ static struct pipe_query *r600_query_sw_create(unsigned query_type)
return (struct pipe_query *)query; return (struct pipe_query *)query;
} }
void r600_query_hw_destroy(struct r600_common_context *rctx, void r600_query_hw_destroy(struct r600_common_screen *rscreen,
struct r600_query *rquery) struct r600_query *rquery)
{ {
struct r600_query_hw *query = (struct r600_query_hw *)rquery; struct r600_query_hw *query = (struct r600_query_hw *)rquery;
@@ -876,7 +875,7 @@ static void r600_destroy_query(struct pipe_context *ctx, struct pipe_query *quer
struct r600_common_context *rctx = (struct r600_common_context *)ctx; struct r600_common_context *rctx = (struct r600_common_context *)ctx;
struct r600_query *rquery = (struct r600_query *)query; struct r600_query *rquery = (struct r600_query *)query;
rquery->ops->destroy(rctx, rquery); rquery->ops->destroy(rctx->screen, rquery);
} }
static boolean r600_begin_query(struct pipe_context *ctx, static boolean r600_begin_query(struct pipe_context *ctx,

View File

@@ -113,7 +113,7 @@ enum {
}; };
struct r600_query_ops { struct r600_query_ops {
void (*destroy)(struct r600_common_context *, struct r600_query *); void (*destroy)(struct r600_common_screen *, struct r600_query *);
bool (*begin)(struct r600_common_context *, struct r600_query *); bool (*begin)(struct r600_common_context *, struct r600_query *);
bool (*end)(struct r600_common_context *, struct r600_query *); bool (*end)(struct r600_common_context *, struct r600_query *);
bool (*get_result)(struct r600_common_context *, bool (*get_result)(struct r600_common_context *,
@@ -189,7 +189,7 @@ struct r600_query_hw {
bool r600_query_hw_init(struct r600_common_screen *rscreen, bool r600_query_hw_init(struct r600_common_screen *rscreen,
struct r600_query_hw *query); struct r600_query_hw *query);
void r600_query_hw_destroy(struct r600_common_context *rctx, void r600_query_hw_destroy(struct r600_common_screen *rscreen,
struct r600_query *rquery); struct r600_query *rquery);
bool r600_query_hw_begin(struct r600_common_context *rctx, bool r600_query_hw_begin(struct r600_common_context *rctx,
struct r600_query *rquery); struct r600_query *rquery);