Пропуск рендера - это то, что вы получаете от vkCreateRenderPass
; то есть объект VkRenderPass
. Думайте об этом как об определении класса в вашем коде.
проход рендеринга экземпляр - это период в буфере команд, в течение которого активен определенный проход рендеринга. Для основных командных буферов это интервал между вызовами vkCmdBeginRenderPass
и vkCmdEndRenderPass
. Для вторичных буферов команд либо весь CB выполняется в пределах определенного прохода рендеринга (и одного подпроцесса этого прохода рендеринга), либо ни один из них не выполняется в проходе рендеринга. Но в любом случае вы можете использовать один и тот же объект VkRenderPass
для создания нескольких экземпляров прохода рендеринга.
Если вы хотите записать команды для прохода рендеринга из нескольких потоков, вы используете вторичные буферы команд. Действительно, разрешение этого является основной причиной, по которой вторичные буферы команд существуют вообще.
Итак, у вас есть куча потоков, создающих кучу вторичных командных буферов, каждый из которых наследует состояние прохода рендеринга от первичного CB. После построения вторичных CB, основной поток создает короткий основной буфер команд, который просто использует vkCmdExecuteCommands
для выполнения этих вторичных CB. А затем вы отправляете основной CB в очередь.