summaryrefslogtreecommitdiffstats
path: root/tools/gfx/vulkan/vk-query.h
blob: 2ff20d5ab84a6c1ec9ed16d9de252df7e3d020ca (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
// vk-query.h
#pragma once

#include "vk-base.h"
#include "vk-device.h"

namespace gfx
{

using namespace Slang;

namespace vk
{

class QueryPoolImpl : public QueryPoolBase
{
public:
    Result init(const IQueryPool::Desc& desc, DeviceImpl* device);
    ~QueryPoolImpl();

public:
    virtual SLANG_NO_THROW Result SLANG_MCALL
    getResult(GfxIndex index, GfxCount count, uint64_t* data) override;

public:
    VkQueryPool m_pool;
    RefPtr<DeviceImpl> m_device;
};

void _writeTimestamp(
    VulkanApi* api,
    VkCommandBuffer vkCmdBuffer,
    IQueryPool* queryPool,
    SlangInt index);

} // namespace vk
} // namespace gfx