blob: eb77fe4d723a21616c476931842ad0faaf374b6d [file] [log] [blame] [edit]
/*
* 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)
{
struct vkr_device *dev = vkr_device_from_handle(args->device);
struct vn_device_proc_table *vk = &dev->proc_table;
vn_replace_vkGetQueryPoolResults_args_handle(args);
args->ret = vk->GetQueryPoolResults(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);
struct vn_device_proc_table *vk = &dev->proc_table;
vn_replace_vkResetQueryPool_args_handle(args);
vk->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;
}