Зависимость subpass говорит о том, что переход от initialLayout
к первому макету происходит между srcStageMask
и dstStageMask
соответствующих областей синхронизации.
Ожидание семафора с pWaitDstStageMask
говорит, что семафор будет следует ожидать не позднее стадии (и по природе блока ожидания семафора любое последующее выполнение, пока не закончится ожидание.
Вы не можете пропустить семафор, потому что vkAcquireNextImageKHR
не является операцией очереди и семафором (или забор) - единственный способ узнать, что движку представления больше не нужно изображение.
И вы не можете пропустить зависимость подпроцесса, потому что пропуск ее эквивалентен предоставлению srcStageMask = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT
. Это означает переход макета ( который может иметь права на запись) может быть выполнен в любой момент. И если ваш pWaitDstStageMask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT
, это означает, что механизм представления все еще читает изображение, в то время как ваша работа уже пытается изменить макет изображения.
Вы можете использовать pWaitDstStageMask = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT
(соответственно VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT
) без барьера \ зависимости. Но это означает "подождите" Во-первых, семафор, который затем блокирует все. Включая части, которые даже не нуждаются в образе подкачки (например, обработка вершин). Это может быть неоптимальным на некоторых платформах, и нет причин делать это.
Я должен добавить, что команды синхронизации на самом деле не go через стадии конвейера. Они только определяют зависимость между своими областями синхронизации. То, что происходит между ожиданием семафора и зависимостью Subpass, представляет собой цепочку зависимостей выполнения . Семафор определяет зависимость между PE и этапом COLOR
. Зависимость Subpass определяет зависимость между этапом COLOR
и переходом макета. Выбранные таким образом этапы do образуют цепочку зависимостей выполнения между этими двумя примитивами syn c. И такая цепь образует переходное свойство; то есть он действует как одна особая зависимость между PE и переходом макета.