Проект Wine випустив Vkd3d 1.4 з реалізацією Direct3D 12

Проект Wine опублікував випуск пакету vkd3d 1.4 з реалізацією Direct3D 12, що працює через трансляцію дзвінків до графічного API Vulkan. До складу пакету входять бібліотеки libvkd3d з реалізацій Direct3D 12, libvkd3d-shader з транслятором 4 і 5 моделі шейдерів і libvkd3d-utils з функціями для спрощення портування додатків Direct3D 12, а також набір демонстраційних прикладів 3D12D2.1Ds. під ліцензією LGPLvXNUMX.

Бібліотека libvkd3d підтримує більшу частину можливостей Direct3D 12, включаючи засоби для графіки та обчислень, черги та списки команд, дескриптори та дескриптори купи, кореневі сигнатури, неупорядкований доступ, Sampler-и, сигнатури команд, кореневі константи, непряму *() та Copy*().

У libvkd3d-shader реалізована трансляція байткоду 4 та 5 моделей шейдерів у проміжне уявлення SPIR-V. Підтримуються вершинні, піксельні, тесселяційні, обчислювальні та прості геометричні шейдери, серіалізація та десеріалізація кореневої сигнатури. З шейдерних інструкцій реалізовані арифметичні, атомарні та бітові операції, оператори порівняння та управління потоком передачі даних, інструкції sample, gather та load, операції неупорядкованого доступу (UAV, Unordered Access View).

В новой версії:

  • Внесено численні поліпшення до компілятора шейдерів мовою HLSL (High-Level Shader Language), що надається починаючи з DirectX 9.0.
  • Запропоновано нову реалізацію купи дескрипторів (Descriptor Heap), що використовує Vulkan-розширення VK_EXT_descriptor_indexing.
  • Додано нову реалізацію кордонів (fence), засновану на Vulkan-розширенні K_KHR_timeline_semaphore.

Джерело: opennet.ru

Додати коментар або відгук