Wine-projektet har offentliggjort Vkd3d 1.11 med implementering af Direct3D 12

Wine-projektet har offentliggjort udgivelsen af vkd3d-pakken 1.11 med implementering af Direct3D 12, der fungerer gennem opkaldstranslation til Vulkan-grafik API'et. Pakken indeholder bibliotekerne libvkd3d med implementeringen af Direct3D 12, libvkd3d-shader med translatører til shader-modeller 4 og 5 samt libvkd3d-utils med funktioner til at forenkle portering af Direct3D 12-applikationer, samt et sæt demonstrations-eksempler, herunder porten af glxgears til Direct3D 12. Projektets kode distribueres under LGPLv2.1-licensen.

Biblioteket libvkd3d understøtter det meste af Direct3D 12's funktionalitet, inklusive værktøjer til grafik og beregninger, køer og kommandolister, deskriptorer og hukommelsesdeskriptorer, rodsignaturer, uordentlig adgang, samples, kommandosignaturer, rodkonstanter, indirekte rendering, Clear*() og Copy*() metoder. I libvkd3d-shader er oversættelsen af bytecode for shader-modeller version 4 og 5 implementeret til et mellemliggende repræsentation kaldet SPIR-V. Vekselvirkede, pixel-, tessellerings-, beregnings- og enkle geometriske shaders støttes, ligesom serialisering og deserialisering af rodsignaturen. Af shader-instruktioner er aritmetiske, atomiske og bitoperationer, sammenligningsoperatorer og kontrolstrømmen instruktioner realiseret, samt sample-, gather- og load-instruktioner, og operationer for uordentlig adgang (UAV, Unordered Access View).

I den nye version:

  • Indledende support for kompilering af gammel Direct3D bytecode til mellemliggende repræsentation af shaders SPIR-V er blevet tilføjet.
  • HLSL-kompilatoren har fået indledende support for kompilering af effekter af Direct3D-profiler (‘fx_2_0’, ‘fx_4_0’, ‘fx_4_1’ og ‘fx_5_0’).
  • Eksperimentel support for kompilering af det mellemliggende sprog DXIL (DirectX Intermediate Language) til repræsentationen SPIR-V og assembler-instruktionerne for Direct3D-shaders er blevet tilføjet.
  • HLSL har fået support for profilerne ‘fx_2_0’, ‘fx_4_0’, ‘fx_4_1’ og ‘fx_5_0’, og indbyggede funktioner som acos(), asin(), atan() og atan2() er blevet implementeret, samt support for ‘Buffer’-ressourcer.
  • Der er tilføjet en optimering, som gennemfører opdateringer af deskriptorer asynkront, hvilket kan resultere i hurtigere applikationer, der opdaterer et stort antal deskriptorer hver frame.
  • Brugen af Vulkan-udvidelserne VK_EXT_mutable_descriptor_type og VK_EXT_shader_viewport_index_layer er blevet sikret for at forbedre effektiviteten af arbejdet med deskriptorpuljer og for at fremskynde renderingen af vertex- og tessellationsshaders.
  • Support for interface-modulerne ID3D12Device7 og ID3D12Resource2 er blevet tilføjet. Metoden GetResourceAllocationInfo1() er blevet tilføjet til interface-modulet ID3D12Device4.
  • Support for interface-modulerne D3DReflect() og D3DDisassemble() er blevet tilføjet.
  • Verifikationsforespørgsler for 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 og D3D12_FEATURE_D3D12_OPTIONS13 er blevet implementeret.
  • Nye byggeindstillinger er blevet tilføjet: VKD3D_SHADER_COMPILE_OPTION_FEATURE, VKD3D_SHADER_COMPILE_OPTION_FEATURE_INT64, VKD3D_SHADER_COMPILE_OPTION_FEATURE_FLOAT64, VKD3D_SHADER_API_VERSION_1_10 og VKD3D_SHADER_SPIRV_EXTENSION_EXT_VIEWPORT_INDEX_LAYER.
  • Vulkan-udvidelserne VK_KHR_android_surface, VK_KHR_wayland_surface, VK_KHR_win32_surface, VK_KHR_xlib_surface, VK_EXT_metal_surface og VK_MVK_ios_surface er blevet involveret i funktionerne D3D12CreateDeviceVKD3D() og D3D12CreateDevice().

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster