Wine loyihasi Direct3D 1.3 amalga oshirilishi bilan Vkd3d 12 ni chiqardi

Bir yarim yillik rivojlanishdan so'ng, Wine loyihasi Vulkan grafik API-ga qo'ng'iroqlarni uzatish orqali ishlaydigan Direct3D 1.3 ilovasi bilan vkd3d 12 to'plamini nashr etdi. To'plamga Direct3D 3 ilovalari bilan libvkd12d kutubxonalari, 3 va 4 shader modellari tarjimoniga ega libvkd5d-shader va Direct3D 3 ilovalarini ko'chirishni soddalashtirish funktsiyalariga ega libvkd12d-utils, shuningdek portni o'z ichiga olgan demo-misollar to'plami kiradi. of glxgears Direct3D 12. Loyiha kodi LGPLv2.1 ostida litsenziyalangan holda tarqatiladi.

Libvkd3d kutubxonasi koʻpgina Direct3D 12 funksiyalarini qoʻllab-quvvatlaydi, jumladan, grafik va hisoblash vositalari, navbatlar va buyruqlar roʻyxati, tutqichlar va yigʻish tutqichlari, ildiz imzolari, tartibsiz kirish, Namuna oluvchilar, buyruq imzolari, ildiz konstantalari, bilvosita renderlash, tozalash usullari *( ) va Nusxalash*().

Libvkd3d-shaderda 4 va 5 shader modellarining bayt-kodlarini oraliq SPIR-V tasviriga tarjima qilish amalga oshiriladi. Vertex, piksel, tessellation, hisoblash va oddiy geometriya shaderlari, ildiz imzosini ketma-ketlashtirish va seriyadan chiqarish qo'llab-quvvatlanadi. Shader ko'rsatmalariga arifmetik, atom va bit operatsiyalari, taqqoslash va ma'lumotlar oqimini boshqarish operatorlari, namuna olish, yig'ish va yuklash ko'rsatmalari, tartibsiz kirish operatsiyalari (UAV, tartibsiz kirish ko'rinishi) kiradi.

Vkd3d 1.3-dagi eng muhim yangiliklar orasida:

  • DirectX 9.0 dan boshlab taqdim etilgan HLSL (High-Level Shader Language) da shaderlarni kompilyatsiya qilish va qayta ishlash uchun dastlabki yordam qo'shildi.
  • 5.1 shader modelida aniqlangan deskriptorlar massivlari uchun qo‘shimcha qo‘llab-quvvatlash.
  • Sheyderlarda ikki marta aniqlikdagi suzuvchi nuqta operatsiyalarini, tessellation shaderlari uchun bilvosita manzillashni, shaderlardan trafaretlarni eksport qilishni, "aniq" shader modifikatorini va xotira resurslari uchun global to'siqlarni qo'llab-quvvatlaydi.
  • Direct3D shaderlarini bayt-koddan montaj ko'rinishiga ajratish imkoniyati amalga oshirildi.
  • Direct3D 3, 1 va 2 shader modellarida ishlatiladigan eski Direct3D bayt-kod formatini tahlil qilish uchun qo'shilgan yordam.
  • libvkd3d Direct3D 12 funksiyalarini, masalan, ildiz imzolari, tartibsiz ko'rinish hisoblagichlari, chiqish uchun mantiqiy birlashtirish operatorlari va mirror_once teksturali manzillash rejimini qo'shadi. vkd3d_host_time_domain_info tuzilishi qo‘shildi.

Manba: opennet.ru

a Izoh qo'shish