aboutsummaryrefslogtreecommitdiff
path: root/src/venus/vkr_query_pool.c
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2022-05-10 07:23:44 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2022-05-10 07:23:44 +0000
commit2502a13f8088ee7911418b679ba2593940c39a4d (patch)
tree053d3acaad91c69e7ad71b460a591612de7d19c3 /src/venus/vkr_query_pool.c
parent727d6974198536eba5c2790a44ff461bd4c4561b (diff)
parent95be3cd08d582499c402ff79db4d4093b1b8c780 (diff)
downloadvirglrenderer-2502a13f8088ee7911418b679ba2593940c39a4d.tar.gz
Change-Id: Id7b0aff5248476e4b8ded2a670730d7107f445d9
Diffstat (limited to 'src/venus/vkr_query_pool.c')
-rw-r--r--src/venus/vkr_query_pool.c53
1 files changed, 53 insertions, 0 deletions
diff --git a/src/venus/vkr_query_pool.c b/src/venus/vkr_query_pool.c
new file mode 100644
index 00000000..ed16d17c
--- /dev/null
+++ b/src/venus/vkr_query_pool.c
@@ -0,0 +1,53 @@
+/*
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: MIT
+ */
+
+#include "vkr_query_pool.h"
+
+#include "vkr_query_pool_gen.h"
+
+static void
+vkr_dispatch_vkCreateQueryPool(struct vn_dispatch_context *dispatch,
+ struct vn_command_vkCreateQueryPool *args)
+{
+ vkr_query_pool_create_and_add(dispatch->data, args);
+}
+
+static void
+vkr_dispatch_vkDestroyQueryPool(struct vn_dispatch_context *dispatch,
+ struct vn_command_vkDestroyQueryPool *args)
+{
+ vkr_query_pool_destroy_and_remove(dispatch->data, args);
+}
+
+static void
+vkr_dispatch_vkGetQueryPoolResults(UNUSED struct vn_dispatch_context *dispatch,
+ struct vn_command_vkGetQueryPoolResults *args)
+{
+ vn_replace_vkGetQueryPoolResults_args_handle(args);
+ args->ret = vkGetQueryPoolResults(args->device, args->queryPool, args->firstQuery,
+ args->queryCount, args->dataSize, args->pData,
+ args->stride, args->flags);
+}
+
+static void
+vkr_dispatch_vkResetQueryPool(UNUSED struct vn_dispatch_context *dispatch,
+ struct vn_command_vkResetQueryPool *args)
+{
+ struct vkr_device *dev = vkr_device_from_handle(args->device);
+
+ vn_replace_vkResetQueryPool_args_handle(args);
+ dev->ResetQueryPool(args->device, args->queryPool, args->firstQuery, args->queryCount);
+}
+
+void
+vkr_context_init_query_pool_dispatch(struct vkr_context *ctx)
+{
+ struct vn_dispatch_context *dispatch = &ctx->dispatch;
+
+ dispatch->dispatch_vkCreateQueryPool = vkr_dispatch_vkCreateQueryPool;
+ dispatch->dispatch_vkDestroyQueryPool = vkr_dispatch_vkDestroyQueryPool;
+ dispatch->dispatch_vkGetQueryPoolResults = vkr_dispatch_vkGetQueryPoolResults;
+ dispatch->dispatch_vkResetQueryPool = vkr_dispatch_vkResetQueryPool;
+}