Публикуван е графичен стандарт Vulkan 1.2

Консорциум Khronos, отговарящ за разработка на графични стандарти,
публикувал спецификацията Vulkan 1.2, определяща API за достъп до графичните и изчислителните възможности на GPU. Новата спецификация включва натрупаните за две години корекции и разширения. Драйверите, поддържащи новата версия на Vulkan, вече пуснаха компанията Intel, AMD, ARM, Imagination Technologies и NVIDIA. Поддръжката на Vulkan 1.2 в Mesa е предложена за драйверите RADV (карти AMD) и ANV (Intel). Поддръжката на Vulkan 1.2 също е реализирана в отладчика RenderDoc 1.6, LunarG Vulkan SDK и набора от примери Vulkan-Samples.

Основни нововъведения:

  • Доведена до готовност за широко приложение реализация на езика за програмиране на шейдери HLSL, разработен от Microsoft за DirectX. Поддръжката на HLSL в Vulkan позволява използването на едни и същи HLSL-шейдери в приложения, базирани на Vulkan и DirectX, както и опростява транслацията от HLSL към SPIR-V. За компилиране на шейдери се предлага да се използва стандартният компилатор
    DXC, който беше отворен от Microsoft през 2017 година и се основава на технологията LLVM. Поддръжката на Vulkan е реализирана чрез отделен бекенд, който позволява транслация от HLSL в междинно представяне на шейдери SPIR-V. Реализацията обхваща не само всички вградени възможности
    HLSL, включително математически типове, потоци управление, функции, множества, типове ресурси, пространства имена, Shader Model 6.2, структури и методи, но и позволява използването на специфични за Vulkan разширения, като VKRay от NVIDIA. В режим HLSL над Vulkan е успяло да организира работата на игри като Destiny 2, Red Dead Redemption II, Assassin’s Creed Odyssey и Tomb Raider.

    Публикуван е графичен стандарт Vulkan 1.2
  • Обновена спецификация SPIR-V 1.5, определяща универсално за всички платформи междинно представяне на шейдери, което може да се прилага както за графика, така и за паралелни пресмятания.
    SPIR-V предвижда отделна фаза на компилиране на шейдери в междинно представяне, което позволява създаването на фронтендове за различни високоуровневи езици. Въз основа на различни високоуровневи реализации, отделно се генерира единно междинно представяне, което може да се използва от драйверите OpenGL, Vulkan и OpenCL без необходимост от вграден компилатор на шейдери.

    Публикуван е графичен стандарт Vulkan 1.2
  • В основния API на Vulkan са включени 23 разширения, позволили увеличаване на производителността, подобряване на качеството на визуализация и опростяване на разработката. Сред добавените разширения:
    • Хронологични семафори (Timeline semaphore), унифициращи синхронизации с хоста и опашките на устройствата (позволяват да се мине с един примитив за взаимна синхронизация между устройството и хоста, без да е необходимо използването на отделни примитиви VkFence и VkSemaphore). Новите семафори са представени с монотонно нарастваща 64-битова стойност, която може да се проследява и актуализира в няколко потока.
      Публикуван е графичен стандарт Vulkan 1.2
    • Възможност за използване в шейдерите на числови типове с понижена прецизност;
    • Съвместим с HLSL вариант на подреждане на паметта;
    • Необвързани ресурси (bindless), премахващи ограниченията за броя налични ресурси за шейдерите чрез използването на общо виртуално пространство в системната памет и паметта на GPU;
    • Формален модел на паметта, който определя как паралелните поточни изпълнения могат да достъпват споделени данни и операции за синхронизация;
    • Индексация на дескриптори за повторна употреба на дескрипторите на подреждания в няколко шейдера;
    • Буферни справки.

    Пълен списък на добавените разширения:

  • Добавено повече от 50 нови структури и 13 функции;
  • Подготвени са съкратени версии на спецификацията за типови целеви платформи, улесняващи работата на платформи, за които все още не се поддържат всички разширения, и позволяващи работа без изборна активация на основните възможности на API Vulkan.
  • Продължава работата по проекта за осигуряване на преносимост с други графични API. Например, предлагани са разширения в Vulkan, позволяващи транслирането на OpenGL (Zink), OpenCL (clspv, clvk), OpenGL ES (GLOVE, Angle) и DirectX (DXVK, vkd3d) чрез API Vulkan, както и обратното, за осигуряване на работоспособност на Vulkan на платформи без собствена поддръжка (gfx-rs и Ashes за работа отгоре на OpenGL и DirectX, MoltenVK и gfx-rs за работа отгоре на Metal).
    За подобряване на съвместимостта с DirectX и HLSL са добавени разширения.
    VK_KHR_host_query_reset, VK_KHR_uniform_buffer_standard_layout, VK_EXT_scalar_block_layout, VK_KHR_separate_stencil_usage, VK_KHR_separate_depth_stencil_layouts, както и в SPIR-V са реализирани специфични възможности на HLSL.

От плановете за бъдещето се отбелязва развитието на разширения за машинно обучение, трасировка на лъчи, кодиране и декодиране на видео, поддръжка на VRS (оптимизирана скорост на затеняване) и Mesh шейдери.

Напомняме, че API Vulkan е забележителен с коренно опростяване на драйверите, извеждане на генерирането на команди GPU на страната на приложението, възможност за свързване на дебъгерни слоеве, унификация на API за различни платформи и прилагане на предварително компилирано междинно представяне на кода за изпълнение на страната на GPU. За осигуряване на висока производителност и предсказуемост, Vulkan предоставя на приложенията средства за пряко управление на операциите на GPU и вградена поддръжка за многопоточна обработка на команди от GPU, което минимизира разходите, предизвикани от драйвера, така че реализираните на ниво драйвер функции значително се опростяват и стават по-предсказуеми. Например, операции като управление на паметта и обработка на грешки, реализирани в OpenGL на страната на драйвера, в Vulkan са изнесени на ниво приложение.

Vulkan обхваща всички налични платформи и предоставя единен API за настолни, мобилни системи и уеб, позволявайки използването на един общ API за различни графични процесори и области на приложение. Благодарение на многослойната архитектура на Vulkan, предполагаща създаването на инструменти, работещи с всякакви GPU, производителите на оборудване могат да използват при разработването стандартни инструменти за проверка на кода, дебъгване и профилиране. За създаване на шейдери е предложена нова преносима междинна представяне SPIR-V, базирана на LLVM и използваща основни технологии, общи с OpenCL. За управление на устройства и екрани в Vulkan е предложен интерфейс WSI (Window System Integration), който решава приблизително същите задачи като EGL в OpenGL ES. Поддръжката на WSI е налична по подразбиране в Wayland — всички приложения, използващи Vulkan, могат да се стартират в околната среда на немодифицирани Wayland сървъри. Функционалността за работа чрез WSI също е осигурена за Android, X11 (с DRI3), Windows, Tizen, macOS и iOS.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster