Inilathala ng proyekto ng Wine ang Vkd3d 1.7 na may pagpapatupad ng Direct3D 12

Inilathala ng proyekto ng Wine ang paglabas ng vkd3d 1.7 package na may pagpapatupad ng Direct3D 12 na gumagana sa pamamagitan ng mga broadcasting na tawag sa Vulkan graphics API. Kasama sa package ang mga library ng libvkd3d na may mga pagpapatupad ng Direct3D 12, libvkd3d-shader na may tagasalin ng mga modelo ng shader 4 at 5 at mga libvkd3d-utils na may mga function para sa pagpapasimple ng pag-port ng Direct3D 12 na mga application, pati na rin ang isang hanay ng mga halimbawa ng demo, kabilang ang isang port ng glxgears sa Direct3D 12. Ang code ng proyekto ay ipinamahagi na lisensyado sa ilalim ng LGPLv2.1.

Sinusuportahan ng libvkd3d library ang karamihan sa mga feature ng Direct3D 12, kabilang ang mga graphics at computing facility, queues at command list, handle at heap handle, root signature, out-of-order access, Sampler, command signature, root constants, indirect rendering, Clear method *( ) at Kopyahin*(). Sa libvkd3d-shader, ang pagsasalin ng bytecode ng shader models 4 at 5 sa isang intermediate na representasyon ng SPIR-V ay ipinatupad. Sinusuportahan ang vertex, pixel, tessellation, compute at simpleng geometry shaders, root signature serialization at deserialization. Kasama sa mga tagubilin ng shader ang arithmetic, atomic at bit operations, paghahambing at data flow control operator, sample, gather and load instructions, unordered access operations (UAV, Unordered Access View).

Sa bagong bersyon:

  • Nagpatuloy ang trabaho upang mapabuti ang shader compiler sa HLSL (High-Level Shader Language):
    • Idinagdag ang kakayahang tumawag ng mga custom na function at gumamit ng mga array bilang mga parameter sa mga custom na function.
    • Nagdagdag ng suporta para sa mga parameter ng SV_DispatchThreadID, SV_GroupID at SV_GroupThreadID.
    • Nagdagdag ng mga built-in na function all(), distance(), exp(), exp2(), frac(), lit(), reflect(), sin(), cos(), smoothstep(), sqrt(), rsqrt () , step(), transpose().
    • Nagdagdag ng paunang suporta para sa mababang katumpakan na mga uri ng floating point gaya ng "min16float".
  • Malaking pinahusay na suporta para sa Direct3D 1/2/3 shader model profiles.
  • Nagdagdag ng pampublikong API para sa pag-parse (vkd3d_shader_parse_dxbc) at serialization (vkd3d_shader_serialize_dxbc) ng DXBC binary data.

Pinagmulan: opennet.ru

Magdagdag ng komento