vk.com

Выберите язык

Вышла новая версия VKD3D-Proton 2.8

 

 VKD3D-Proton - это форк VKD3D, целью которого является реализация полного API Direct3D 12 поверх Vulkan. Проект служит для разработки поддержки Direct3D 12 в Proton.

 

В этом выпуске собраны некоторые значительные новые разработки.

 Поддержка VK_EXT_descriptor_buffer


Это расширение очень важно, поскольку оно снимает тонну накладных расходов процессора.
Большая часть этого уже была реализована в RADV и Steam Deck,
но это позволит реализациям драйверов NVIDIA, Intel, Turnip и других AMD использовать одни и те же оптимальные пути кода.
Производительность в привязке к GPU немного увеличится, так как мы также сможем удалить часть шейдерного кода, который был необходим для обхода отсутствия буферов дескрипторов.

 Новые требования к расширению


Для поддержки буферов дескрипторов в кодовой базе эти функции теперь являются обязательными, а не опциональными.
Обратите внимание, что эти возможности уже широко поддерживаются и, как ожидается, не вызовут никаких проблем.
Если реализация могла поддерживать v2.7, она будет поддерживать v2.8.

- VK_KHR_buffer_device_address
- VK_KHR_push_descriptor


Переписанная поддержка изображений, доступных хосту


Вся функция API была переписана с нуля для поддержки большего количества реализаций и побочных случаев без
множества хаков и обходных путей для каждого приложения.
В качестве самого экстремального примера использования странного API, Guardians of the Galaxy должны (наконец-то) хорошо работать на NVIDIA.

 

Переписанная цепочка подкачки


Для большинства пользователей это изменение должно быть прозрачным.

Позволяет более точно контролировать задержку и темп кадров с помощью VK_KHR_present_wait.
mesa-git поддерживает это вместе с NVIDIA.
VKD3D_SWAPCHAIN_LATENCY_FRAMES=n позволяет пользователю принудительно установить определенное количество задержек.
Реализация ограждений латентности DXGI теперь корректна.
Снижение нагрузки на процессор для основного потока, который представляет цепочку подкачки.
Исправлено ложное зависание в Hitman III, когда игра полагается на асинхронное представление, чтобы не заблокироваться.
Win32-специфичный DXGI-код обрабатывается DXVK. Для работы требуется сборка DXVK от Experimental или более поздней версии.
Это позволяет реализовать vkd3d-proton в Linux, включая цепочку подкачки.
Когда VK_KHR_present_wait не поддерживается, поведение должно быть 1:1 со старой реализацией.
ПРИМЕЧАНИЕ: Старая реализация swapchain все еще находится в репозитории, и ожидается, что она будет удалена в следующем выпуске.
Пока что VKD3D_CONFIG=swapchain_legacy можно использовать для устранения возможных проблем с новой реализацией.
ПРИМЕЧАНИЕ: На драйверах NVIDIA 525.x наблюдался сбой драйвера при работе в некоторых конфигурациях PRIME.
На данный момент мы отключили использование present_wait на этих драйверах.


Исправления и обходные пути


Устранение зависания GPU в Spiderman Remastered: Майлз Моралес (та же проблема, что и в оригинале).
Исправление ошибки рендеринга с повреждениями от оружия в Borderlands 3 на RADV.
Исправление того, как используется изменяемый размер BAR. GPU с 4 GiB и ниже больше не будут пытаться использовать изменяемый BAR,
что позволяет избежать некоторых ситуаций с нехваткой памяти.
Исправление зависания GPU в Age of Empires IV.
Исправление некоторых незначительных проблем в реализации шейдеров сетки.
Исправлены некоторые проблемы, мешающие RE: Village загружаться на Arc.
Несколько последних исправлений для обновления Witcher 3 для next-gen.
Все функции, кроме RT, работают на RADV.
Известно, что работа Hairworks приводит к сбою GPU на NVIDIA. Необходимо провести дополнительное расследование для выявления причины.
Некоторые эффекты RT работают на NVIDIA, другие - нет:
GI, как сообщается, работает.
AO приводит к сбою GPU. Необходимо провести дополнительное расследование для выявления причины.


Реализация незначительных недостающих функций D3D12


Неясная функция была отключена до этого времени.
ID3D12Device1::SetEventOnMultipleFenceCompletion() теперь реализована.
Также реализовано SetEventOn(Multiple)FenceCompletion для общих ограждений D3D12.
Исправлена регрессия в Gears 5, приводившая к блокировке при загрузке.

Более подробную информацию смотрите здесь.