#include <VulkanSequence.h>
Public 成员函数 | |
| bool | ready () const |
| void | ensureReady () |
| void | ensureCommandBuffer () |
| void | destroy () |
Public 属性 | |
| graphics::vulkan::Graphics * | vkg = nullptr |
| vk::Queue | queue {} |
| vk::CommandPool | pool {} |
| std::vector< vkb::GenericBuffer > | stagingPool |
| size_t | stagingUsed = 0 |
| vk::Fence | fence = nullptr |
| bool | fenceReady = false |
| vk::CommandBuffer | commandBuffer {} |
| bool | recording = false |
| std::vector< ComputeShader * > | usedShaders |
详细描述
Vulkan implementation of Sequence: one command buffer per begin()/submit() cycle (allocated from the compute/upload pool, matching executeImmediately), with a persistent pool of host-visible staging buffers for recordUpload(). submit() ends the command buffer, submits once with a fence and waits.
在文件 VulkanSequence.h 第 23 行定义.
成员函数说明
◆ destroy()
| void eve::gpgpu::VulkanSequence::destroy | ( | ) |
在文件 VulkanSequence.cpp 第 58 行定义.
引用了 commandBuffer, fence, fenceReady, eve::graphics::vulkan::Graphics::getDevice(), pool, queue, recording, stagingPool , 以及 vkg.
被这些函数引用 eve::gpgpu::vulkanSequenceDestroy().
◆ ensureCommandBuffer()
| void eve::gpgpu::VulkanSequence::ensureCommandBuffer | ( | ) |
在文件 VulkanSequence.cpp 第 42 行定义.
引用了 commandBuffer, device, ensureReady(), fence, fenceReady, eve::graphics::vulkan::Graphics::getDevice(), pool, recording, stagingUsed, usedShaders , 以及 vkg.
被这些函数引用 eve::gpgpu::vulkanSequenceBegin(), eve::gpgpu::vulkanSequenceRecordDispatch(), eve::gpgpu::vulkanSequenceRecordDownload() , 以及 eve::gpgpu::vulkanSequenceRecordUpload().
◆ ensureReady()
| void eve::gpgpu::VulkanSequence::ensureReady | ( | ) |
在文件 VulkanSequence.cpp 第 33 行定义.
引用了 eve::gpgpu::computeCommandPool(), eve::gpgpu::computeQueue(), pool, queue, ready(), eve::gpgpu::requireVulkanGraphics() , 以及 vkg.
被这些函数引用 ensureCommandBuffer(), eve::gpgpu::Sequence::isAvailable(), eve::gpgpu::vulkanSequenceBegin() , 以及 eve::gpgpu::vulkanSequenceSubmit().
◆ ready()
| bool eve::gpgpu::VulkanSequence::ready | ( | ) | const |
在文件 VulkanSequence.cpp 第 13 行定义.
引用了 eve::graphics::vulkan::Graphics::getDevice() , 以及 vkg.
被这些函数引用 ensureReady() , 以及 eve::gpgpu::Sequence::isAvailable().
类成员变量说明
◆ commandBuffer
| vk::CommandBuffer eve::gpgpu::VulkanSequence::commandBuffer {} |
◆ fence
| vk::Fence eve::gpgpu::VulkanSequence::fence = nullptr |
在文件 VulkanSequence.h 第 35 行定义.
被这些函数引用 destroy(), ensureCommandBuffer() , 以及 eve::gpgpu::vulkanSequenceSubmit().
◆ fenceReady
| bool eve::gpgpu::VulkanSequence::fenceReady = false |
在文件 VulkanSequence.h 第 36 行定义.
被这些函数引用 destroy() , 以及 ensureCommandBuffer().
◆ pool
| vk::CommandPool eve::gpgpu::VulkanSequence::pool {} |
在文件 VulkanSequence.h 第 26 行定义.
被这些函数引用 destroy(), ensureCommandBuffer(), ensureReady() , 以及 eve::gpgpu::vulkanSequenceSubmit().
◆ queue
| vk::Queue eve::gpgpu::VulkanSequence::queue {} |
在文件 VulkanSequence.h 第 25 行定义.
被这些函数引用 destroy(), ensureReady() , 以及 eve::gpgpu::vulkanSequenceSubmit().
◆ recording
| bool eve::gpgpu::VulkanSequence::recording = false |
在文件 VulkanSequence.h 第 39 行定义.
被这些函数引用 destroy(), ensureCommandBuffer() , 以及 eve::gpgpu::vulkanSequenceSubmit().
◆ stagingPool
| std::vector<vkb::GenericBuffer> eve::gpgpu::VulkanSequence::stagingPool |
在文件 VulkanSequence.h 第 32 行定义.
被这些函数引用 destroy() , 以及 eve::gpgpu::vulkanSequenceRecordUpload().
◆ stagingUsed
| size_t eve::gpgpu::VulkanSequence::stagingUsed = 0 |
在文件 VulkanSequence.h 第 33 行定义.
被这些函数引用 ensureCommandBuffer(), eve::gpgpu::vulkanSequenceBegin() , 以及 eve::gpgpu::vulkanSequenceRecordUpload().
◆ usedShaders
| std::vector<ComputeShader *> eve::gpgpu::VulkanSequence::usedShaders |
在文件 VulkanSequence.h 第 40 行定义.
被这些函数引用 ensureCommandBuffer(), eve::gpgpu::vulkanSequenceRecordDispatch() , 以及 eve::gpgpu::vulkanSequenceSubmit().
◆ vkg
| graphics::vulkan::Graphics* eve::gpgpu::VulkanSequence::vkg = nullptr |
该结构体的文档由以下文件生成:
- src/modules/gpgpu/vulkan/VulkanSequence.h
- src/modules/gpgpu/vulkan/VulkanSequence.cpp