Деякий час тому Raspberry Pi Foundation разом з Igalia оголосили широкій публіці про свою спільну роботу над розробкою драйвера Vulkan для плат Raspberry Pi. Спочатку вони заявили, що він буде сумісний лише з найновішою платою «Raspberry Pi 4», і таким чином розпочали початковий етап розробки. Вони не назвали конкретної дати, коли драйвер буде готовий або коли він буде придатний для запуску реальних програм.
Єдине, що вони згадали, це те, що це може бути можливим у другій половині 2020 року. У специфікаціях контролера було зазначено, що він обмежений сумісністю з графічним прискорювачем VideoCore VI, який використовується з моделі Raspberry Pi 4, і що він не буде сумісний зі старими платами, а це означає, що моделі 3b+ і раніше були виключені.
Крім того, вони згадали, що порівняно з OpenGL використання Vulkan може покращити продуктивність графічних додатків та ігор.
Цією новиною багато шанувальників та власників Raspberry Pi, яка не була моделлю 4, були розчаровані, оскільки відчули, що їх відклали в сторону, і практично оголосили, що більше не варто працювати над продовженням підтримки будь-якої з цих плат.
Але тепер, в останніх новинах, здається, що ситуація змінилася, коли розробник прийшов, щоб довести протилежне.
Про RPi-VK-Driver 1.0
Мартін Томас, інженер NVIDIA, відповідав за розробку RPi-VK-Driver, драйвера з відкритим кодом, який, за словами його автора:
"Контролер був розроблений компанією, однак розробка велася як особистий проект, не пов'язаний з NVIDIA (контролер розроблявся останні два роки у вільний час)."
Ця перша версія драйвера RPi-VK-Driver 1.0 з відкритим кодом розповсюджується за ліцензією MIT та реалізує підтримку графічного API Vulkan для старіших плат Raspberry Pi, що містять графічний процесор Broadcom Videocore IV.
Контролер підходить для всіх моделей плат Raspberry Pi, випущених до Raspberry Pi 4.
Серед підтримуваних моделей у сховищі згадуються такі:
- нуль
- Нульовий ш
- 1 модель A
- 1 модель A +
- 1 модель B
- 1 модель B +
- 2 Модель B
- 3 Модель A +
- 3 Модель B
- 3 Модель B +
- Обчислювальний модуль1
- Обчислювальний модуль 3
- Обчислювальний модуль 3 lite
- Обчислювальний модуль 3+
- Обчислювальний модуль 3+ lite
Оскільки можливостей графічного процесора VideoCore IV, яким оснащені старі моделі Raspberry Pi, недостатньо для повноцінної реалізації Vulkan, драйвер реалізує лише підмножину Vulkan API , яка не охоплює весь стандарт, але намагається дотримуватися його настільки, наскільки дозволяє команда.
Однак, доступної функціональності достатньо для багатьох програм та ігор, а продуктивність значно випереджає драйвери OpenGL завдяки ефективнішому управлінню пам'яттю, багатопотоковій обробці команд GPU та безпосередньому керуванню операціями GPU.
Драйвер також підтримує такі функції, як MSAA (багаторезервне згладжування), низькорівневі шейдери та лічильники продуктивності . Одним з обмежень є відсутність підтримки шейдерів GLSL, які ще недоступні на цьому етапі розробки.
Що стосується автора, то можна підкреслити, що він також відповідав за публікацію порту гри Quake 3 для Raspberry Pi, що служить демонстрацією можливостей нового контролера.
Гра заснована на двигуні ioQuake3, до якого був доданий модульний рендеринг на базі Vulkan, спочатку розроблений проектом Quake III Arena Kenny Edition. Використовуючи новий контролер у грі, можна було відтворити більше 100 кадрів в секунду (FPS) на платі Raspberry Pi 3B + при виході 720p.
Нарешті, щодо реалізації цього контролера та щоб дізнатися про нього більше , ви можете звернутися до репозиторію контролерів за наступним посиланням.