From: Rob Clark Date: Thu, 28 Jun 2018 12:14:10 +0000 (-0400) Subject: freedreno: rework accumulated query result vfunc X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=37b724ff723e96ebd3397e9d3bc464428afc5f08;p=mesa.git freedreno: rework accumulated query result vfunc Take the query object, rather than the ctx. The ctx ptr isn't hugely useful but for back queries we will need the query object to properly get the results. Signed-off-by: Rob Clark --- diff --git a/src/gallium/drivers/freedreno/a5xx/fd5_query.c b/src/gallium/drivers/freedreno/a5xx/fd5_query.c index 87417f1f96e..946076235bb 100644 --- a/src/gallium/drivers/freedreno/a5xx/fd5_query.c +++ b/src/gallium/drivers/freedreno/a5xx/fd5_query.c @@ -111,7 +111,7 @@ occlusion_pause(struct fd_acc_query *aq, struct fd_batch *batch) } static void -occlusion_counter_result(struct fd_context *ctx, void *buf, +occlusion_counter_result(struct fd_acc_query *aq, void *buf, union pipe_query_result *result) { struct fd5_query_sample *sp = buf; @@ -119,7 +119,7 @@ occlusion_counter_result(struct fd_context *ctx, void *buf, } static void -occlusion_predicate_result(struct fd_context *ctx, void *buf, +occlusion_predicate_result(struct fd_acc_query *aq, void *buf, union pipe_query_result *result) { struct fd5_query_sample *sp = buf; @@ -196,7 +196,7 @@ timestamp_pause(struct fd_acc_query *aq, struct fd_batch *batch) } static uint64_t -ticks_to_ns(struct fd_context *ctx, uint32_t ts) +ticks_to_ns(uint32_t ts) { /* This is based on the 19.2MHz always-on rbbm timer. * @@ -206,19 +206,19 @@ ticks_to_ns(struct fd_context *ctx, uint32_t ts) } static void -time_elapsed_accumulate_result(struct fd_context *ctx, void *buf, +time_elapsed_accumulate_result(struct fd_acc_query *aq, void *buf, union pipe_query_result *result) { struct fd5_query_sample *sp = buf; - result->u64 = ticks_to_ns(ctx, sp->result); + result->u64 = ticks_to_ns(sp->result); } static void -timestamp_accumulate_result(struct fd_context *ctx, void *buf, +timestamp_accumulate_result(struct fd_acc_query *aq, void *buf, union pipe_query_result *result) { struct fd5_query_sample *sp = buf; - result->u64 = ticks_to_ns(ctx, sp->result); + result->u64 = ticks_to_ns(sp->result); } static const struct fd_acc_sample_provider time_elapsed = { diff --git a/src/gallium/drivers/freedreno/freedreno_query_acc.c b/src/gallium/drivers/freedreno/freedreno_query_acc.c index 2cb1a4ddbfa..a8e28026a84 100644 --- a/src/gallium/drivers/freedreno/freedreno_query_acc.c +++ b/src/gallium/drivers/freedreno/freedreno_query_acc.c @@ -157,7 +157,7 @@ fd_acc_get_query_result(struct fd_context *ctx, struct fd_query *q, fd_bo_cpu_prep(rsc->bo, ctx->pipe, DRM_FREEDRENO_PREP_READ); void *ptr = fd_bo_map(rsc->bo); - p->result(ctx, ptr, result); + p->result(aq, ptr, result); fd_bo_cpu_fini(rsc->bo); return true; diff --git a/src/gallium/drivers/freedreno/freedreno_query_acc.h b/src/gallium/drivers/freedreno/freedreno_query_acc.h index f8dfabc5e8e..8c4415fe736 100644 --- a/src/gallium/drivers/freedreno/freedreno_query_acc.h +++ b/src/gallium/drivers/freedreno/freedreno_query_acc.h @@ -67,7 +67,7 @@ struct fd_acc_sample_provider { void (*resume)(struct fd_acc_query *aq, struct fd_batch *batch); void (*pause)(struct fd_acc_query *aq, struct fd_batch *batch); - void (*result)(struct fd_context *ctx, void *buf, + void (*result)(struct fd_acc_query *aq, void *buf, union pipe_query_result *result); };