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

Проект Wine опублікував випуск пакету vkd3d 1.5 з реалізацією 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. У тому числі в структурах і масивах покращено підтримку об'єктних типів HLSL, таких як Texture2D, додано підтримку вбудованих функцій dot(), ldexp() і lerp(), для 4 і 5 моделей шейдерів додано підтримку логічних операторів «and», «or» та «not», а також можливість приведення булевих типів.
  • Реалізовано опцію VKD3D_SHADER_COMPILE_OPTION_TYPED_UAV для завантаження неупорядкованого представлення доступу (UAV) для багатокомпонентних форматів SPIR-V (DXGI_FORMAT).

Джерело: opennet.ru

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