vkd3d 1.2 sisältää yhteensopivuusparannuksia, varjostusta ja muuta

Wine-projekti on julkaissut uuden version vkd3d 1.2 -paketista , jossa on Direct3D 12 -toteutus , joka toimii kääntämällä kutsut Vulkan-grafiikkarajapintaan.

Tämä uusi vkd3d 1.2 -versio sisältää useita parannuksia, mutta tärkeimpiä niistä ovat libvkd3d-shaderin saatavuus julkisena kirjastona , tuki tessellaatioshadereille sekä tuki suoratoistoulostulolle.

Paketti sisältää libvkd3d-kirjaston Direct3D 12 -toteutuksineen, libvkd3d-shader-kirjaston mallien 4 ja 5 shader-kääntäjällä sekä libvkd3d-utils-kirjaston funktioilla, jotka yksinkertaistavat Direct3D 12 -sovellusten migraatiota, sekä joukon demoja, mukaan lukien glxgears-portin Direct3D 12:een. Projektikoodi jaetaan LGPLv2.1-lisenssillä.

libvkd3d-kirjasto tukee useimpia Direct3D 12 -ominaisuuksia, mukaan lukien grafiikka- ja laskentafunktiot, komentoluettelot ja -jonot, deskriptorit ja kekodeskriptorit, juuriallekirjoitukset, järjestämätön käyttö, samplerit, komentoallekirjoitukset, juurivakiot, epäsuora renderöinti jne.

Libvkd3d-shader toteuttaa shader-mallien tavukoodien 4 ja 5 muuntamisen SPIR-V-väliesitykseksi. Tuettuja ovat vertiksit, pikselit, tessellaatio, yksinkertaiset ja laskennalliset geometriset shaderit, juuriallekirjoituksen serialisointi ja deserialisointi.

Varjostuskäskyihin kuuluvat aritmeettiset, atomi- ja bitti bitiltä -operaatiot, tietovirran ohjaus- ja vertailuoperaattorit, näytteenotto-, keräys- ja latauskäskyt sekä järjestämättömät käyttöoperaatiot (UAV, Unordered Access View).

Tässä kehitysvaiheessa kaikkia Direct3D 12 -kutsuja ei ole toteutettu , ja testaus suoritettiin pääasiassa joukolla demosovelluksia. Tämä julkaisu ei sisällä kehitteillä olevia ominaisuuksia, kuten tukea tessellaation ja monimutkaisen geometrian varjostimille, eikä useita varjostimiin ja Direct3D 12 -ydinmetodeihin liittyviä parannuksia. Nämä ominaisuudet tarjotaan tulevassa julkaisussa.

Vkd3d 1.2: n tärkeimmät uudet ominaisuudet

Yksi tärkeimmistä muutoksista uudessa versiossa on libvkd3d-shader-kirjaston saatavuus kolmannen osapuolen projekteissa, sillä useita Direct3D 12 -ominaisuuksia on lisätty, kuten:

  • Moninäyte.
  • Varatut resurssit.
  • Ilmentymien tiedonsiirtonopeudet
  • "Yksityiset tiedot" -sovellusliittymä kaikille rajapinnoille.
  • Shader-resurssinäkymäkomponenttien kartoitukset
  • VK_KHR_draw_indirect_count-laajennus.
  • Predikaatti / ehdollinen esitys.
  • Syvyys renderointi ilman pikselivarjostinta.
  • Syvyysleikkaus. Tämä edellyttää VK_EXT_depth_clip_enable-laajennusta.
  • Hävitä rasterointilaite.
  • Kaksoislähteen sekoitus.
  • Sijoitettujen resurssien kartoitus.
  • ReadFromSubresource () - ja WriteToSubresource () ID3D12Resource -menetelmät.
  • Samanaikainen pääsy monijoniresursseihin.
  • Nullat näkymät. Eli näkymät ilman taustalla olevaa resurssia.
  • Useat muut ominaisuustukikyselyt.

Tämän lisäksi huomionarvoista on lisätty tuki juuriallekirjoitusten muuntamiselle, serialisoinnille ja serialisoinnin poistolle (vkd3d_serialize_versioned_root_signature() ja vkd3d_create_versioned_root_signature_deserializer()) , samoin kuin suoratoistolähdön tuki.

Toinen merkittävä muutos on ympäristömuuttujien käyttöönotto: VKD3D_CONFIG asettaa asetuksia libvkd3d:n toiminnan muuttamiseksi ja VKD3D_VULKAN_DEVICE ohittaa laitteen Vulkan API:ssa.

Lisäksi lisättiin tuki varjostuskäskyille bufinfo, eval_centroid, eval_sample_index, ld2ms, sample_b, sample_d, sample_info, samplepos sekä alustava tuki mallin 5.1 varjostimille.

Ja myös tuki OpenGL SPIR-V -ympäristöille. Tämä sallii libvkd3d-shaderin tuottaman SPIR-V: n käytön GL_ARB_gl_spirv: n kanssa. Tähän sisältyy tuki OpenGL-atomilaskureille ja yhdistetyille näytteenottimille.

Lopuksi, jos haluat lisätietoja tästä uudesta versiosta, voit tutustua täydelliseen muutosluetteloon seuraavasta linkistä.

Kuinka asentaa vkd3d Linuxiin?

Niille, jotka ovat kiinnostuneita asentamaan vkd3d: n järjestelmäänsä, heidän on hankittava lähdekoodi ja jatkettava kokoamista, vaikka käytännöllisistä syistä tai aloittelijoille he voivat kokeilla tätä kirjastoa ilman paljon vaivaa. Tätä varten heidän on asennettava vain lutris ja sen kokoonpanoissa.

Mitä tulee kääntämiseen kiinnostuneisiin, heidän on hankittava koodi:

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

Lopuksi Vulkan-kerrokset on otettava käyttöön:

export VK_INSTANCE_LAYERS=VK_LAYER_LUNARG_standard_validation
VKD3D_CONFIG=vk_debug


Lisää ensisijaiseksi lähteeksi Googlessa