vkd3d, és la capa de traducció de Direct3D 12 a Vulkan de Wine
El projecte Wine va donar a conèixer fa pocs dies el llançament de la nova versió del paquet vkd3d 1.11, versió en la qual s'han introduït millores en l'ús d'extensions vulkan, així com millores de suport, noves funcions i més.
Per als que desconeixen de Vkd3d, han de saber que aquest és un paquet que ofereix una implementació de Direct3D 12 utilitzant trucades a l'API de gràfics Vulkan i inclou diverses biblioteques clau. La biblioteca libvkd3d conté implementacions de Direct3D 12, cobrint una àmplia gamma de funcions com ara informàtiques i gràfiques, cues i llistes d'ordres, identificadors, entre d'altres.
També es proporciona la biblioteca libvkd3d-shader la qual ofereix un traductor per a models d'ombrejador 4 i 5 a una representació SPIR-V intermèdia. Aquesta biblioteca suporta ombrejadors de vèrtexs, píxels, tessel·lació, computació i geometria simple, així com serialització i deserialització de firmes root.
Què hi ha de nou a vkd3d 1.11?
Vkd3d 1.11 introdueix un suport inicial per compilar codi de bytes Direct3D heretat en una representació intermèdia d'ombrejadors SPIR-V, així com també el soport inicial amb el compilador HLSL pper compilar perfils d'efectes.
Una altra de les millores que es presenta d'aquesta nova versió és el suport experimental per compilar DXIL (llenguatge intermedi DirectX) a la representació SPIR-V, proporcionant noves opcions per al desenvolupament d'aplicacions Direct3D. Aquesta característica requereix compilar vkd3d amb l'opció de preprocessador '-DVKD3D_SHADER_UNSUPPORTED_DXIL' i es considera experimental.
també s'ha optimitzat l'ús de grups i conjunts de descriptors quan estan disponibles les extensions VK_EXT_mutable_descriptor_type i VK_EXT_shader_viewport_index_layer, que es proporciona per millorar l'eficiència del treball amb el grup de descriptors i accelerar la representació de matrius d'ombrejadors de vèrtexs i tessel·lació.
S'ha implementat la compatibilitat amb colors de vora estàndard, com a blanc i negre i s'ha implementat el mètode GetResourceAllocationInfo1() de la interfície ID3D12Device4, així com el suport per a les interfícies ID3D12Device7 i ID3D12Resource2.
S'admeten diverses consultes de funcions noves, incloent-hi D3D12_FEATURE_D3D12_OPTIONS6 a D3D12_FEATURE_D3D12_OPTIONS13.
S'han implementat noves opcions de compilació: VKD3D_SHADER_COMPILE_OPTION_FEATURE es pot utilitzar per
especificar les funcions disponibles a l'entorn de destinació, mentre que VKD3D_SHADER_COMPILE_OPTION_FEATURE_INT64 indica compatibilitat amb
els tipus d'enters de 64 bits a l'entorn de destinació SPIR i VKD3D_SHADER_COMPILE_OPTION_FEATURE_FLOAT64 indica compatibilitat amb
tipus de punt flotant de 64 bits a l'entorn de destinació SPIR-V.
Dels altres canvis que es destaquen d'aquesta nova versió:
- Les actualitzacions de descriptors ara passen de forma asincrònica en un fil de treball intern, cosa que millora el rendiment en aplicacions que actualitzen molts descriptors per quadre.
- S'han afegit noves característiques per al tipus d'objectiu SPIR-V, incloent-hi suport per a vistes d'accés desordenat globalment coherents, barreres de visualització d'accés desordenat de grups de subprocessos i més.
- S'admet la interfície ID3D12Device7.
- La versió mínima requerida de Vulkan-Headers per a aquesta versió és la versió
1.3.228. - S'admet la interfície ID3D12Resource2.
- S'admeten diverses consultes de funcions noves:
– 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 - Les funcions intrínseques acos(), asin(), atan() i atan2() ja són suportades.
- Assignació de registre explícita usant la paraula clau 'register()'
- Conversió de tipus sencers a punts flotants en perfils del model d'ombrejador 1-3.
Per als interessats a poder conèixer més sobre això, heu de saber que el codi del projecte es distribueix amb llicència sota LGPL 2.1 i podeu consultar els detalls d'aquest nou llançament en el següent enllaç.
Com instal·lar vkd3d 1.11?
Per als proveïdors de software: XNUMX-XNUMX-XNUMX. interessats en poder instal·lar vkd3d han de saber que han de realitzar la compilació del codi font, per la qual cosa primer ho hem d'obtenir, és important esmentar que Vkd3d depèn de SPIRV-Headers i Vulkan-Headers (>= 1.3.228).
La compilació és força senzilla i per això hem d'obrir una terminal en la qual teclejarem la següent ordre:
git clone https://gitlab.winehq.org/wine/vkd3d.git
Procedim a ingressar a la carpeta on es va descarregar amb:
cd vkd3d
I procedim a realitzar la compilació executant les següents ordres:
./configure make make install
Si vols conèixer més sobre això sobre la compilació de vkd3d pots consultar els detalls a aquest enllaç.