ਗ੍ਰਾਫਿਕਸ ਸਟੈਂਡਰਡ ਵੁਲਕਨ 1.2 ਪ੍ਰਕਾਸ਼ਿਤ

ਕ੍ਰੋਨੋਸ ਕੰਸੋਰਟੀਅਮ, ਜੋ ਗ੍ਰਾਫਿਕਸ ਦੇ ਮਿਆਰ ਵਿਕਸਿਤ ਕਰਦਾ ਹੈ,
ਪ੍ਰਕਾਸ਼ਿਤ ਨਿਰਧਾਰਨ ਵੁਲਕਾਨ 1.2, определяющую API для доступа к графическим и вычислительным возможностям GPU. Новая спецификация вобрала в себя накопившиеся за два года исправления и ਐਕਸਟੈਂਸ਼ਨਾਂ. Драйверы с поддержкой новой версии Vulkan уже ਜਾਰੀ ਕੀਤਾ компании Intel, AMD, ARM, Imagination Technologies и NVIDIA. В Mesa поддержка Vulkan 1.2 предложена для драйверов ਆਰ.ਏ.ਡੀ.ਵੀ. (карты AMD) и ਏ.ਐਨ.ਵੀ (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.

    ਗ੍ਰਾਫਿਕਸ ਸਟੈਂਡਰਡ ਵੁਲਕਨ 1.2 ਪ੍ਰਕਾਸ਼ਿਤ

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

    ਗ੍ਰਾਫਿਕਸ ਸਟੈਂਡਰਡ ਵੁਲਕਨ 1.2 ਪ੍ਰਕਾਸ਼ਿਤ

  • В основной API Vulkan включены 23 расширения, позволившие увеличить производительность, повысить качество визуализации и упростить разработку. Среди добавленных расширений:
    • Хронологические семафоры (Timeline semaphore), унифицирующие синхронизации c хостом и очередями устройств (позволяют обойтись одним примитивом для всенаправленной синхронизации между устройством и хостом, без применения раздельных примитивов VkFence и VkSemaphore). Новые семафоры представлены монотонно увеличивающимся 64-разрядным значением, которое можно отслеживать и обновлять в нескольких потоках.
      ਗ੍ਰਾਫਿਕਸ ਸਟੈਂਡਰਡ ਵੁਲਕਨ 1.2 ਪ੍ਰਕਾਸ਼ਿਤ

    • Возможность использования в шейдерах числовых типов с пониженной точностью;
    • Совместимый с HLSL вариант раскладки памяти;
    • Несвязанные ресурcы (bindless), снимающие ограничение на число доступных для шейдеров ресурсов за счёт использования общего виртуального пространства системной памяти и памяти GPU;
    • Формальная модель памяти, определяющая как параллельно выполняемые потоки могут обращаться к совместно используемым данным и операциям синхронизации;
    • Индексация дескрипторов для повторного использования дескрипторов раскладок в нескольких шейдерах;
    • Буферные ссылки.

    Полный список добавленных расширений:

  • ਦੁਆਰਾ ਜੋੜਿਆ ਗਿਆ более 50 новых структур и 13 функций;
  • Подготовлены сокращённые варианты спецификации для типовых целевых платформ, упрощающие работу на платформах, для которых пока не поддерживаются все расширения, и позволяющие обойтись без выборочной активации базовых возможностей API Vulkan.
  • Продолжена работа над проектом по обеспечению переносимости с другими графическими API. Например, в Vulkan предложены расширения, позволяющие транслировать OpenGL (ਜ਼ਿੰਕ), OpenCL (clspv, clvk), OpenGL ES (GLOVE, Angle) и DirectX (ਡੀਐਕਸਵੀਕੇ, vkd3d) через API Vulkan, а также, наоборот, для обеспечения работы Vulkan на платформах без его родной поддержки (gfx-rs и ਐਸ਼ੇਜ਼ для работы поверх OpenGL и DirectX, ਮੋਲਟੇਨਵੀਕੇ и gfx-rs для работы поверх Metal).
    Для улучшения совместимости с DirectX и HLSL добавлены расширения
    VK_KHR_host_query_reset, VK_KHR_uniform_buffer_standard_layout, VK_EXT_scalar_block_layou, VK_KHR_separate_stencil_usage, VK_KHR_separate_depth_stencil_layouts, а также в SPIR-V реализованы специфичные возможности HLSL.

Из планов на будущее отмечается развитие расширений для машинного обучения, трассировки лучей, кодирования и декодирования видео, поддержки VRS (variable-rate shading) и Mesh-шейдеров.

Напомним, что API Vulkan ਕਮਾਲ ਦੇ кардинальным упрощением драйверов, выносом генерации команд GPU на сторону приложения, возможностью подключения отладочных слоёв, унификацией API для различных платформ и применением предкомпилированного промежуточного представления кода для выполнения на стороне GPU. Для обеспечения высокой производительности и предсказуемости, Vulkan предоставляет приложениям средства для прямого управления операциями GPU и встроенную поддержку многопоточной обработки команд GPU, что минимизирует накладные расходы, вносимые драйвером, а реализуемые на стороне драйвера возможности заметно упрощаются и становятся более предсказуемыми. Например, такие операции, как управление памятью и обработка ошибок, реализуемые в OpenGL на стороне драйвера, в Vulkan вынесены на уровень приложения.

Vulkan ਸਾਰੇ ਉਪਲਬਧ ਪਲੇਟਫਾਰਮਾਂ ਨੂੰ ਫੈਲਾਉਂਦਾ ਹੈ ਅਤੇ ਡੈਸਕਟੌਪ, ਮੋਬਾਈਲ ਅਤੇ ਵੈਬ ਲਈ ਇੱਕ ਸਿੰਗਲ API ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਇੱਕ ਤੋਂ ਵੱਧ GPUs ਅਤੇ ਐਪਲੀਕੇਸ਼ਨਾਂ ਵਿੱਚ ਇੱਕ ਆਮ API ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ। ਵੁਲਕਨ ਦੇ ਮਲਟੀ-ਲੇਅਰ ਆਰਕੀਟੈਕਚਰ ਦਾ ਧੰਨਵਾਦ, ਜਿਸਦਾ ਮਤਲਬ ਹੈ ਕਿ ਉਹ ਟੂਲ ਜੋ ਕਿਸੇ ਵੀ GPU ਨਾਲ ਕੰਮ ਕਰਦੇ ਹਨ, OEMs ਵਿਕਾਸ ਦੇ ਦੌਰਾਨ ਕੋਡ ਸਮੀਖਿਆ, ਡੀਬੱਗਿੰਗ ਅਤੇ ਪ੍ਰੋਫਾਈਲਿੰਗ ਲਈ ਉਦਯੋਗ-ਮਿਆਰੀ ਟੂਲਸ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹਨ। ਸ਼ੈਡਰ ਬਣਾਉਣ ਲਈ, ਇੱਕ ਨਵੀਂ ਪੋਰਟੇਬਲ ਇੰਟਰਮੀਡੀਏਟ ਨੁਮਾਇੰਦਗੀ, SPIR-V, ਪ੍ਰਸਤਾਵਿਤ ਹੈ, ਜੋ ਕਿ LLVM 'ਤੇ ਅਧਾਰਤ ਹੈ ਅਤੇ ਓਪਨਸੀਐਲ ਨਾਲ ਕੋਰ ਟੈਕਨਾਲੋਜੀ ਸਾਂਝੀਆਂ ਕਰਦੀ ਹੈ। ਡਿਵਾਈਸਾਂ ਅਤੇ ਸਕ੍ਰੀਨਾਂ ਨੂੰ ਨਿਯੰਤਰਿਤ ਕਰਨ ਲਈ, ਵੁਲਕਨ ਡਬਲਯੂਐਸਆਈ (ਵਿੰਡੋ ਸਿਸਟਮ ਏਕੀਕਰਣ) ਇੰਟਰਫੇਸ ਦੀ ਪੇਸ਼ਕਸ਼ ਕਰਦਾ ਹੈ, ਜੋ ਲਗਭਗ ਓਪਨਜੀਐਲ ਈਐਸ ਵਿੱਚ ਈਜੀਐਲ ਵਰਗੀਆਂ ਸਮੱਸਿਆਵਾਂ ਨੂੰ ਹੱਲ ਕਰਦਾ ਹੈ। WSI ਸਹਾਇਤਾ ਵੇਲੈਂਡ ਵਿੱਚ ਬਾਕਸ ਤੋਂ ਬਾਹਰ ਉਪਲਬਧ ਹੈ - ਵੁਲਕਨ ਦੀ ਵਰਤੋਂ ਕਰਨ ਵਾਲੀਆਂ ਸਾਰੀਆਂ ਐਪਲੀਕੇਸ਼ਨਾਂ ਅਣਸੋਧਿਤ ਵੇਲੈਂਡ ਸਰਵਰਾਂ ਦੇ ਵਾਤਾਵਰਣ ਵਿੱਚ ਚੱਲ ਸਕਦੀਆਂ ਹਨ। WSI ਰਾਹੀਂ ਕੰਮ ਕਰਨ ਦੀ ਸਮਰੱਥਾ ਐਂਡਰਾਇਡ, X11 (DRI3 ਦੇ ਨਾਲ), ਵਿੰਡੋਜ਼, ਟਿਜ਼ਨ, ਮੈਕੋਸ ਅਤੇ ਆਈਓਐਸ ਲਈ ਵੀ ਪ੍ਰਦਾਨ ਕੀਤੀ ਗਈ ਹੈ।

ਸਰੋਤ: opennet.ru

ਇੱਕ ਟਿੱਪਣੀ ਜੋੜੋ