Projektet vin avtäckts För några dagar sedan lanserades den nya versionen av vkd3d 1.7-paket med en Direct3D 12-implementering som fungerar genom översättning av anrop till Vulkans grafik-API.
El paquete inkluderar libvkd3d-bibliotek med Direct3D 12-implementationer, libvkd3d-shader med shader-modell översätt 4 och 5, och libvkd3d-utils med funktioner för att förenkla migreringen av Direct3D 12-applikationer, samt en uppsättning demos, inklusive en port av glxgears till Direct3D 12.
Biblioteket libvkd3d stöder de flesta Direct3D 12-funktioner, inklusive grafik och beräkningar, kommandolistor och köer, deskriptorer och heapdeskriptorer, rotsignaturer, oordnad åtkomst, sampel, kommandosignaturer, rotkonstanter, indirekt representation, Clear*() och Copy*() metoder.
Förutom det libvkd3d-shader implementerar översättning av bytekod 4 och 5 av skuggningsmodellerna i en mellanrepresentation av SPIR-V. Stöder vertex, pixel, tessellation, beräkning och enkel geometriskuggning, rotsignaturserialisering och deserialisering.
Aritmetiska, atomära och bitoperationer, jämförelse- och dataflödeskontrolloperatörer, sampla, samla in och ladda instruktioner, out-of-order access-operationer (UAV, out-of-order access view) implementeras från skugginstruktioner.
De viktigaste nya funktionerna i vkd3d 1.7
I denna nya version som presenteras av vkd3d 1.7 sticker ut éJag fortsatte arbetet med att förbättra HLSL shader kompilatorn (High-Level Shader Language), samt lägga till möjligheten att anropa användardefinierade funktioner och använda arrayer som parametrar för användardefinierade funktioner.
En annan av förändringarna som sticker ut i den nya versionen är avsevärt förbättrat stöd för profiler shader modell Direct3D 1/2/3, Lade också till initialt stöd för flyttalstyper med låg precision som min16float.
Det lyfts också fram lagt till stöd för parametrarna SV_DispatchThreadID, SV_GroupID och SV_GroupThreadID och att ett offentligt API har lagts till för att analysera (vkd3d_shader_parse_dxbc) och serialisera (vkd3d_shader_serialize_dxbc) DXBC binära data.
Av andra förändringar som sticker ut av den nya versionen:
- Stöd för den valfria "offset"-parametern för texturobjektet Load()
metod. - Stöd för den inneboende funktionen all().
- Stöd för den inneboende funktionen distance().
- Stöd för de inneboende funktionerna exp() och exp2().
- Stöd för den inneboende funktionen frac().
- Stöd för den inneboende lit()-funktionen.
- Stöd för den inneboende funktionen reflect().
- Stöd för de inneboende funktionerna sin() och cos().
- Stöd för den inneboende funktionen smoothstep().
- Stöd för inneboende sqrt()- och rsqrt()-funktioner.
- Stöd för den inneboende funktionen step().
- Stöd för den inneboende funktionen transpose().
- Stöd för skiftlägesokänsliga varianter av float- och dword-data
Typ - Partiellt stöd för datatyper med minsta precision som "min16float". Dessa tolkas för närvarande som deras vanliga motsvarigheter.
Förbättrat stöd för konstant förökning, i synnerhet för konstant förökning via swizzles. - Kompileringsalternativet VKD3D_SHADER_COMPILE_OPTION_WRITE_TESS_GEOM_POINT_SIZE kan användas för att specificera om SPIR-V-skuggningar som riktar sig till Vulkan-miljöer ska skriva punktstorlekar för geometri och tessellationsskuggningar om de inte anges, punktstorlekarna kommer att skrivas.
Slutligen, För den som är intresserad av att veta mer om det, bör de veta att projektkoden är licensierad under LGPLv2.1 och att de kan läsa detaljerna i denna nya version I följande länk.
Hur installerar jag vkd3d 1.7?
För intresserad av att kunna installera vkd3d De måste veta att de måste kompilera källkoden, så vi måste skaffa den först, det är viktigt att nämna att Vkd3d är beroende av SPIRV-Headers och Vulkan-Headers (>= 1.2.139).
För att utföra kompileringen måste vi öppna en terminal och i den skriver vi följande kommando:
git clone https://gitlab.winehq.org/wine/vkd3d.git
När detta är gjort fortsätter vi att gå in i den nyligen nedladdade katalogen med:
cd vkd3d
Och vi fortsätter att kompilera genom att utföra följande kommandon:
./configure make make install
Si du vill veta mer om sammanställningen av vkd3d kan du kontrollera detaljerna i den här länken