rss-newsru

Портал про гейминг на платформе GNU/Linux.
  1.  

    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, приводившая к блокировке при загрузке.

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