summaryrefslogtreecommitdiffstats
path: root/src/gallium
diff options
context:
space:
mode:
authorChristian Gmeiner <[email protected]>2019-07-19 12:57:11 +0200
committerMarge Bot <[email protected]>2020-04-05 18:01:43 +0000
commite0bc251ef8918dd4fe89604941d8d5a0c482aae7 (patch)
treea2119ffa78be907184ef7eded1ad31d20bbf3bc1 /src/gallium
parente5b0eed0f57fefebcf6ac18b008fa362d6543da9 (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.c12
-rw-r--r--src/gallium/drivers/etnaviv/etnaviv_query_acc.h4
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 {