Компания AMD открыла код драйвера с реализацией API Vulkan

Материал из Викиновостей, свободного источника новостей

27 декабря 2017 года

Компания AMD открыла исходные тексты драйвера AMDVLK с полной реализацией графического API Vulkan 1.0. Драйвер поставлялся в составе проприетарного набора драйверов AMDGPU-PRO и конкурировал с изначально открытым Vulkan-драйвером RADV, развиваемым проектом Mesa. Код драйвера AMDVLK открыт под лицензией MIT.

Новый открытый драйвер реализован с использованием прослойки PAL (Platform Abstraction Library), предоставляющей унифицированный набор средств для доступа к оборудованию и низкоуровневым функциям операционной системы. Прослойка применяется в драйверах AMDGPU-PRO для Linux и Windows и создана для абстрагирования взаимодействия высокоуровневого драйвера с операционными системами, GPU и инструментами разработки. Для взаимодействия с оборудованием PAL обращается к встроенному в ядро Linux штатному DRM-модулю amdgpu, который также используется драйверами Mesa.

Ключевым компонентом драйвера является компонент XGL (Vulkan API Layer), который занимается трансляцией команд API Vulkan в универсальные команды прослойки PAL, которые затем могут быть переданы для обработки в GPU. Для компиляции шейдеров применяется основанный на наработках проекта LLVM компилятор LLPC (LLVM Pipeline Compiler), который генерирует на выходе объекты VkPipeline, совместимые с ABI PAL. LLPC объединяет в себе три компонента:

  • Транслятор промежуточного представления шейдеров SPIR-V в LLVM IR с дополнительными метаданными;
  • Lower для трансляции полученного промежуточного кода LLVM IR с метаданными в вызовы функций;
  • Patcher для замены всех внешних вызовов функций на вызовы, соответствующие PAL Pipeline ABI.

Основные возможности драйвера:

  • Поддержка Vulkan 1.0 и более 30 расширений Vulkan;
  • Возможность использованием системы трассировки Radeon GPUProfiler;
  • Встроенные инструменты для отладки и профилирования;
  • Упреждающий разбор буфера промежуточных команд и виртуализация SR-IOV;
  • Поддержка серий GPU:
  • Radeon HD 7000
  • Radeon HD 8000M
  • Radeon R5/R7/R9 200/300
  • Radeon RX 400/500
  • Radeon M200/M300/M400
  • Radeon RX Vega
  • AMD FirePro Workstation Wx000/Wx100/Wx300
  • Radeon Pro WX x100
  • Radeon Pro 400/500

Запланированные на будущее возможности:

  • Поддержка находящихся в разработке спецификаций Vulkan API;
  • Использование аппаратных счётчиков производительности для сбора информации через RenderDoc;
  • Оптимизация LLPC для сокращения времени компиляции и увеличения производительности, упирающейся в возможности GPU;
  • Оптимизация производительности операций, выполняемых на CPU;

Источники[править]

Creative Commons
Creative Commons
Эта статья содержит материалы из статьи «Компания AMD открыла код драйвера с реализацией API Vulkan», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии[править]

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.