Wine projekt avaldas Vkd3d 1.13, mis sisaldab Direct3D 12 elluviimist

Vine projekt avaldas vkd3d paketiväljaande 1.13, mis sisaldab Direct3D 12 rakendust, kasutades kutsete edastamist Vulkan graafik API-le. Pakett sisaldab raamatukogusid libvkd3d, mis rakendab Direct3D 12, libvkd3d-shader, mis on 4. ja 5. mudeli shaderite tõlkija, ja libvkd3d-utils, mis sisaldab funktsioone Direct3D 12 rakenduste portsede lihtsustamiseks, samuti hulga näidiste demo, sealhulgas glxgears porti Direct3D 12-le. Projekti kood levib LGPLv2.1 litsentsi alusel.

libvkd3d raamatukogu toetab enamikku Direct3D 12 funktsioone, sealhulgas graafika- ja arvutusvahendeid, järjekordi ja käsu loendeid, deskriptorite ja puhverski deskriptorite, juur-sigantuuride, mittesorteeritud juurdepääsu, sample'ite, käsusigantuuride, juur-konstantide, kaudse (indirect) joonistamise, Clear*() ja Copy*() meetodeid. libvkd3d-shaderis on realiseeritud shaderi mudelite bytecode'i tõlkimine vahepealsesse esitusvormi SPIR-V. Toetatakse tipp-, pikslirida-, tesselleerimise-, arvutus- ja lihtsaid geomeetrilisi shadereid, juur-sigantuuride serialiseerimist ja deserialiseerimist. Shaderi käsud hõlmavad arvutus-, aatom- ja bititehteid, võrdlus- ja voolu juhtimise operaatorite, sample, gather ja load instruktsioone, mittesorteeritud juurdepääsu operatsioonide (UAV, Unordered Access View) toetust.

Uues versioonis:

  • HLSLi kompilaatorisse on lisatud tsüklite avamise (loop unrolling) tugi, mis on optimeerimine, kus tsüklilised toimingud asendatakse mitmete järjestikku käivate koodikopeerimisega, et tõhusamalt kasutada protsessori vahemälu ja vähendada haru.
  • Lisatud toetuseks efektikomplektide kompilaatorit teatud neljanda mudeli shaderi olekute jaoks.
  • Tagatud toetuseks neljanda mudeli shaderite BlendState, ComputeShader, DomainShader, GeometryShader, HullShader, DepthStencilState ja RasterizerState tüüpide jaoks, samuti funktsioonide OMSetRenderTargets(), SetBlendState(), SetComputeShader(), SetDomainShader(), SetGeometryShader(), SetHullShader(), SetPixelShader(), SetVertexShader(), SetDepthStencilState() ja SetRasterizerState() jaoks.
  • Shaderi kompilaatoris on rakendatud toetust globaalsete muutuja, funktsiooniparametrite ja annotatsioonide initsialiseerimisväärtuste analüüsi ja salvestamise osas erinevates formaatides.
  • Lisatud toetuseks shaderi mudeli 5.1 registerruum.
  • Teostatud sisseehitatud funktsioonid tex1D(), tex2D(), tex3D(), texCUBE(), asint(), f16tof32(), faceforward(), GetRenderTargetSampleCount(), rcp(), tex2Dbias(), tex1Dgrad(), tex2Dgrad(), tex3Dgrad() ja texCUBEgrad().
  • Libvkd3d-sse on lisatud liides ID3D12CommandList6 ja teostatud võimalus luua tekste, mille kokkusurumine toimub eraldi plokkide tasemel (nt 4×4 pikslise suurusega plokid surutakse eraldi kokku).
  • Lisatud toetus struktuurile vkd3d_shader_parameter_info ja parameetritele VKD3D_SHADER_PARAMETER_DATA_TYPE_FLOAT32, VKD3D_SHADER_PARAMETER_NAME_ALPHA_TEST_FUNC, VKD3D_SHADER_PARAMETER_NAME_ALPHA_TEST_REF, VKD3D_SHADER_PARAMETER_NAME_FLAT_INTERPOLATION ja VKD3D_SHADER_PARAMETER_TYPE_BUFFER.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster