gpt4 book ai didi

vulkan - 是否允许在从同一池分配的多个线程上记录 CommandBuffers?

转载 作者:行者123 更新时间:2023-12-02 09:23:10 25 4
gpt4 key购买 nike

假设我们有一个 CommandPool,其中分配了两个 CommandBuffer(CommandBuffer1CommandBuffer2)。

CommandPool 存在于 Thread 0 上, CommandBuffer1CommandBuffer2也住在Thread 0 .

是否可以转让CommandBuffer1CommandBuffer1到不同的线程来记录命令?限制一个线程同时记录一个CommandBuffer?

规范说明

Command pools are application-synchronized, meaning that a command pool must not be used concurrently in multiple threads. That includes use via recording commands on any command buffers allocated from the pool, as well as operations that allocate, free, and reset command buffers or the pool itself.

我不太确定我是否会被允许记录 CommandBuffer1Thread 1CommandBuffer2Thread 2同时。

或者我是否必须将所有 CommandBuffer 记录在分配它们的同一个线程上?

最佳答案

第 2.5 章中有一个“隐式外部同步参数”列表。具有主要由以下内容组成的列表的线程行为:

  • The VkCommandPool that commandBuffer was allocated from, in vkCmd*

所以不可能在不同线程上从同一个池中记录 2 个命令缓冲区。

虽然很奇怪 vkBeginCommandBuffervkEndCommandBuffer 不在该列表中。

关于vulkan - 是否允许在从同一池分配的多个线程上记录 CommandBuffers?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40207136/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com