asahi: Move query functions to agx_query.c
authorAlyssa Rosenzweig <alyssa@rosenzweig.io>
Wed, 23 Nov 2022 18:15:43 +0000 (13:15 -0500)
committerAlyssa Rosenzweig <alyssa@rosenzweig.io>
Sun, 11 Dec 2022 02:51:05 +0000 (21:51 -0500)
New file. They're just stubs now but will get nontrivial in a moment.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20123>

src/gallium/drivers/asahi/agx_pipe.c
src/gallium/drivers/asahi/agx_query.c [new file with mode: 0644]
src/gallium/drivers/asahi/agx_state.h
src/gallium/drivers/asahi/meson.build

index 2143c9d..c98e08b 100644 (file)
@@ -95,50 +95,6 @@ uint64_t agx_best_modifiers[] = {
 
 void agx_init_state_functions(struct pipe_context *ctx);
 
-static struct pipe_query *
-agx_create_query(struct pipe_context *ctx, unsigned query_type, unsigned index)
-{
-   struct agx_query *query = CALLOC_STRUCT(agx_query);
-
-   return (struct pipe_query *)query;
-}
-
-static void
-agx_destroy_query(struct pipe_context *ctx, struct pipe_query *query)
-{
-   FREE(query);
-}
-
-static bool
-agx_begin_query(struct pipe_context *ctx, struct pipe_query *query)
-{
-   return true;
-}
-
-static bool
-agx_end_query(struct pipe_context *ctx, struct pipe_query *query)
-{
-   return true;
-}
-
-static bool
-agx_get_query_result(struct pipe_context *ctx,
-                     struct pipe_query *query,
-                     bool wait,
-                     union pipe_query_result *vresult)
-{
-   uint64_t *result = (uint64_t*)vresult;
-
-   *result = 0;
-   return true;
-}
-
-static void
-agx_set_active_query_state(struct pipe_context *pipe, bool enable)
-{
-}
-
-
 /*
  * resource
  */
@@ -1177,12 +1133,6 @@ agx_create_context(struct pipe_screen *screen,
    pctx->resource_copy_region = util_resource_copy_region;
    pctx->blit = agx_blit;
    pctx->flush_resource = agx_flush_resource;
-   pctx->create_query = agx_create_query;
-   pctx->destroy_query = agx_destroy_query;
-   pctx->begin_query = agx_begin_query;
-   pctx->end_query = agx_end_query;
-   pctx->get_query_result = agx_get_query_result;
-   pctx->set_active_query_state = agx_set_active_query_state;
 
    pctx->buffer_map = u_transfer_helper_transfer_map;
    pctx->buffer_unmap = u_transfer_helper_transfer_unmap;
@@ -1194,7 +1144,9 @@ agx_create_context(struct pipe_screen *screen,
    pctx->texture_subdata = u_default_texture_subdata;
    pctx->set_debug_callback = u_default_set_debug_callback;
    pctx->invalidate_resource = agx_invalidate_resource;
+
    agx_init_state_functions(pctx);
+   agx_init_query_functions(pctx);
 
    agx_meta_init(&ctx->meta, agx_device(screen), ctx);
 
diff --git a/src/gallium/drivers/asahi/agx_query.c b/src/gallium/drivers/asahi/agx_query.c
new file mode 100644 (file)
index 0000000..b913782
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * Copyright 2022 Alyssa Rosenzweig
+ * SPDX-License-Identifier: MIT
+ */
+
+#include "agx_state.h"
+
+static struct pipe_query *
+agx_create_query(struct pipe_context *ctx, unsigned query_type, unsigned index)
+{
+   struct agx_query *query = calloc(1, sizeof(struct agx_query));
+
+   return (struct pipe_query *)query;
+}
+
+static void
+agx_destroy_query(struct pipe_context *ctx, struct pipe_query *query)
+{
+   free(query);
+}
+
+static bool
+agx_begin_query(struct pipe_context *ctx, struct pipe_query *query)
+{
+   return true;
+}
+
+static bool
+agx_end_query(struct pipe_context *ctx, struct pipe_query *query)
+{
+   return true;
+}
+
+static bool
+agx_get_query_result(struct pipe_context *ctx,
+                     struct pipe_query *query,
+                     bool wait,
+                     union pipe_query_result *vresult)
+{
+   uint64_t *result = (uint64_t*)vresult;
+
+   *result = 0;
+   return true;
+}
+
+static void
+agx_set_active_query_state(struct pipe_context *pipe, bool enable)
+{
+}
+
+void
+agx_init_query_functions(struct pipe_context *pctx)
+{
+   pctx->create_query = agx_create_query;
+   pctx->destroy_query = agx_destroy_query;
+   pctx->begin_query = agx_begin_query;
+   pctx->end_query = agx_end_query;
+   pctx->get_query_result = agx_get_query_result;
+   pctx->set_active_query_state = agx_set_active_query_state;
+}
index 165ef68..3495f9c 100644 (file)
@@ -245,6 +245,8 @@ agx_context(struct pipe_context *pctx)
    return (struct agx_context *) pctx;
 }
 
+void agx_init_query_functions(struct pipe_context *ctx);
+
 static inline void
 agx_dirty_all(struct agx_context *ctx)
 {
index cd67db0..5ea2612 100644 (file)
@@ -22,6 +22,7 @@ files_asahi = files(
   'agx_batch.c',
   'agx_blit.c',
   'agx_pipe.c',
+  'agx_query.c',
   'agx_state.c',
   'agx_uniforms.c',
   'magic.c',