Pool for GPU queries.
More...
#include <QueryPoolVulkan.h>
|
|
| ezQueryPoolVulkan (ezGALDeviceVulkan *pDevice) |
| |
| void | Initialize (ezUInt32 uiValidBits) |
| | Initializes the pool.
|
| |
|
void | DeInitialize () |
| |
|
void | AfterBeginFrame (vk::CommandBuffer commandBuffer) |
| | Needs to be called every frame so the pool can figure out which queries have finished and reuse old data.
|
| |
|
void | EnsureFreeQueryPoolSize (vk::CommandBuffer commandBuffer) |
| | We have to call this before each begin rendering call as if we run out of queries inside a render pass, we can't recover given that resetQueryPool can only be called outside a render pass which is necessary to be called on every new pool.
|
| |
| ezGALTimestampHandle | InsertTimestamp (vk::CommandBuffer commandBuffer, vk::PipelineStageFlagBits pipelineStage=vk::PipelineStageFlagBits::eBottomOfPipe) |
| | Inserts a timestamp into the given command buffer.
|
| |
| ezEnum< ezGALAsyncResult > | GetTimestampResult (ezGALTimestampHandle hTimestamp, ezTime &out_result, bool bForce=false) |
| | Retrieves the timestamp value if it is available.
|
| |
|
ezGALPoolHandle | BeginOcclusionQuery (vk::CommandBuffer commandBuffer, ezEnum< ezGALQueryType > type) |
| |
|
void | EndOcclusionQuery (vk::CommandBuffer commandBuffer, ezGALPoolHandle hPool) |
| |
|
ezEnum< ezGALAsyncResult > | GetOcclusionQueryResult (ezGALPoolHandle hPool, ezUInt64 &out_uiQueryResult, bool bForce=false) |
| |
◆ GetTimestampResult()
Retrieves the timestamp value if it is available.
- Parameters
-
| hTimestamp | The target timestamp to resolve. |
| result | The time of the timestamp. If this is empty on success the timestamp has expired. |
| bForce | Wait for the timestamp to become available. |
- Returns
- Returns false if the result is not available yet.
◆ Initialize()
| void ezQueryPoolVulkan::Initialize |
( |
ezUInt32 |
uiValidBits | ) |
|
Initializes the pool.
- Parameters
-
| uiValidBits | The number of valid bits in the query result. Each queue has different query characteristics and a separate pool is needed for each queue. |
◆ InsertTimestamp()
| ezGALTimestampHandle ezQueryPoolVulkan::InsertTimestamp |
( |
vk::CommandBuffer |
commandBuffer, |
|
|
vk::PipelineStageFlagBits |
pipelineStage = vk::PipelineStageFlagBits::eBottomOfPipe |
|
) |
| |
Inserts a timestamp into the given command buffer.
- Parameters
-
| commandBuffer | Target command buffer to insert the timestamp into. |
| hTimestamp | Timestamp to insert. After insertion the only valid option is to call GetTimestampResult. |
| pipelineStage | The value of the timestamp will be the point in time in which all previously committed commands have finished this stage. |
The documentation for this class was generated from the following files:
- /home/runner/work/ezEngine/ezEngine/Code/Engine/RendererVulkan/Pools/QueryPoolVulkan.h
- /home/runner/work/ezEngine/ezEngine/Code/Engine/RendererVulkan/Pools/Implementation/QueryPoolVulkan.cpp