
D7VK 2.1 тепер доступна як нова версія цього шару графічної трансляції з відкритим кодом, який дозволяє запускати старі ігри для Windows на базі Direct3D 7, 6, 5 та 3 на Vulkan. Після значних покращень продуктивності, запроваджених у попередніх версіях , це оновлення зосереджує значну частину своєї роботи на іншому аспекті: скороченні часу завантаження та запуску гри . У деяких іграх покращення скорочують час, необхідний для завантаження або запуску гри, вдвічі.
D7VK спеціально орієнтований на класичні ігри, які використовують ранні версії Direct3D і все ще можуть бути запущені на Linux за допомогою Wine або Proton. Проект використовує Vulkan як бекенд для цих старих API, заповнюючи прогалину, яку безпосередньо не вирішують сучасні версії DXVK, що зосереджені на Direct3D 8, 9, 10 та 11, або VKD3D-Proton, розроблений для Direct3D 12.
D7VK 2.1 пришвидшує завантаження класичних ігор
Головна нова функція в D7VK 2.1 пов'язана зі створенням та знищенням об'єктів . Проєкт зменшив накладні витрати, пов'язані з відстеженням життєвого циклу цих об'єктів, тим самим зменшивши роботу, необхідну під час завантаження та ініціалізації гри.
Ця зміна безпосередньо впливає на час запуску. За словами розробника, кілька ігор зазнали помітних покращень, причому час завантаження деяких з них скоротився вдвічі або навіть більше порівняно з попередніми версіями D7VK. Хоча класичні ігри зазвичай не мають суттєвих проблем із часом завантаження на сучасному обладнанні, проєкт вважає, що ці оптимізації дозволяють краще використовувати доступні ресурси.
Також було внесено покращення до системи кешування. Поєднання нижчих витрат на управління життєвим циклом об'єктів та ефективнішої роботи кешу зменшує робоче навантаження, яке D7VK має виконувати під час запуску програми та деяких наступних операцій.
Також є важливі виправлення сумісності
D7VK 2.1 не лише оптимізує час завантаження. Оновлення також виправляє проблему використання після звільнення , пов'язану з випуском пов'язаних поверхонь трафаретів глибини . Помилка з'являлася лише з певними бінарними файлами, скомпільованими за допомогою MSVC або Clang, і могла призвести до неочікуваного збою деяких ігор під час запуску.
Однією з проблемних ігор була Arx Fatalis , яка могла призводити до аварійного завершення роботи під час запуску. Виправлення, включене до D7VK 2.1, вирішує цю проблему та дозволяє грі запускатися без виникнення цієї конкретної помилки.
Оновлення також включає корективи для певних ігор. Серед них покращення продуктивності для Resident Evil 2 та Empire Earth: The Art of Conquest – двох класичних ігор, які можуть отримати користь від роботи, виконаної в цій версії.
Новий необов'язковий маршрут для GetDC та ReleaseDC
Ще одна новинка D7VK 2.1 Це необов'язковий шлях виконання для викликів GetDC y ReleaseDCМета полягає в покращенні продуктивності певних ігор, які інтенсивно використовують ці функції.
Впровадження є необов'язковим, оскільки його результати значною мірою залежать від поведінки кожної гри. У деяких випадках воно може забезпечити покращення продуктивності, тоді як в інших може створити прямо протилежний ефект і збільшити вартість певних операцій.
Сам розробник спостерігав збільшення FPS приблизно на 5-10% під час гри в Arx Fatalis за цим маршрутом. Однак, та сама зміна призводить до помітного падіння продуктивності під час рендерингу головного меню гри. Тому це не універсальна оптимізація, яку слід вмикати без розбору, а радше опція, яка може бути корисною в певних іграх.
Цікаве покращення для гри в класичні ігри Windows на Linux
Головна перевага D7VK 2.1 полягає в каталозі ігор, який може здатися невеликим порівняно із сучасними іграми, але залишається актуальним для тих, хто використовує Linux як платформу для класичних ігор. Цей шар дозволяє перетворювати старіші API Direct3D версій 3, 5, 6 та 7 на Vulkan, що дозволяє запускати ці ігри за допомогою Wine або Proton.
Це особливо корисно для ігор, розроблених задовго до того, як сучасні графічні API стали стандартом. Замість того, щоб покладатися виключно на традиційні реалізації Direct3D, доступні через Wine, D7VK пропонує підхід на основі Vulkan, який може запропонувати кращу сумісність та продуктивність на сучасному графічному обладнанні та драйверах.
D7VK 2.1 тепер доступний
D7VK 2.1 тепер доступний для завантаження з репозиторію проекту. Ця нова версія зосереджена не стільки на значному збільшенні FPS, скільки в попередніх оновленнях, скільки на вдосконаленні внутрішньої роботи рівня перекладу.
Зменшення накладних витрат під час створення об'єктів, покращення кешування та оптимізація процесу завантаження можуть значно скоротити час завантаження в певних іграх. Це на додаток до виправлення збою Arx Fatalis, внесення змін до інших ігор та додавання нового додаткового шляху для GetDC/ReleaseDC.
Таким чином, D7VK 2.1 продовжує покращувати дуже специфічний аспект ігор на Linux: виконання класичних ігор, які залежать від старих графічних API Microsoft. Оновлення демонструє, що все ще є простір для вдосконалення цих ігор, навіть коли іграм десятиліттями та вони працюють на сучасному обладнанні.