vkd3d 1.11 prispe z začetno podporo za prevajanje bajtne kode Direct3D, DXIL, izboljšave in več

vkd3d

vkd3d je prevajalski sloj Wine Direct3D 12 v Vulkan

Projekt Wine je pred dnevi napovedal izdaja nove različice paketa vkd3d 1.11, različica, v kateri so bile uvedene izboljšave pri uporabi razširitev vulkan, kot tudi izboljšave podpore, nove funkcije in še več.

Za tiste, ki ne poznate Vkd3d, morate vedeti, da je to paket, ki ponuja implementacijo Direct3D 12 z uporabo klicev v grafični API Vulkan in vključuje več ključnih knjižnic. Knjižnica libvkd3d vsebuje implementacije Direct3D 12, ki med drugim pokrivajo široko paleto funkcij, kot so računalništvo in grafika, čakalne vrste in seznami ukazov, identifikatorji.

Na voljo je tudi knjižnica libvkd3d-shader ki zagotavlja prevajalnik za modela senčil 4 in 5 v vmesno predstavitev SPIR-V. Ta knjižnica podpira senčila vozlišč, slikovnih pik, teselacijo, računanje in enostavne geometrijske senčnike ter serializacijo in deserializacijo korenskega podpisa.

Kaj je novega v vkd3d 1.11?

Vkd3d 1.11 uvaja a začetna podpora za prevajanje podedovane bajtne kode Direct3D v vmesni predstavitvi senčil SPIR-V, kot tudi szačetna podpora s prevajalnikom HLSL pza sestavljanje profilov učinkov.

Druga izboljšava, ki je predstavljena v tej novi različici, je eksperimentalna podpora za prevajanje DXIL (vmesni jezik DirectX) v predstavitvi SPIR-V, ki zagotavlja nove možnosti za razvoj aplikacij Direct3D. Ta funkcija zahteva prevajanje vkd3d z možnostjo 'preprocessor'-DVKD3D_SHADER_UNSUPPORTED_DXIL« in velja za eksperimentalno.

Tudi uporaba skupin in nizov deskriptorjev je bila optimizirana ko so razširitve na voljo VK_EXT_mutable_descriptor_type in VK_EXT_shader_viewport_index_layer, ki je na voljo za izboljšanje učinkovitosti dela z naborom deskriptorjev in pospešitev upodabljanja teselacije in nizov senčil vozlišč.

C je bil implementiranPodpora za standardne barve robov, kot sta črna in bela in metoda je bila implementirana GetResourceAllocationInfo1() vmesnika ID3D12Device4, kot tudi podporo za vmesnika ID3D12Device7 in ID3D12Resource2.

Podprtih je več novih funkcijskih poizvedb, vključno z D3D12_FEATURE_D3D12_OPTIONS6 a D3D12_FEATURE_D3D12_OPTIONS13.

Izvedeni so bili možnosti nove gradnje: VKD3D_SHADER_COMPILE_OPTION_FEATURE se lahko uporablja za
določite funkcije, ki so na voljo v ciljnem okolju, medtem ko VKD3D_SHADER_COMPILE_OPTION_FEATURE_INT64 označuje združljivost z
64-bitne vrste celih števil v ciljnem okolju SPIR in  VKD3D_SHADER_COMPILE_OPTION_FEATURE_FLOAT64 označuje združljivost z
64-bitni tipi s plavajočo vejico v ciljnem okolju SPIR-V.

Od druge spremembe, ki izstopajo te nove različice:

  • Posodobitve deskriptorjev se zdaj izvajajo asinhrono v notranji delovni niti, kar izboljšuje zmogljivost v aplikacijah, ki posodabljajo veliko deskriptorjev na okvir.
  • Za ciljno vrsto SPIR-V so bile dodane nove funkcije, vključno s podporo za globalno dosledne poglede dostopa izven vrstnega reda, ovire pogleda za dostop izven vrstnega reda skupine niti in drugo.
  • Podprt je vmesnik ID3D12Device7.
  • Najmanjša zahtevana različica Vulkan-Headers za to izdajo je različica
    1.3.228.
  • Podprt je vmesnik ID3D12Resource2.
  • Podprtih je več novih funkcijskih poizvedb:
    – D3D12_FEATURE_D3D12_OPTIONS6
    – D3D12_FEATURE_D3D12_OPTIONS7
    – D3D12_FEATURE_D3D12_OPTIONS8
    – D3D12_FEATURE_D3D12_OPTIONS9
    – D3D12_FEATURE_D3D12_OPTIONS10
    – D3D12_FEATURE_D3D12_OPTIONS11
    – D3D12_FEATURE_D3D12_OPTIONS12
    – D3D12_FEATURE_D3D12_OPTIONS13
  • Notranje funkcije acos(), asin(), atan() in atan2() so že podprte.
  • Izrecno preslikava registrov z uporabo ključne besede 'register()'
  • Pretvarjanje iz celih vrst v plavajočo vejico v profilih modela senčil 1-3.

Za tiste, ki želijo izvedeti več o tem, morate vedeti, da je projektna koda distribuirana pod LGPL 2.1 in si lahko ogledate podrobnosti te nove izdaje V naslednji povezavi.

Kako namestiti vkd3d 1.11?

Za me zanima namestitev vkd3d Vedeti morajo, da morajo prevesti izvorno kodo, zato jo moramo najprej pridobiti, pomembno je omeniti, da je Vkd3d odvisen od SPIRV-Headers in Vulkan-Headers (>= 1.3.228).

Prevajanje je precej preprosto in za to moramo odpreti terminal, v katerega bomo vnesli naslednji ukaz:

git clone https://gitlab.winehq.org/wine/vkd3d.git

Nadaljujemo z vstopom v mapo, v katero je bil prenesen z:

cd vkd3d

In nadaljujemo s prevajanjem z izvajanjem naslednjih ukazov:

./configure
make
make install

Si želite izvedeti več o kompilaciji vkd3d si lahko ogledate podrobnosti to povezavo.