mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-03 05:00:09 +01:00
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 <christian.gmeiner@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/1530>
This commit is contained in:
parent
e5b0eed0f5
commit
e0bc251ef8
2 changed files with 10 additions and 6 deletions
|
|
@ -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 = {
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue