载入中...
搜索中...
未找到
VulkanSequence.cpp
浏览该文件的文档.
13bool VulkanSequence::ready() const { return vkg && static_cast<VkDevice>(vkg->getDevice().instance); }
182 if (std::find(seq->usedShaders.begin(), seq->usedShaders.end(), vs) == seq->usedShaders.end()) {
255 return retireSubmission(seq, result == vk::Result::eSuccess ? SequenceStatus::Complete : SequenceStatus::Failed);
261 const vk::Result result = seq->vkg->getDevice()->waitForFences(1, &seq->fence, VK_TRUE, UINT64_MAX);
262 return retireSubmission(seq, result == vk::Result::eSuccess ? SequenceStatus::Complete : SequenceStatus::Failed);
265SequenceStatus vulkanSequenceStatus(const VulkanSequence *seq) { return seq ? seq->status : SequenceStatus::Failed; }
Backend-agnostic compute program. Bind storage buffers then dispatch via Gpgpu::dispatch....
Definition ComputeShader.h:15
static constexpr uint32_t kPushConstantBytes
Definition ComputeShader.h:19
Backend-agnostic GPU buffer for compute (storage) or CPU staging transfers. Squirrel-owned; derived c...
Definition GpuBuffer.h:18
Vulkan 计算着色器(SPIR-V pipeline + descriptor 管理)。
Definition VulkanComputeShader.h:12
Vulkan 计算缓冲区实现(storage/vertex buffer + device memory)。
Definition VulkanGpuBuffer.h:11
void vulkanSequenceSubmit(VulkanSequence *seq)
Vulkan sequence submit.
Definition VulkanSequence.cpp:200
SequenceStatus
Observable lifecycle state of a reusable GPU command sequence.
Definition Sequence.h:14
@ Submitted
@ Complete
@ Recording
void vulkanSequenceBegin(VulkanSequence *seq)
Vulkan sequence begin.
Definition VulkanSequence.cpp:108
SequenceStatus vulkanSequenceWait(VulkanSequence *seq)
Vulkan sequence wait.
Definition VulkanSequence.cpp:258
void vulkanSequenceDestroy(VulkanSequence *seq)
Vulkan sequence destroy.
Definition VulkanSequence.cpp:102
SequenceStatus vulkanSequenceStatus(const VulkanSequence *seq)
Vulkan sequence status.
Definition VulkanSequence.cpp:265
void vulkanSequenceRecordDownload(VulkanSequence *seq, GpuBuffer *src, GpuBuffer *staging, uint64_t nbytes, uint64_t srcOffset)
Vulkan sequence record download.
Definition VulkanSequence.cpp:149
void vulkanSequenceRecordDispatch(VulkanSequence *seq, ComputeShader *shader, int groupsX, int groupsY, int groupsZ)
Vulkan sequence record dispatch.
Definition VulkanSequence.cpp:170
graphics::vulkan::Graphics * requireVulkanGraphics()
Resolve live Vulkan Graphics (throws if missing / not initialized).
Definition VulkanUtil.cpp:44
vk::CommandPool computeCommandPool(graphics::vulkan::Graphics *vkg)
Computes command pool.
Definition VulkanUtil.cpp:77
SequenceStatus vulkanSequencePoll(VulkanSequence *seq)
Vulkan sequence poll.
Definition VulkanSequence.cpp:250
void vulkanSequenceRecordUpload(VulkanSequence *seq, GpuBuffer *dst, const void *src, uint64_t nbytes, uint64_t dstOffset)
Vulkan sequence record upload.
Definition VulkanSequence.cpp:115
SequenceStatus vulkanSequenceSubmitAsync(VulkanSequence *seq)
Vulkan sequence submit async.
Definition VulkanSequence.cpp:206
std::vector< ComputeShader * > usedShaders
Definition VulkanSequence.h:48
vk::CommandBuffer submittedCommandBuffer
Definition VulkanSequence.h:45
std::vector< vkb::GenericBuffer > stagingPool
Definition VulkanSequence.h:38
vk::CommandBuffer commandBuffer
Definition VulkanSequence.h:44