Всем привет! Вопрос по Vulkan API. Гайз, я запутался... помогите пожалуйста разъяснить

(желательно простым языком).

Я не могу понять как связать в плане сущностей четыре вещи: Framebuffer, Command(Buffer/Pool), Pipeline и Render Pass. Как и что в целом между собой взаимодействует и для чего.

И правильно ли я понимаю, что Pipeline обычно создаётся под конкретный Render Pass, для которого Pipeline регистрирует получившиеся проход рендера?

3 ответов

3 просмотра

RenderPass - описание того, какие рендертаргеты нужны для пасса Pipeline - код шейдеров и стейт (blendState, rasterizationState, depthStencilState), если создаешь GraphicsPipeline, то он создается под конкретный рендерпасс, так как нужно знать, какие будут аутпуты (в т.ч. для блендинга) Framebuffer - связка между RenderPass и ImageView, то есть связывает "что и как" мы рендерим и "куда" CommandBuffer - в директиксе он называется CommandList - считай std::vector, в который ты кладешь команды для рендера и исполняешь их (Submit) одним батчем

Stepan-Zorin Автор вопроса
Stepan Zorin
окей, наверное, понял, спасибо

Могу дополнить тем, что рендер пассы нужны чтобы описывать какие рендер таргеты нужны (форматы, базово) и что с ними делать в шейдере (очищать, загружать, ничего не делать) (теоретически, на практике на дестопе не особо), по этой причине пайплайны привязаны к рендер пассам - чтобы в шейдере знать какой формат и что с ним делать. Фреимбуфер это просто коткрентые имадж вью, удовлетворяющие требованиям рендер пасса

Похожие вопросы

Обсуждают сегодня

Так а кто может спарсить всех участников чата? Идишники
Magic
18
да пофиг на капчу зашел в чат и молчишь при этом ты нонейм? пошел вон
Magic
17
Как думаете, будут макбуки на WWDC?
Dmytro
6
Гайз, а как отправлять с вейпора пуши на андроид? ) Меня вот осенило )))
Serg
6
Привет, кто может сделать юзербота с апи? Задачи: - создавать группы - создавать каналы - задавать для созданных каналов аватарку или эмоджи, имя группы - добавлять в группы...
Lencore
13
Включил эту опцию. Осталось два варнинга из всех (все одинаковые - a term is constructed, but never used) lager:warning("~p is not a map (~s:~s:~s)", [Body, Class, Sub, Type]...
Δημήτηρ
3
Всем доброго вечера! Хочу поделиться своим злоключением с человеком, который, как оказалось сюда тоже скидывал свое резюме. Жаль, что я вашу группу не нашел раньше… человек ки...
Роман Ахмедзянов
4
у меня такой вопрос про память в x86 возник, может кто пояснить?.. у процессора есть (как минимум) 3 типа адресов (названия "п1", "п2", "п3" --- мои, чтобы проще было дальше)...
Toideng
10
Нужно магазин с тильды на опен кат перенести Есть кто умеет? В лс
Magic
6
Я хочу запустить свой проект в тг. Что-то между пирамидой и майнилкой. Еще подобного ничего не было. Уникальная идея. Нужен именно не бот, а приложение. С ввод, выводом тон...
Павел А.
6
Карта сайта