From bbac6a8b5330ac0f89a42d91a90ee9167b2dfaa0 Mon Sep 17 00:00:00 2001 From: Christian Gmeiner Date: Fri, 8 Aug 2025 11:50:13 +0200 Subject: [PATCH] etnaviv: Pass context to acc sample provider supports(..) function Extend the supports(..) function signature in acc sample providers to accept an etna_context parameter, enabling GPU feature validation during query type support checks. This change prepares the infrastructure for query providers to make context-aware decisions based on available GPU capabilities. Signed-off-by: Christian Gmeiner Part-of: --- src/gallium/drivers/etnaviv/etnaviv_query_acc.c | 2 +- src/gallium/drivers/etnaviv/etnaviv_query_acc.h | 2 +- src/gallium/drivers/etnaviv/etnaviv_query_acc_occlusion.c | 2 +- src/gallium/drivers/etnaviv/etnaviv_query_acc_perfmon.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/gallium/drivers/etnaviv/etnaviv_query_acc.c b/src/gallium/drivers/etnaviv/etnaviv_query_acc.c index 57b5a94aa9a..000d98bf5e4 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_query_acc.c +++ b/src/gallium/drivers/etnaviv/etnaviv_query_acc.c @@ -161,7 +161,7 @@ etna_acc_create_query(struct etna_context *ctx, unsigned query_type) for (unsigned i = 0; i < ARRAY_SIZE(acc_sample_provider); i++) { p = acc_sample_provider[i]; - if (p->supports(query_type)) + if (p->supports(ctx, query_type)) break; else p = NULL; diff --git a/src/gallium/drivers/etnaviv/etnaviv_query_acc.h b/src/gallium/drivers/etnaviv/etnaviv_query_acc.h index 11fe4ddfa44..bd6022da3a8 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_query_acc.h +++ b/src/gallium/drivers/etnaviv/etnaviv_query_acc.h @@ -34,7 +34,7 @@ struct etna_acc_query; struct etna_acc_sample_provider { - bool (*supports)(unsigned query_type); + bool (*supports)(struct etna_context *ctx, unsigned query_type); struct etna_acc_query * (*allocate)(struct etna_context *ctx, unsigned query_type); void (*resume)(struct etna_acc_query *aq, struct etna_context *ctx); diff --git a/src/gallium/drivers/etnaviv/etnaviv_query_acc_occlusion.c b/src/gallium/drivers/etnaviv/etnaviv_query_acc_occlusion.c index 90aa95bfe42..2d8ebba1972 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_query_acc_occlusion.c +++ b/src/gallium/drivers/etnaviv/etnaviv_query_acc_occlusion.c @@ -46,7 +46,7 @@ */ static bool -occlusion_supports(unsigned query_type) +occlusion_supports(UNUSED struct etna_context *ctx, unsigned query_type) { switch (query_type) { case PIPE_QUERY_OCCLUSION_COUNTER: diff --git a/src/gallium/drivers/etnaviv/etnaviv_query_acc_perfmon.c b/src/gallium/drivers/etnaviv/etnaviv_query_acc_perfmon.c index dd51737840c..9af69ee3c9c 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_query_acc_perfmon.c +++ b/src/gallium/drivers/etnaviv/etnaviv_query_acc_perfmon.c @@ -93,7 +93,7 @@ pm_query(struct etna_context *ctx, struct etna_acc_query *aq, unsigned flags) } static bool -perfmon_supports(unsigned query_type) +perfmon_supports(UNUSED struct etna_context *ctx, unsigned query_type) { return !!etna_pm_query_config(query_type); }