xref: /aosp_15_r20/external/virglrenderer/src/venus/vkr_query_pool.c (revision bbecb9d118dfdb95f99bd754f8fa9be01f189df3)
1*bbecb9d1SAndroid Build Coastguard Worker /*
2*bbecb9d1SAndroid Build Coastguard Worker  * Copyright 2020 Google LLC
3*bbecb9d1SAndroid Build Coastguard Worker  * SPDX-License-Identifier: MIT
4*bbecb9d1SAndroid Build Coastguard Worker  */
5*bbecb9d1SAndroid Build Coastguard Worker 
6*bbecb9d1SAndroid Build Coastguard Worker #include "vkr_query_pool.h"
7*bbecb9d1SAndroid Build Coastguard Worker 
8*bbecb9d1SAndroid Build Coastguard Worker #include "vkr_query_pool_gen.h"
9*bbecb9d1SAndroid Build Coastguard Worker 
10*bbecb9d1SAndroid Build Coastguard Worker static void
vkr_dispatch_vkCreateQueryPool(struct vn_dispatch_context * dispatch,struct vn_command_vkCreateQueryPool * args)11*bbecb9d1SAndroid Build Coastguard Worker vkr_dispatch_vkCreateQueryPool(struct vn_dispatch_context *dispatch,
12*bbecb9d1SAndroid Build Coastguard Worker                                struct vn_command_vkCreateQueryPool *args)
13*bbecb9d1SAndroid Build Coastguard Worker {
14*bbecb9d1SAndroid Build Coastguard Worker    vkr_query_pool_create_and_add(dispatch->data, args);
15*bbecb9d1SAndroid Build Coastguard Worker }
16*bbecb9d1SAndroid Build Coastguard Worker 
17*bbecb9d1SAndroid Build Coastguard Worker static void
vkr_dispatch_vkDestroyQueryPool(struct vn_dispatch_context * dispatch,struct vn_command_vkDestroyQueryPool * args)18*bbecb9d1SAndroid Build Coastguard Worker vkr_dispatch_vkDestroyQueryPool(struct vn_dispatch_context *dispatch,
19*bbecb9d1SAndroid Build Coastguard Worker                                 struct vn_command_vkDestroyQueryPool *args)
20*bbecb9d1SAndroid Build Coastguard Worker {
21*bbecb9d1SAndroid Build Coastguard Worker    vkr_query_pool_destroy_and_remove(dispatch->data, args);
22*bbecb9d1SAndroid Build Coastguard Worker }
23*bbecb9d1SAndroid Build Coastguard Worker 
24*bbecb9d1SAndroid Build Coastguard Worker static void
vkr_dispatch_vkGetQueryPoolResults(UNUSED struct vn_dispatch_context * dispatch,struct vn_command_vkGetQueryPoolResults * args)25*bbecb9d1SAndroid Build Coastguard Worker vkr_dispatch_vkGetQueryPoolResults(UNUSED struct vn_dispatch_context *dispatch,
26*bbecb9d1SAndroid Build Coastguard Worker                                    struct vn_command_vkGetQueryPoolResults *args)
27*bbecb9d1SAndroid Build Coastguard Worker {
28*bbecb9d1SAndroid Build Coastguard Worker    struct vkr_device *dev = vkr_device_from_handle(args->device);
29*bbecb9d1SAndroid Build Coastguard Worker    struct vn_device_proc_table *vk = &dev->proc_table;
30*bbecb9d1SAndroid Build Coastguard Worker 
31*bbecb9d1SAndroid Build Coastguard Worker    vn_replace_vkGetQueryPoolResults_args_handle(args);
32*bbecb9d1SAndroid Build Coastguard Worker    args->ret = vk->GetQueryPoolResults(args->device, args->queryPool, args->firstQuery,
33*bbecb9d1SAndroid Build Coastguard Worker                                        args->queryCount, args->dataSize, args->pData,
34*bbecb9d1SAndroid Build Coastguard Worker                                        args->stride, args->flags);
35*bbecb9d1SAndroid Build Coastguard Worker }
36*bbecb9d1SAndroid Build Coastguard Worker 
37*bbecb9d1SAndroid Build Coastguard Worker static void
vkr_dispatch_vkResetQueryPool(UNUSED struct vn_dispatch_context * dispatch,struct vn_command_vkResetQueryPool * args)38*bbecb9d1SAndroid Build Coastguard Worker vkr_dispatch_vkResetQueryPool(UNUSED struct vn_dispatch_context *dispatch,
39*bbecb9d1SAndroid Build Coastguard Worker                               struct vn_command_vkResetQueryPool *args)
40*bbecb9d1SAndroid Build Coastguard Worker {
41*bbecb9d1SAndroid Build Coastguard Worker    struct vkr_device *dev = vkr_device_from_handle(args->device);
42*bbecb9d1SAndroid Build Coastguard Worker    struct vn_device_proc_table *vk = &dev->proc_table;
43*bbecb9d1SAndroid Build Coastguard Worker 
44*bbecb9d1SAndroid Build Coastguard Worker    vn_replace_vkResetQueryPool_args_handle(args);
45*bbecb9d1SAndroid Build Coastguard Worker    vk->ResetQueryPool(args->device, args->queryPool, args->firstQuery, args->queryCount);
46*bbecb9d1SAndroid Build Coastguard Worker }
47*bbecb9d1SAndroid Build Coastguard Worker 
48*bbecb9d1SAndroid Build Coastguard Worker void
vkr_context_init_query_pool_dispatch(struct vkr_context * ctx)49*bbecb9d1SAndroid Build Coastguard Worker vkr_context_init_query_pool_dispatch(struct vkr_context *ctx)
50*bbecb9d1SAndroid Build Coastguard Worker {
51*bbecb9d1SAndroid Build Coastguard Worker    struct vn_dispatch_context *dispatch = &ctx->dispatch;
52*bbecb9d1SAndroid Build Coastguard Worker 
53*bbecb9d1SAndroid Build Coastguard Worker    dispatch->dispatch_vkCreateQueryPool = vkr_dispatch_vkCreateQueryPool;
54*bbecb9d1SAndroid Build Coastguard Worker    dispatch->dispatch_vkDestroyQueryPool = vkr_dispatch_vkDestroyQueryPool;
55*bbecb9d1SAndroid Build Coastguard Worker    dispatch->dispatch_vkGetQueryPoolResults = vkr_dispatch_vkGetQueryPoolResults;
56*bbecb9d1SAndroid Build Coastguard Worker    dispatch->dispatch_vkResetQueryPool = vkr_dispatch_vkResetQueryPool;
57*bbecb9d1SAndroid Build Coastguard Worker }
58