Vīna projekts izlaida Vkd3d 1.2 ar Direct3D 12 ieviešanu

Vīna projekts publicēti pakotnes izlaišana vkd3d 1.2 ar Direct3D 12 ieviešanu, kas darbojas, izmantojot apraides zvanus uz Vulkan grafikas API. Paketē ietilpst libvkd3d bibliotēkas ar Direct3D 12 implementācijām, libvkd3d-shader ar ēnotāju modeļu 4 un 5 tulkotāju un libvkd3d-utils ar funkcijām Direct3D 12 lietojumprogrammu pārnešanas vienkāršošanai, kā arī demonstrācijas piemēru kopa, ieskaitot portu. glxgears uz Direct3D 12. Projekta kods izplata licencēts saskaņā ar LGPLv2.1.

libvkd3d bibliotēka atbalsta Lielākā daļa Direct3D 12 līdzekļu, tostarp grafikas un skaitļošanas iespējas, rindas un komandu saraksti, rokturi un kaudzes rokturi, saknes paraksti, ārpuskārtas piekļuve, paraugi, komandu paraksti, saknes konstantes, netiešā renderēšana, Clear*() metodes un Kopēt*().

Programmā libvkd3d-shader ir realizēta 4. un 5. ēnotāju modeļu baitkoda tulkošana starpposma SPIR-V attēlojumā. Tiek atbalstīti virsotņu, pikseļu, teselācijas, aprēķinu un vienkāršu ģeometrijas ēnotāji, saknes parakstu serializācija un deserializācija. Shader instrukcijas ietver aritmētiskās, atomu un bitu darbības, salīdzināšanas un datu plūsmas vadības operatorus, izlases, apkopošanas un ielādes instrukcijas, nekārtotas piekļuves darbības (UAV, Unordered Access View).

Starp nozīmīgākajiem jauninājumiem Vkd3d 1.2 versijā ir izcelts:

  • Libvkd3d-shader bibliotēka ir gatava lietošanai trešo pušu projektos.
  • Tesselācijas ēnotāja atbalsts.
  • Atbalsts saknes parakstu konvertēšanai, serializācijai un deserializācijai (vkd3d_serialize_versioned_root_signature() un vkd3d_create_versioned_root_signature_deserializer()).
  • Atbalsts straumēšanas izvadei.
  • Daudzu iepriekš nepieejamu Direct3D 12 funkciju ieviešana, tostarp atbalsts vairāku iztveršanai, resursu rezervēšana,
    netieša indeksēta renderēšana, dziļuma renderēšana bez pikseļu ēnotājiem, vienlaicīga piekļuve resursiem no dažādām komandu rindām, nulles skati.

  • Pievienoti vides mainīgie: VKD3D_CONFIG, lai iestatītu opcijas, lai mainītu libvkd3d darbību, un VKD3D_VULKAN_DEVICE, lai ignorētu ierīci Vulkan API.
  • Pievienots atbalsts bufinfo shadera instrukcijām,
    eval_centroid,
    eval_sample_index,
    ld2ms,
    paraugs_b,
    sample_d,
    sample_info,
    samplepos.

Avots: opennet.ru

Pievieno komentāru