Проект Wine анонсував кілька днів тому випуск нової версії пакета vkd3d 1.11, версія, у якій було внесено вдосконалення у використання розширень vulkan, а також покращено підтримку, нові функції тощо.
Для тих, хто не знає про Vkd3d, ви повинні знати, що це пакет, який пропонує реалізацію Direct3D 12 за допомогою викликів графічного API Vulkan і містить кілька ключових бібліотек. Бібліотека libvkd3d містить реалізації Direct3D 12, що охоплює широкий спектр функцій, таких як обчислення та графіка, черги та списки команд, ідентифікатори тощо.
Також надається бібліотека шейдерів libvkd3d який надає транслятор для моделей шейдерів 4 і 5 у проміжне представлення SPIR-V. Ця бібліотека підтримує вершинні, піксельні, тесселяційні, обчислювальні та прості шейдери геометрії, а також серіалізацію та десеріалізацію кореневих підписів.
Що нового у vkd3d 1.11?
Vkd3d 1.11 представляє a початкова підтримка компіляції застарілого байт-коду Direct3D у проміжному представленні шейдерів SPIR-V, а також sпочаткова підтримка з компілятором HLSL pдля компіляції профілів ефектів.
Ще одне вдосконалення, представлене в цій новій версії, це експериментальна підтримка компіляції DXIL (проміжна мова DirectX) у представленні SPIR-V, надаючи нові можливості для розробки програм Direct3D. Ця функція потребує компіляції vkd3d з опцією preprocessor-DVKD3D_SHADER_UNSUPPORTED_DXILі вважається експериментальним.
Тамбієн оптимізовано використання груп і наборів дескрипторів коли доступні розширення VK_EXT_mutable_descriptor_type і VK_EXT_shader_viewport_index_layer, який надається для підвищення ефективності роботи з пулом дескрипторів і прискорення відтворення масивів тесселяції та вершинних шейдерів.
C було реалізованоПідтримка стандартних кольорів рамок, наприклад чорно-білих і метод був реалізований GetResourceAllocationInfo1() інтерфейсу ID3D12Device4, а також підтримка інтерфейсів ID3D12Device7 та ID3D12Resource2.
Підтримується кілька нових запитів функцій, у тому числі D3D12_FEATURE_D3D12_OPTIONS6 a D3D12_FEATURE_D3D12_OPTIONS13.
Були реалізовані нові варіанти збірки: VKD3D_SHADER_COMPILE_OPTION_FEATURE можна використовувати для
укажіть функції, доступні в цільовому середовищі, а VKD3D_SHADER_COMPILE_OPTION_FEATURE_INT64 вказує на сумісність із
64-розрядні цілі типи в цільовому середовищі SPIR і VKD3D_SHADER_COMPILE_OPTION_FEATURE_FLOAT64 вказує на сумісність із
64-розрядні типи з плаваючою комою в цільовому середовищі SPIR-V.
З інші зміни, які виділяються цієї нової версії:
- Оновлення дескрипторів тепер відбуваються асинхронно у внутрішньому робочому потоці, покращуючи продуктивність програм, які оновлюють багато дескрипторів за кадр.
- Для цільового типу SPIR-V додано нові функції, включаючи підтримку глобально узгоджених переглядів непорядкового доступу, бар’єрів перегляду непорядкового доступу групи потоків тощо.
- Підтримується інтерфейс ID3D12Device7.
- Мінімально необхідною версією Vulkan-Headers для цього випуску є версія
1.3.228. - Підтримується інтерфейс ID3D12Resource2.
- Підтримується кілька нових запитів функцій:
– D3D12_FEATURE_D3D12_OPTIONS6
– D3D12_FEATURE_D3D12_OPTIONS7
– D3D12_FEATURE_D3D12_OPTIONS8
– D3D12_FEATURE_D3D12_OPTIONS9
– D3D12_FEATURE_D3D12_OPTIONS10
– D3D12_FEATURE_D3D12_OPTIONS11
– D3D12_FEATURE_D3D12_OPTIONS12
– D3D12_FEATURE_D3D12_OPTIONS13 - Внутрішні функції acos(), asin(), atan() і atan2() уже підтримуються.
- Явне відображення реєстрів за допомогою ключового слова 'register()'
- Перетворення цілих типів у типи з плаваючою точкою в профілях моделі шейдерів 1-3.
Для тих, хто хоче дізнатися про це більше, вам слід знати, що код проекту поширюється під LGPL 2.1, і ви можете ознайомитися з деталями цього нового випуску У наступному посиланні.
Як встановити vkd3d 1.11?
Для зацікавлений у можливості встановити vkd3d Вони повинні знати, що вони повинні скомпілювати вихідний код, тому ми повинні отримати його спочатку, важливо згадати, що Vkd3d залежить від SPIRV-Headers і Vulkan-Headers (>= 1.3.228).
Компіляція досить проста, і для цього ми повинні відкрити термінал, у якому ми збираємося ввести таку команду:
git clone https://gitlab.winehq.org/wine/vkd3d.git
Ми переходимо до папки, куди було завантажено:
cd vkd3d
І ми переходимо до компіляції, виконавши такі команди:
./configure make make install
Si ви хочете дізнатися більше про збірку з vkd3d ви можете перевірити деталі це посилання.