Vulkan 1.4.340 получил расширение, которое может улучшить производительность DirectX-игр на Linux

2026-01-23 167 комментарии
В версии Vulkan 1.4.340 представлено расширение VK_EXT_descriptor_heap, призванное упростить сопоставление DirectX и Vulkan и сократить потери производительности в Linux-играх. Поддержка со стороны драйверов и Proton только начинается, поэтому реальные улучшения появятся позже

Сообщество разработчиков и игроков активно обсуждает выход Vulkan 1.4.340, в котором появилось новое расширение, потенциально способное улучшить производительность игр с DirectX на Linux. Речь идёт о расширении VK_EXT_descriptor_heap, над которым совместно работали AMD, Arm, Valve, Nintendo, Microsoft, NVIDIA, Intel, Google и другие участники экосистемы.

Однако ожидания стоит немного умерить. Чтобы реальные улучшения дошли до пользователей, необходимо обновление графических драйверов, а также поддержка со стороны Valve в инструментах совместимости — через Proton, включая DXVK и VKD3D-Proton. Это означает, что практический эффект для геймеров появится не сразу.

На текущий момент NVIDIA уже выпустила ориентированный на разработчиков бета-драйвер Vulkan (версия 580.94.16) с ранней поддержкой нового расширения. Разработка в рамках открытых драйверов Mesa уже началась — в репозитории появились черновые реализации для GPU от AMD и Intel.

Подробнее о расширении — из официальной документации Vulkan:

Это расширение позволяет явно управлять дескрипторами и памятью, используемой для их хранения, которая которая концептуально представлена в виде пулов дескрипторов (descriptor heaps). Память пула дескрипторов может использоваться как обычная память, что позволяет управлять дескрипторами как со стороны CPU, так и GPU.

Расширение было разработано с учётом проблем, выявленных в VK_EXT_descriptor_buffer. В новой модели введены более строгие ограничения реализации, обеспечивающие лучшую переносимость и более предсказуемые характеристики производительности. Например, вместо произвольного количества буферов сэмплеров или ресурсов используется ровно одна куча сэмплеров и ровно одна куча ресурсов.

Расширение полностью устраняет понятия descriptor sets и pipeline layouts. Вместо этого приложения получают доступ к дескрипторам напрямую — по их смещению в пуле дескрипторов. При этом шейдеры, использующие прежние схемы с descriptor set и binding, по-прежнему могут быть сопоставлены с пулами через специальный API, который отображает set и binding в смещения внутри пула — как через константы, так и с помощью push data. Такой API также заметно упрощает сопоставление с HLSL-шейдерами, использующими root signature и descriptor table.

Кроме того, API push constants был заменён интерфейсом push data, который делает передачу данных в шейдеры более наглядной и не требует предоставления информации о сопоставлении на этапе создания пайплайнов или шейдеров. При этом поддержка шейдеров, написанных под устаревший интерфейс, сохраняется.

Также появился более прозрачный и универсальный механизм сопоставления константных данных шейдеров. Рекомендуются два варианта передачи таких данных через push data: либо напрямую, либо через адрес в памяти устройства, передаваемый в push data. Оба подхода могут быть сопоставлены с шейдерами, использующими интерфейсы set и binding.

Многие Linux-геймеры надеются, что появление VK_EXT_descriptor_heap поможет сократить разрыв в производительности между Linux и Windows (особенно на видеокартах NVIDIA), а также уменьшить разницу между AMD и NVIDIA внутри самой Linux-платформы. Эта проблема уже давно обсуждается — на форуме NVIDIA есть тема с сотнями сообщений, посвящённых слабой производительности DirectX 12-игр на Linux.

2026 год уже выглядит насыщенным и многообещающим для Linux-гейминга, и развитие Vulkan остаётся одним из ключевых факторов этого прогресса.

© .
Комментарии и отзывы

Нашли ошибку?

Новое на сайте