| 832 | } |
| 833 | |
| 834 | void VKCommandBuffer::EndQuery(QueryHeap& queryHeap, std::uint32_t query) |
| 835 | { |
| 836 | auto& queryHeapVK = LLGL_CAST(VKQueryHeap&, queryHeap); |
| 837 | |
| 838 | query *= queryHeapVK.GetGroupSize(); |
| 839 | |
| 840 | if (queryHeapVK.GetType() == QueryType::TimeElapsed) |
| 841 | { |
| 842 | /* Record second timestamp */ |
| 843 | vkCmdWriteTimestamp(commandBuffer_, VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT, queryHeapVK.GetVkQueryPool(), query + 1); |
| 844 | } |
| 845 | else |
| 846 | { |
| 847 | /* End query section */ |
| 848 | vkCmdEndQuery(commandBuffer_, queryHeapVK.GetVkQueryPool(), query); |
| 849 | } |
| 850 | |
| 851 | #if 0//TEST |
| 852 | AppendQueryPoolInFlight(&queryHeapVK); |
| 853 | #endif |
| 854 | } |
| 855 | |
| 856 | void VKCommandBuffer::BeginRenderCondition(QueryHeap& queryHeap, std::uint32_t query, const RenderConditionMode mode) |
| 857 | { |