เป‚เบ„เบ‡เบเบฒเบ™เป€เบซเบผเบปเป‰เบฒเปเบงเบ‡เบˆเบฑเบ”เบžเบตเบกเบกเบฒ Vkd3d 1.5 เบ”เป‰เบงเบเบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ” Direct3D 12

เป‚เบ„เบ‡เบเบฒเบ™ Wine เป„เบ”เป‰เบžเบดเบกเป€เบœเบตเบเปเบœเปˆเบŠเบธเบ” vkd3d 1.5 เบ”เป‰เบงเบเบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ” Direct3D 12 เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบœเปˆเบฒเบ™เบเบฒเบ™เป‚เบ—เบญเบญเบเบญเบฒเบเบฒเบ”เป„เบ›เบซเบฒ Vulkan graphics API. เบŠเบธเบ”เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบ›เบฐเบเบญเบšเบกเบตเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” libvkd3d เบ—เบตเปˆเบกเบตเบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ” Direct3D 12, libvkd3d-shader เบเบฑเบšเบ•เบปเบงเปเบ›เบ‚เบญเบ‡เปเบšเบš shader 4 เปเบฅเบฐ 5 เปเบฅเบฐ libvkd3d-utils เบ—เบตเปˆเบกเบตเบŸเบฑเบ‡เบŠเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบ‡เปˆเบฒเบเบ‚เบญเบ‡เบเบฒเบ™ porting เบ‚เบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ Direct3D 12, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบŠเบธเบ”เบ•เบปเบงเบขเปˆเบฒเบ‡เบ•เบปเบงเบขเปˆเบฒเบ‡, เบฅเบงเบกเบ—เบฑเบ‡เบžเบญเบ”. เบ‚เบญเบ‡ glxgears เบเบฑเบš Direct3D 12. เบฅเบฐเบซเบฑเบ”เป‚เบ„เบ‡เบเบฒเบ™เปเบกเปˆเบ™เปเบˆเบเบขเบฒเบเป‚เบ”เบเบญเบฐเบ™เบธเบเบฒเบ”เบžเบฒเบเปƒเบ•เป‰ LGPLv2.1.

เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” libvkd3d เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ” Direct3D 12 เบชเปˆเบงเบ™เปƒเบซเบเปˆ, เบฅเบงเบกเบ—เบฑเบ‡เบญเบธเบ›เบฐเบเบญเบ™เบฎเบนเบšเบžเบฒเบšเปเบฅเบฐเบ„เบญเบกเบžเบดเบงเป€เบ•เบตเป‰, เปเบ–เบงเปเบฅเบฐเบฅเบฒเบเบเบฒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡, handles เปเบฅเบฐ heap handles, root signatures, out-of-order access, Samplers, command signatures, root constants, indirect rendering, clear method *( ) เปเบฅเบฐเบชเบณเป€เบ™เบปเบฒ*().

libvkd3d-shader เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เปเบ›เบ‚เบญเบ‡ bytecode เบ‚เบญเบ‡เปเบšเบš shader 4 เปเบฅเบฐ 5 เป€เบ›เบฑเบ™เบเบฒเบ™เป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™ SPIR-V เบฅเบฐเบ”เบฑเบšเบ›เบฒเบ™เบเบฒเบ‡. เบฎเบญเบ‡เบฎเบฑเบš vertex, pixel, tessellation, compute and simple geometry shaders, root signature serialization and deserialization. เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ‚เบญเบ‡ Shader เบ›เบฐเบเบญเบšเบกเบตเบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเป€เบฅเบเบ„เบฐเบ™เบดเบ”, เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบนเปเบฅเบฐเบšเบดเบ”, เบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเปเบฅเบฐเบ•เบปเบงเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เป„เบซเบผเป€เบ‚เบปเป‰เบฒเบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™, เบ•เบปเบงเบขเปˆเบฒเบ‡, เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเปเบฅเบฐเบเบฒเบ™เป‚เบซเบผเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ, เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡ unordered (UAV, Unordered Access View).

เปƒเบ™โ€‹เบชเบฐโ€‹เบšเบฑเบšโ€‹เปƒเบซเบกเปˆโ€‹:

  • เป„เบ”เป‰เบกเบตเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบซเบผเบฒเบเบญเบฑเบ™เปƒเบซเป‰เบเบฑเบšเบ•เบปเบงเบชเบฑเบ‡เบฅเบงเบก shader HLSL (High-Level Shader Language) เบ—เบตเปˆเบชเบฐเปœเบญเบ‡เปƒเบซเป‰เบ•เบฑเป‰เบ‡เปเบ•เปˆ DirectX 9.0. เบฅเบงเบกเบ—เบฑเบ‡เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบ›เบฐเป€เบžเบ”เบงเบฑเบ”เบ–เบธ HLSL เป€เบŠเบฑเปˆเบ™: Texture2D เปƒเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เปเบฅเบฐ arrays, เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเบชเป‰เบฒเบ‡เปƒเบ™ dot(), ldexp() เปเบฅเบฐ lerp(), เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ•เบฒเบกเป€เบซเบ”เบœเบปเบ™ "เปเบฅเบฐ", "เบซเบผเบท" เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเปเบšเบš shader 4 เปเบฅเบฐ 5 เปเบฅเบฐ "เบšเปเปˆ", เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เป‚เบเบ™เบ›เบฐเป€เบžเบ” Boolean.
  • เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบฒเบ‡เป€เบฅเบทเบญเบ VKD3D_SHADER_COMPILE_OPTION_TYPED_UAV เป€เบžเบทเปˆเบญเป‚เบซเบผเบ”เบเบฒเบ™เป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบชเบฑเปˆเบ‡ (UAV) เบชเปเบฒเบฅเบฑเบšเบฎเบนเบšเปเบšเบšเบซเบผเบฒเบเบชเปˆเบงเบ™ SPIR-V (DXGI_FORMAT).

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™