Вычислительный конвейер как родительский

При чтении документов для VkPipelineCreateFlagBits:

VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT указывает, что создаваемый конвейер может быть родительским для конвейера, который будет создан при последующем вызове vkCreateGraphicsPipelines.

Мне интересно, почему он явно указывает графические конвейеры. Почему то же самое не относится к vkCreateComputePipelines? Похоже, я могу ComputePipe -> GraphicsPipe, но не ComputePipe -> ComputePipe или GraphicsPipe -> ComputePipe!?


person abergmeier    schedule 12.07.2017    source источник


Ответы (2)


Похоже, это ошибка в документации. Вычислительные конвейеры также поддерживают производные, и вы можете передать базовый конвейер для получения производных через basePipelineHandle или basePipelineIndex из VkComputePipelineCreateInfo.

Я делал это в примере приложения, и он работал нормально. Никаких ошибок проверки и создание конвейера работало нормально.

person Sascha Willems    schedule 12.07.2017

Вероятно, это ошибка спецификации.
Вы можете унаследовать GraphicsPipe от GraphicsPipe.
И вы можете получить ComputePipe из ComputePipe.

(Если сомневаетесь, прочтите вместо этого инструкции Допустимое использование. Тем не менее, оба текста являются нормативными, так что будьте любезны и сообщайте о подобных вещах на Vulkan spec GitHub.)

person krOoze    schedule 12.07.2017
comment
Следует отметить, что для этого была зарегистрирована ошибка, и Хронос признал, что это проблема с документацией. Compute pipeliens предназначены для получения. - person Nicol Bolas; 19.07.2017