Wine projekt avaldas vkd3d paketi vÀljaande 1.13, mis rakendab Direct3D 12 ja töötab vulkaani graafilise API kaudu kutsete tÔlkimise kaudu. Pakett sisaldab libvkd3d raamatukogusid, mis rakendavad Direct3D 12, libvkd3d-shader koos 4. ja 5. mudeli shaderite tÔlgiga ning libvkd3d-utils funktsioonidega, mis lihtsustavad Direct3D 12 rakenduste portimist, samuti komplekti nÀidiseid, sealhulgas glxgears'i porti Direct3D 12-le. Projekti kood jaotatakse LGPLv2.1 litsentsi alusel.
Teek libvkd3d toetab enamikku Direct3D 12 funktsionaalsustest, sealhulgas graafika- ja arvutustöötlusvahendeid, jÀrjekordi ja kÀskude loendeid, deskriptorid ja mÀludeskriptorid, juureseosed, segamata juurdepÀÀs, Sampleri omadused, komandisignatuurid, juurekonstandid, kaudne joonistamine, Clear*() meetodid ja Copy*(). Libvkd3d-shader rakendab shaderite mudelite bytecode tÔlget SPIR-V vahevormiks. Toetatakse tipud, pikslid, tesselatsioonid, arvutustööd ja lihtsad geomeetrilised shadereid, juureseose serialiseerimine ja deserialiseerimine. Shaderi juhistes on rakendatud aritmeetilised, atomaarsete ja bititaoliste operatsioonide, vÔrdlusoperatsioonide ja andmevoo juhtimise operatsioonide instruktsioonid, samuti nÀidud, kogumid ja laadimisoperatsioonid, segamata juurdepÀÀsu toimingud (UAV, Unordered Access View).
Uues versioonis:
- HLSL-ide kompilaatorisse on lisatud silmustest loobumise (loop unrolling) tugi, optimiseerimine, mis asendab tsĂŒklilised toimingud mitme jĂ€rjestikuse koopiaga koodist, et tĂ”husamalt kasutada protsessori vahemĂ€lu ja vĂ€hendada harutamist.
- Lisatud on efektide kompilaatori tugi teatud neljanda mudeli shaderi olekute jaoks.
- Neljas mudel shaderite tĂŒĂŒpide tugi on tagatud: BlendState, ComputeShader, DomainShader, GeometryShader, HullShader, DepthStencilState ja RasterizerState, samuti funktsioonid OMSetRenderTargets(), SetBlendState(), SetComputeShader(), SetDomainShader(), SetGeometryShader(), SetHullShader(), SetPixelShader(), SetVertexShader(), SetDepthStencilState() ja SetRasterizerState().
- Shaderite kompilaatoris on rakendatud globaalsete muutuja vÀÀrtuste, funktsiooniparameetrite ja annotatsioonide algvÀÀrtuste sirvimise ja salvestamise tuge erinevates formaatides.
- Lisatud on registriruumi tugi shaderi mudelis 5.1.
- Rakendatud on sisseehitatud funktsioonid tex1D(), tex2D(), tex3D(), texCUBE(), asint(), f16tof32(), faceforward(), GetRenderTargetSampleCount(), rcp(), tex2Dbias(), tex1Dgrad(), tex2Dgrad(), tex3Dgrad() ja texCUBEgrad().
- Libvkd3d-sse on lisatud liidese ID3D12CommandList6 ja loodud on vĂ”imalus luua tekstuure, mille kokkusurumine toimub eraldi plokkide tasemel (nĂ€iteks pressitakse eraldi 4Ă4 piksliga plokid).
- Lisatud on struktuuri vkd3d_shader_parameter_info ja parameetrite 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 tugi.
Allikas: opennet.ru
