vkd3d 1.2 має покращення сумісності, затінення тощо

Проект Wine випустив нову версію пакета vkd3d 1.2 з реалізація Direct3D 12 який працює, перекладаючи виклики до графічного API Vulkan.

Ця нова версія vkd3d 1.2 містить різні вдосконалення, але з основних, що виділяються, є наявність libvkd3d-шейдера як публічної бібліотеки, то підтримка шейдера тесселяція, а також підтримка потоку на виході.

Пакунокі включає бібліотеки libvkd3d з реалізаціями Direct3D 12, libvkd3d-шейдер з перекладачем шейдерів моделі 4 та 5 та libvkd3d-utils з функціями для спрощення міграції програм Direct3D 12, а також набором демонстраційних версій, включаючи порт glxgears до Direct3D 12. Код проекту поширюється ліцензовано під LGPLv2.1.

Бібліотека libvkd3d підтримує більшість функцій Direct3D 12, включаючи графічні та обчислювальні функції, списки команд та черги, дескриптори купи та дескриптори, кореневі підписи, невпорядкований доступ, пробовідбірники, підписи команд, кореневі константи, непряме представлення тощо.

Libvkd3d-шейдер реалізує переклад байт-кодів 4 і 5 моделей затінення в проміжному поданні SPIR-V. Підтримуються вершини, пікселі, тесселяція, обчислювальні та прості геометричні шейдери, серіалізація кореневих підписів та десеріалізація.

Інструкції шейдера включають арифметичні, атомні та побітові операції, оператори контролю та порівняння потоків даних, інструкції з вибірки, збору та завантаження, операції з невпорядкованим доступом (БПЛА, подання з невпорядкованим доступом).

На сучасному етапі розробки не всі виклики Direct3D 12 реалізовані і тести в основному проводились на наборі демонстраційних програм. Випуск не включає такі функції в розробці, як підтримка складних геометричних шейдерів та тесселяції, а також низку вдосконалень, пов’язаних з основними методами та шейдерами Direct3D 12. Ці функції будуть запропоновані в наступному випуску.

Основні нові можливості Vkd3d 1.2

Найважливішими змінами, які представлені в новій версії, є Доступність бібліотеки шейдерів libvkd3d для використання у сторонніх проектах, оскільки Були додані різні функції Direct3D 12, такі як:

  • Багатовибіркова.
  • Зарезервовані ресурси.
  • Швидкість передачі даних про екземпляри.
  • API "Приватні дані" для всіх інтерфейсів.
  • Зіставлення компонентів подання ресурсу шейдера.
  • VK_KHR_draw_indirect_count розширення.
  • Присудок / умовне подання.
  • Рендеринг глибини без піксельного шейдера.
  • Виріз глибини. Для цього потрібне розширення VK_EXT_depth_clip_enable.
  • Відкиньте растеризатор.
  • Змішування з двома джерелами.
  • Картування розміщених ресурсів.
  • Методи ReadFromSubresource () та WriteToSubresource () ID3D12Resource.
  • Одночасний доступ до ресурсів із декількох черг.
  • Нульові види. Тобто перегляди без базового ресурсу.
  • Ще кілька запитів щодо підтримки функцій.

Крім цього, Також виділена додаткова підтримка для перетворення, серіалізації та десеріалізації підписів root (vkd3d_serialize_versioned_root_signature () та vkd3d_create_versioned_root_signature_deserializer (), а також підтримка потокового виводу.

Ще однією зміною, яка виділяється, є реалізація змінної середовища: VKD3D_CONFIG для встановлення параметрів зміни поведінки libvkd3d та VKD3D_VULKAN_DEVICE, щоб замінити пристрій для API Vulkan.

Крім того додана підтримка інструкцій щодо затінення bufinfo, eval_centroid, eval_sample_index, ld2ms, sample_b, sample_d, sample_info, samplepos та попередня підтримка шейдерів моделі 5.1.

А також підтримка цільових середовищ OpenGL SPIR-V. Це дозволяє SPIR-V, вироблений libvkd3d-шейдером, використовувати з GL_ARB_gl_spirv. Це включає підтримку атомних лічильників OpenGL та комбінованих пробовідбірників.

В кінці кінців якщо ви хочете дізнатися більше про це про цю нову версію ви можете переглянути повний перелік змін У наступному посиланні.

Як встановити vkd3d на Linux?

Для тих, хто зацікавлений у можливості встановити vkd3d у своїй системі, вони повинні отримати вихідний код і продовжити компіляцію, хоча для практичних цілей або для початківців вони можуть спробувати цю бібліотеку без особливих зусиль. Для цього їм потрібно лише встановити lutris та в його конфігураціях.

Що стосується тих, хто зацікавлений у компіляції, вони повинні отримати код із:

git clone git://source.winehq.org/git/vkd3d.git/
./autogen.sh
./configure
make
../vkd3d/configure --build=i686-pc-linux-gnu "CPPFLAGS=-m32" "LDFLAGS=-m32"

Нарешті, шари Vulkan повинні бути включені:

export VK_INSTANCE_LAYERS=VK_LAYER_LUNARG_standard_validation
VKD3D_CONFIG=vk_debug


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.