diff options
author | Christian Gmeiner <[email protected]> | 2019-07-19 12:57:11 +0200 |
---|---|---|
committer | Marge Bot <[email protected]> | 2020-04-05 18:01:43 +0000 |
commit | e0bc251ef8918dd4fe89604941d8d5a0c482aae7 (patch) | |
tree | a2119ffa78be907184ef7eded1ad31d20bbf3bc1 /src/gallium | |
parent | e5b0eed0f57fefebcf6ac18b008fa362d6543da9 (diff) |
etnaviv: extend result(..) to return if data is ready
For the upcoming conversion of perfmon queries to the acc query
framework we need a way to tell that the data is not ready.
Signed-off-by: Christian Gmeiner <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/1530>
Diffstat (limited to 'src/gallium')
-rw-r--r-- | src/gallium/drivers/etnaviv/etnaviv_query_acc.c | 12 | ||||
-rw-r--r-- | src/gallium/drivers/etnaviv/etnaviv_query_acc.h | 4 |
2 files changed, 10 insertions, 6 deletions
diff --git a/src/gallium/drivers/etnaviv/etnaviv_query_acc.c b/src/gallium/drivers/etnaviv/etnaviv_query_acc.c index f156363e951..094c7c84125 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_query_acc.c +++ b/src/gallium/drivers/etnaviv/etnaviv_query_acc.c @@ -85,7 +85,7 @@ occlusion_suspend(struct etna_acc_query *aq, struct etna_context *ctx) resource_written(ctx, aq->prsc); } -static void +static bool occlusion_result(struct etna_acc_query *aq, void *buf, union pipe_query_result *result) { @@ -99,6 +99,8 @@ occlusion_result(struct etna_acc_query *aq, void *buf, result->u64 = sum; else result->b = !!sum; + + return true; } static void @@ -214,12 +216,14 @@ etna_acc_get_query_result(struct etna_context *ctx, struct etna_query *q, return false; void *ptr = etna_bo_map(rsc->bo); - p->result(aq, ptr, result); - aq->samples = 0; + bool success = p->result(aq, ptr, result); + + if (success) + aq->samples = 0; etna_bo_cpu_fini(rsc->bo); - return true; + return success; } static const struct etna_query_funcs acc_query_funcs = { diff --git a/src/gallium/drivers/etnaviv/etnaviv_query_acc.h b/src/gallium/drivers/etnaviv/etnaviv_query_acc.h index b22b2214728..8dd4bae5b71 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_query_acc.h +++ b/src/gallium/drivers/etnaviv/etnaviv_query_acc.h @@ -39,8 +39,8 @@ struct etna_acc_sample_provider { void (*resume)(struct etna_acc_query *aq, struct etna_context *ctx); void (*suspend)(struct etna_acc_query *aq, struct etna_context *ctx); - void (*result)(struct etna_acc_query *aq, void *buf, - union pipe_query_result *result); + bool (*result)(struct etna_acc_query *aq, void *buf, + union pipe_query_result *result); }; struct etna_acc_query { |