пятница, 4 марта 2016 г.

Vulkan API, Command Buffers

Признаться, начинал я переводить эту главу нехотя, во-првых - она очень большая :)
Во-вторых - на этом месте все туториалы делают большой прыжок и минуя эту главу начинают создавать поверхность рендеринга, фреймбуфер и прочее. Был и у меня такой соблазн, темболе что предыдущие главы были достаточно простыми. Однако я себя пересилил и думал правильно сделал. Тут как никогда подходит выражение - "чем дальше в лес тем больше дров", количество понятий, новых терминов, нюансов использования и связей с другими объектами здесь просто зашкаливает. Боюсь к этой статье придется возвращаться еще не раз, так как на этом этапе нужно начинать планировать всю архитектуру вашего приложения, причем в таких деталях, что аж мурашки по коже :) Без этого ваше приложение будет работать, но эффективность его будет на уровне вызовов glBegin/glEnd на фоне дисплейных списков. Вообщем скоро вы сами все поймете :)

среда, 2 марта 2016 г.

Vulkan API, Queues.

Queues. Queue Family Properties

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

воскресенье, 28 февраля 2016 г.

Vulkan API. Devices

Продолжаем знакомство с Вулканом, в предыдущих статьях мы рассмотрели такие сущности как инстанс, физическое устройство и семейство очередей, научились их пречислять и получать их свойства. Однако в Вулкане вся работа ведется не с физическими сущностями а с логическими, предоставляющими интерфейс к данным типам физических объектов. В этой статье мы разберем один из них - логическое устройство (Device).

суббота, 27 февраля 2016 г.

Vulkan API, Physical Device Queue Family

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

четверг, 25 февраля 2016 г.

Vulkan API, Physical Devices

Physical Devices


После того как Вулкан был проинициализирован, мы можем начать работу с основными основными объектами API - устройствами (devices) и очередями (queues). В этой статье представлена информация о физических устрйоствах и приведен небольшой пример инициализации Вулкана и перечисления некотрых свойств инстанса и устройства.

среда, 24 февраля 2016 г.

Vulkan API, Initialization

Продолжаю переводить спецификацию, перевод предыдущего раздела можно посмотреть здесь: http://vbomesh.blogspot.com/2016/02/vulkan-api-fundamentals.html
В этот раз перевод коснется раздела Инициализации Вулкана.

Vulkan API, Fundamentals

16 февраля произошло значимое событие, наконец-то была релизнута спецификация графического API Vulkan и были выпущены первые драйвера.
Более подробную информацию об этом можно найти на сайте Хроноса:
https://www.khronos.org/vulkan/
Там собраны ссылки на основные ресурсы по Вулкану - драйвера, доки, демки.

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

В связи с этим я решил попытаться разобраться с этим API, начав не с критики демок, а с фундаментальных понятий нового API, хорошо описанных в спецификации Вулкана:
https://www.khronos.org/registry/vulkan/specs/1.0/pdf/vkspec.pdf

Для себя я набросал черновик перевода одноименной главы спецификации, перевод некоторых участков, без знания контекста, пока затруднен, но возможно это окажется кому-то полезным. Любые комментарии и исправления категорически приветствуются.

И так, начнем, Vulkan, Fundamentals...