понедельник, 21 февраля 2022 г.

Как делается поддержка множества конфигураций железа

 В DX большинство фич привязаны к версии API, а лимиты заданы константами в хэдере. В редких случаях есть параметры специфичные для железа, которые нужно запрашивать, но и они достаточно стандартизированы. К томуже количество конфигураций железа с поддержкой DX12 не так уж велико.

В Metal было несколько подходов, сначала был feature set, а потом его заменили на GPU family с Common/iOS/Mac семействами. Common задает общие фичи для всех конфигураций железа. Часть параметров также требуется запрашивать в рантайме. Сейчас свежее железо типа M1 и A14 имеет почти идентичные характеристики, что сильно упрощает разработку.

В Vulkan огромное количество фич и разнообразные лимиты, даже есть сайт, где можно посмотреть все конфиги: gpuinfo, также добавили слой device_simulation_layer, который частично эмулирует другие девайсы и упрощает тестирование.

воскресенье, 20 февраля 2022 г.

Особенности рендер пассов

 Рендер пассы в Vulkan в основном нужны для оптимизации тайлового рендера в мобильных GPU (tile based deferred renderer), для этого в них используются сабпассы.

понедельник, 7 февраля 2022 г.

В чем проблема Vulkan on top of Metal

 MoltenVk и некоторые другие проекты предоставляют возможность использовать Vulkan API поверх Apple Metal API, но внутри они содержат много неэффективного кода.

суббота, 5 февраля 2022 г.

Volume render, часть 4. Облака

Эта часть планировалась к публикации больше года назад, но финальный проект так и не получился, а незавершенную историю публиковать не хотелось. В общем эта часть будет без продолжения, в будущем будет новая реализация в том числе под мобильные девайсы и возможно с технодемо и кодом.

Нужно было сделать объемные облака для симулятора, то есть будет возможность подлетать к ним вплотную, смотреть на них с земли и из космоса, что сильно усложняет задачу.