Projekt Wine har slÀppt versionen av paketet vkd3d 1.11 med implementering av Direct3D 12, som fungerar genom att översÀtta anrop till grafik-API:et Vulkan. Paketet innehÄller biblioteken libvkd3d med implementering av Direct3D 12, libvkd3d-shader med översÀttare för shadermodeller 4 och 5 samt libvkd3d-utils med funktioner för att förenkla porteringen av Direct3D 12-applikationer, samt ett antal demonstrationsexempel, inklusive porten av glxgears till Direct3D 12. Projektets kod distribueras under LGPLv2.1-licensen.
Biblioteket libvkd3d stöder det flesta funktioner av Direct3D 12, inklusive verktyg för grafik och berÀkningar, köer och kommandolistor, deskriptorer och heap-deskriptorer, rotach-signaturer, oordnad Ätkomst, samplrar, kommandosignaturer, rotkonstanter, indirekt rendering, Clear*()-metoder och Copy*(). I libvkd3d-shader har översÀttningen av shaderbytekod för modellerna 4 och 5 implementerats till det intermediÀra formatet SPIR-V. Stöd för vertex-, pixel-, tessellering-, compute- och passagerade geometriska shaders, samt serialisering och deserialisering av rotach-signatur. FrÄn shaderinstruktionerna har aritmetiska, atomÀra och bitoperationer, jÀmförelse- och flödeskontrolloperatorer, sample-, gather- och load-instruktioner, samt operationer för oordnad Ätkomst (UAV, Unordered Access View) implementerats.
I den nya versionen:
- Inledande stöd för kompilering av gammal Direct3D bytekod till det intermediÀra representationssystemet för shaders SPIR-V har lagts till.
- Inledande stöd för kom pilering av effektprofiler för Direct3D ("fx_2_0", "fx_4_0", "fx_4_1" och "fx_5_0") har lagts till i HLSL-kompilatorn.
- Experimentellt stöd för kompilering av det intermediÀra sprÄket DXIL (DirectX Intermediate Language) till SPIR-V-representation och assemblerinstruktioner för Direct3D shaders har lagts till.
- HLSL har fÄtt stöd för profilerna "fx_2_0", "fx_4_0", "fx_4_1" och "fx_5_0", med implementering av inbyggda funktioner som acos(), asin(), atan() och atan2(), samt stöd för "Buffer"-resurser.
- En optimering har lagts till som uppdaterar deskriptorer i asynkront lÀge, vilket kan leda till snabbare applikationer som uppdaterar mÄnga deskriptorer i varje bildruta.
- AnvÀndningen av Vulkan-utvidgningarna VK_EXT_mutable_descriptor_type och VK_EXT_shader_viewport_index_layer har sÀkerstÀllts för att förbÀttra effektiviteten vid arbete med deskriptorpooler och pÄskynda rendering av vertex- och tessellering shaders.
- Stödet för grÀnssnitten ID3D12Device7 och ID3D12Resource2 har lagts till. Metoden GetResourceAllocationInfo1() har lagts till i grÀnssnittet ID3D12Device4.
- Stödet för grÀnssnitten D3DReflect() och D3DDisassemble() har lagts till.
- VerifieringsfrÄgor för 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 och D3D12_FEATURE_D3D12_OPTIONS13 har implementerats.
- Nya kompilationsalternativ har lagts till: VKD3D_SHADER_COMPILE_OPTION_FEATURE, VKD3D_SHADER_COMPILE_OPTION_FEATURE_INT64, VKD3D_SHADER_COMPILE_OPTION_FEATURE_FLOAT64, VKD3D_SHADER_API_VERSION_1_10 och VKD3D_SHADER_SPIRV_EXTENSION_EXT_VIEWPORT_INDEX_LAYER.
- Vulkan-tillÀggen VK_KHR_android_surface, VK_KHR_wayland_surface, VK_KHR_win32_surface, VK_KHR_xlib_surface, VK_EXT_metal_surface och VK_MVK_ios_surface har anvÀnts i funktionerna D3D12CreateDeviceVKD3D() och D3D12CreateDevice().
KĂ€lla: opennet.ru
