El proyecto viini paljastettiin Muutama päivä sitten käynnistää uuden version vkd3d 1.7 paketti Direct3D 12 -toteutuksella, joka toimii Vulkan-grafiikkasovellusliittymän kutsujen kääntämisen kautta.
El paquete sisältää libvkd3d-kirjastot Direct3D 12 -toteutuksella, libvkd3d-shader with shader model translate 4 ja 5 ja libvkd3d-utils toiminnoilla, jotka yksinkertaistavat Direct3D 12 -sovellusten siirtoa, sekä joukko demoja, mukaan lukien glxgears-portti Direct3D 12:een.
Kirjasto libvkd3d tukee useimpia Direct3D 12 -ominaisuuksia, mukaan lukien grafiikka ja laskenta, komentoluettelot ja -jonot, kuvaajat ja kasan kuvaukset, juuriallekirjoitukset, järjestämätön pääsy, näytteet, komentoallekirjoitukset, juurivakiot, epäsuora esitys, Clear*()- ja Copy*()-menetelmät.
Sen lisäksi libvkd3d-shader toteuttaa tavukoodien 4 ja 5 käännöksen varjostusmalleista SPIR-V:n väliesityksessä. Tukee vertexiä, pikseliä, tessellaatiota, laskentaa ja yksinkertaisia geometrian varjostimia, juuriallekirjoituksen serialisointia ja deserialisointia.
Varjostuskäskyistä toteutetaan aritmeettiset, atomi- ja bittioperaatiot, vertailu- ja tietovirran ohjausoperaattorit, näyte-, keräys- ja latauskäskyt, out-of-order access -toiminnot (UAV, out-of-order access view) .
Vkd3d 1.7:n tärkeimmät uudet ominaisuudet
Tässä uudessa versiossa, joka esitetään vkd3d 1.7:stä, erottuu éJatkoin työtä HLSL Shader -kääntäjän parantamiseksi (High-Level Shader Language), sekä lisäämällä mahdollisuus kutsua käyttäjän määrittämiä toimintoja ja käyttää taulukoita käyttäjän määrittämien funktioiden parametreina.
Toinen uudessa versiossa erottuvista muutoksista on huomattavasti parantunut profiilien tuki Shader malli Direct3D 1/2/3, Lisätty myös alustava tuki matalan tarkkuuden liukulukutyypeille, kuten min16float.
On myös korostettu, että lisätty tuki SV_DispatchThreadID-, SV_GroupID- ja SV_GroupThreadID-parametreille ja että julkinen API on lisätty jäsentämään (vkd3d_shader_parse_dxbc) ja sarjottamaan (vkd3d_shader_serialize_dxbc) DXBC-binaaridataa.
Niistä muut erottuvat muutokset uuden version:
- Tuki Load()-tekstuuriobjektin valinnaiselle offset-parametrille
menetelmä. - Tuki sisäiselle funktiolle all().
- Tuki etäisyyden () luontaiselle funktiolle.
- Tuki sisäisille funktioille exp() ja exp2().
- Tuki sisäiselle frac()-funktiolle.
- Tuki sisäiselle lit()-funktiolle.
- Tuki refleksi()-sisäiselle funktiolle.
- Tuki sisäisille funktioille sin() ja cos().
- Tuki sisäiselle smoothstep()-funktiolle.
- Tuki sisäisille sqrt()- ja rsqrt()-funktioille.
- Tuki sisäiselle step()-funktiolle.
- Tuki sisäiselle funktiolle transpose().
- Tuki float- ja dword-tiedon muunnelmille, joissa kirjainkokoa ei erotella
tyyppi - Osittainen tuki pienimmän tarkkuuden tietotyypeille, kuten "min16float". Nämä tulkitaan tällä hetkellä tavallisiksi vastineiksi.
Parannettu jatkuvan etenemisen tuki, erityisesti jatkuvassa etenemisessä swizzles-välillä. - Käännösvaihtoehtoa VKD3D_SHADER_COMPILE_OPTION_WRITE_TESS_GEOM_POINT_SIZE voidaan käyttää määrittämään, tuleeko Vulkan-ympäristöihin kohdistavien SPIR-V-varjostimien kirjoittaa pistekoot geometria- ja tessellaatiovarjostimille, jos niitä ei ole määritetty, pistekoot kirjoitetaan.
lopuksi, Niille, jotka ovat kiinnostuneita tietämään asiasta lisää, heidän pitäisi tietää, että projektin koodi on lisensoitu LGPLv2.1:llä ja että he voivat tutustua tämän uuden julkaisun yksityiskohtiin Seuraavassa linkissä.
Kuinka asentaa vkd3d 1.7?
Varten kiinnostunut vkd3d:n asentamisesta Heidän täytyy tietää, että heidän on käännettävä lähdekoodi, joten meidän on hankittava se ensin, on tärkeää mainita, että Vkd3d riippuu SPIRV-Headeristä ja Vulkan-Headeristä (>= 1.2.139).
Käännöksen suorittamiseksi meidän on avattava pääte ja kirjoitamme siihen seuraavan komennon:
git clone https://gitlab.winehq.org/wine/vkd3d.git
Kun tämä on tehty, siirrymme äskettäin ladatuun hakemistoon seuraavasti:
cd vkd3d
Ja jatkamme kääntämistä suorittamalla seuraavat komennot:
./configure make make install
Si haluat tietää lisää kokoelmasta vkd3d:stä voit tarkistaa yksityiskohdat tämä linkki