Wine loyihasi Direct3D 1.7 ilovasi bilan Vkd3d 12 ni nashr etdi

Wine loyihasi Vulkan grafik API-ga qo'ng'iroqlarni translyatsiya qilish orqali ishlaydigan Direct3D 1.7 ilovasi bilan vkd3d 12 paketini nashr etdi. Paketga 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, namunalar, buyruq imzolari, ildiz konstantalari, bilvosita renderlash, tozalash usullari *( ) va Nusxalash*(). libvkd3d-shaderda 4 va 5 shader modellarining bayt-kodlarini oraliq SPIR-V ko'rinishiga tarjima qilish amalga oshiriladi. Verteks, piksel, tessellation, hisoblash va oddiy geometriya shaderlarini, ildiz imzosini ketma-ketlashtirish va seriyadan chiqarishni qo'llab-quvvatlaydi. 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.

Yangi versiyada:

  • HLSL (High-Level Shader Language) da shader kompilyatorini takomillashtirish ishlari davom ettirildi:
    • Maxsus funktsiyalarga qo'ng'iroq qilish va massivlarni maxsus funktsiyalarga parametr sifatida ishlatish imkoniyati qo'shildi.
    • SV_DispatchThreadID, SV_GroupID va SV_GroupThreadID parametrlari uchun qoʻshimcha qoʻllab-quvvatlash.
    • All(), distance(), exp(), exp2(), frac(), lit(), reflect(), sin(), cos(), smoothstep(), sqrt(), rsqrt funksiyalari qo‘shildi. () , step(), transpose().
    • "min16float" kabi past aniqlikdagi suzuvchi nuqta turlari uchun dastlabki yordam qo'shildi.
  • Direct3D 1/2/3 shader modeli profillarini qo'llab-quvvatlash sezilarli darajada yaxshilandi.
  • DXBC ikkilik maʼlumotlarini tahlil qilish (vkd3d_shader_parse_dxbc) va serializatsiya (vkd3d_shader_serialize_dxbc) uchun umumiy API qoʻshildi.

Manba: opennet.ru

a Izoh qo'shish