Projektet Wine har offentliggjort Vkd3d 1.16 med implementeringen af Direct3D 12.

Wine-projektet har udgivet version 1.16 af pakken vkd3d med implementering af Direct3D 12, der fungerer via opkaldstranslation til grafisk API Vulkan. Pakken omfatter bibliotekerne libvkd3d med implementering af Direct3D 12, libvkd3d-shader med oversættere til shader-modellerne 4 og 5, samt libvkd3d-utils med funktioner til at forenkle porteringen af Direct3D 12-applikationer, og indeholder et sæt demonstrations-eksempler, herunder porten af glxgears til Direct3D 12. Projektets kildekode distribueres under LGPLv2.1.

Biblioteket libvkd3d understøtter det meste af funktionaliteterne i Direct3D 12, inklusive værktøjer til grafik og beregninger, køer og kommandolister, deskriptorer og hobe-deskriptorer, rod-signaturer, uordentlig adgang, samplere, kommandosignaturer, rodkonstanter, indirekte tegning, metoderne Clear*() og Copy*(). I libvkd3d-shader er der implementeret oversættelse af shader-modellens bytekode til det mellemliggende format SPIR-V. Støtte til vertex-, pixel-, tesselerings-, beregnings- og enkle geometriske shaderne, serialisering og deserialisering af rod-signatur. Af shader-instruktioner er der implementeret aritmetiske, atomare og bitoperationer, sammenligningsoperatører og kontrolstraumsinstruktioner, samt instruktioner som sample, gather og load, og operationer for uordentlig adgang (UAV, Unordered Access View).

I den nye version:

  • Understøttelsen af DXIL (DirectX Intermediate Language) shaders er stabiliseret og inkluderet som standard.
  • Shader-sprogkompilatoren HLSL har fået indledende understøttelse af geometriske shaders. For shader-modellerne 1, 2 og 3 er der implementeret understøttelse af indirekte adressering, moduler og værdi begrænsninger.
  • Biblioteket libvkd3d hævder at have støtte for shader-model 6.0. I API'en ID3D12Device1 er metoden SetEventOnMultipleFenceCompletion() implementeret. Der er tilføjet understøttelse af Vulkan-udvidelsen VK_KHR_zero_initialize_workgroup_memory til at initialisere hukommelse til shaders med nuller. Vulkan-udvidelsen VK_KHR_maintenance2, foreslået i Vulkan 1.1 specifikationen, er nu en obligatorisk del.
  • Understøttelse af disassemblering af SPIR-V shaders og binære effekter "fx_2_0" er blevet tilføjet.
  • Eksperimentel understøttelse af indirekte adressering af konstante buffers i GLSL (OpenGL Shading Language) er blevet tilføjet.
  • I implementeringen af shadersprog MSL (Metal Shading Language), der anvendes af Apple i det grafiske API Metal, er muligheden for at indlæse teksturer blevet tilføjet.
  • Understøttelse af indbyggede HLSL-funktioner: AllMemoryBarrier(), AllMemoryBarrierWithGroupSync(), DeviceMemoryBarrier(), DeviceMemoryBarrierWithGroupSync(), GroupMemoryBarrier() og GroupMemoryBarrierWithGroupSync() er blevet tilføjet.
  • Flagsene VKD3D_SHADER_COMPILE_OPTION_FEATURE_ZERO_INITIALIZE_WORKGROUP_MEMORY, VKD3D_SHADER_COMPONENT_INT64, VKD3D_SHADER_COMPONENT_FLOAT16, VKD3D_SHADER_COMPONENT_UINT16, VKD3D_SHADER_COMPONENT_INT16, VKD3D_SHADER_RESOURCE_DATA_NONE og VKD3D_SHADER_RESOURCE_DATA_UINT er blevet implementeret.

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