Опубликован графический стандарт Vulkan 1.4

После почти трёх лет работы консорциум Khronos, занимающийся разработкой графических стандартов, опубликовал спецификацию Vulkan 1.4, определяющую API для доступа к графическим и вычислительным возможностям GPU. Новая спецификация вобрала в себя накопившиеся расширения, которые ранее позиционировались как опциональные, а также предоставила ряд новых возможностей и повысила минимальные требования к оборудованию. Инструментарий Vulkan SDK планируют опубликовать в январе 2025 года.

Продукты с поддержкой Vulkan 1.4 готовятся выпустить компании AMD, Arm, Imagination, Intel, NVIDIA, Qualcomm и Samsung. Открытые драйверы для GPU AMD (radv), Apple M1/M2 (honeykrisp), Intel (anv), NVIDIA (nvk) и Qualcomm (tu), развиваемые проектом Mesa, уже прошли все тесты совместимости с Vulkan 1.4 из набора CTS (Khronos Conformance Test Suite) и включены в список сертифицированных драйверов. В список также включены драйверы Samsung и Qualcomm для платформы Android, а также драйверы для GPU PowerVR D-Series DXT* от компании Imagination Technologies и проприетарные драйверы NVIDIA.

Основные новшества:

  • Добавлена поддержка механизма «Streaming Transfers», предназначенного для обеспечения потоковой передачи больших объёмов данных между основной системой (хостом) и графическим устройством, не прерывая при этом рендеринг и не замедляя его производительность. Механизм реализован при помощи нового расширения VK_EXT_host_image_copy, поддержка которого является опциональной.

  • Переведены в разряд обязательных возможности, нацеленные на повышение производительности:
    • Push Descriptors — возможность записывать обновления дескрипторов непосредственно в буфер команд, вместо создания отдельных наборов дескрипторов и их привязки к буферу команд.

    • VK_KHR_dynamic_rendering_local_read — позволяет выполнять чтение из вложенных буферов (attachments) и ресурсов, записанных предыдущими фрагментными шейдерами, в рамках динамических проходов рендеринга (render pass).

    • VK_EXT_scalar_block_layout — позволяет использовать Си-подобную структуру для блоков SPIR-V, в которой можно выравнивать не скалярные типы на основе размера их компонентов.

  • В состав включены расширения VK_KHR_maintenance5 и VK_KHR_maintenance6, предоставляющее вспомогательные команды и структуры для упрощения управления ресурсами и шейдерами.

  • Гарантирована поддержка рендеринга с разрешением 8K (7680×4320 пикселей) и с использованием до 8 независимых буферов рендеринга.

  • В состав включены расширения:

    • VK_KHR_global_priority
    • VK_KHR_index_type_uint8
    • VK_KHR_line_rasterization
    • VK_KHR_load_store_op_none
    • VK_KHR_map_memory2
    • VK_KHR_push_descriptor
    • VK_KHR_shader_expect_assume

    • VK_KHR_shader_float_controls2

©  OpenNet