Есть ли у Vulkan аналог TransformFeedback?

Поддерживает ли Vulkan сохранение выходных данных вершин на этапе конвейера? Я искал и не могу найти примеры или ссылки, может быть, кто-то еще знает?


person Andrew Williamson    schedule 24.06.2016    source источник


Ответы (1)


Transform Feedback не вошла в первоначальный выпуск Vulkan, и прямого эквивалента ей нет.

Так что вам действительно нужно сделать это самостоятельно, например. запись в SSBO из геометрического шейдера с использованием PrimitiveID или использование вычислительных шейдеров.

Обратите внимание, что версия шейдера геометрии может работать не на всех устройствах, так как она требует поддержки vertexPipelineStoresAndAtomics. функцию.

Обновлять

Поддержка TransformFeedback стала доступна как расширение начиная с 1.1.88.

person Sascha Willems    schedule 24.06.2016
comment
Спасибо. Как вы думаете, он попадет в Vulkan 1.1 (или что-то еще)? - person Andrew Williamson; 24.06.2016
comment
Это может быть добавлено в какой-то момент, хотя я не знаю, будет ли это в следующем крупном выпуске Vulkan. Afaik TF не является очень востребованной функцией, и большинство вариантов использования можно воспроизвести с помощью вычислительных шейдеров и SSBO, которые являются обязательными в Vulkan. - person Sascha Willems; 24.06.2016
comment
Я думаю, что TF слишком высокоуровневый для Vulkan. Есть ли что-то в TF, что вы не можете сделать в Vulkan явно и даже в более общем плане? - person krOoze; 24.06.2016
comment
@krOoze: Я думаю, что TF слишком высокоуровневый для Vulkan. Я думал так же, но пересмотрел эту точку зрения. Главным образом из-за того, что vertexPipelineStoresAndAtomics не является обязательной функцией. Аппаратное обеспечение ES 3.1 явно способно к TF, но многие аппаратные средства ES 3.1 не могут работать с vertexPipelineStoresAndAtomics. Так что для этого есть законные основания. О, вы можете использовать вычислительный шейдер, но это так же неестественно, как использовать обратную связь для выполнения произвольных вычислений. Кроме того, вы не можете выполнять тесселяцию и использовать вычислительный шейдер. Вы также не можете оставить отзыв о том, что вы на самом деле визуализируете. - person Nicol Bolas; 24.06.2016
comment
@NicolBolas AFAIK, OGL ES 3.1 также имеет L / S и атомарность, так что ... они должны просто включить его в Vulkan? ; Ну, я бы спросил, какой ужасный взлом TF должен быть реализован на HW без какой-либо возможности записи. - person krOoze; 25.06.2016
comment
@krOoze: OGL ES 3.1 также имеет L/S и atomics Да, но, как и настольный OpenGL, ES не гарантирует, что вы можете использовать их на этапе обработки вершин. Минимальные требования к количеству связанных изображений на всех этапах обработки вершин равны 0, что позволяет реализациям не поддерживать загрузку/сохранение вершин. Ужасный взлом TF без загрузки/сохранения — это просто наличие специализированного оборудования для конкретного случая использования. Точно так же, как выборка текстур и тесселяция используют специализированное оборудование. Следует также отметить, что оборудование GL 3.x имело TF, но не имело общих возможностей загрузки/сохранения образов. - person Nicol Bolas; 25.06.2016