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

เป‚เบ„เบ‡เบเบฒเบ™ Wine เป„เบ”เป‰เบžเบดเบกเป€เบœเบตเบเปเบœเปˆเบŠเบธเบ” vkd3d 1.7 เบ”เป‰เบงเบเบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ” 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).

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

  • ะŸั€ะพะดะพะปะถะตะฝะฐ ั€ะฐะฑะพั‚ะฐ ะฟะพ ัƒะปัƒั‡ัˆะตะฝะธัŽ ะบะพะผะฟะธะปัั‚ะพั€ะฐ ัˆะตะนะดะตั€ะพะฒ ะฝะฐ ัะทั‹ะบะต HLSL (High-Level Shader Language):
    • ะ”ะพะฑะฐะฒะปะตะฝะฐ ะฒะพะทะผะพะถะฝะพัั‚ัŒ ะฒั‹ะทะพะฒะฐ ะฟะพะปัŒะทะพะฒะฐั‚ะตะปัŒัะบะธั… ั„ัƒะฝะบั†ะธะน ะธ ะธัะฟะพะปัŒะทะพะฒะฐะฝะธั ะผะฐััะธะฒะพะฒ ะฒ ะบะฐั‡ะตัั‚ะฒะต ะฟะฐั€ะฐะผะตั‚ั€ะพะฒ ะฟะพะปัŒะทะพะฒะฐั‚ะตะปัŒัะบะธั… ั„ัƒะฝะบั†ะธะน.
    • ะ”ะพะฑะฐะฒะปะตะฝะฐ ะฟะพะดะดะตั€ะถะบะฐ ะฟะฐั€ะฐะผะตั‚ั€ะพะฒ SV_DispatchThreadID, SV_GroupID ะธ SV_GroupThreadID.
    • ะ”ะพะฑะฐะฒะปะตะฝั‹ ะฒัั‚ั€ะพะตะฝะฝั‹ะต ั„ัƒะฝะบั†ะธะธ all(), distance(), exp(), exp2(), frac(), lit(), reflect(), sin(), cos(), smoothstep(), sqrt(), rsqrt(), step(), transpose().
    • ะ”ะพะฑะฐะฒะปะตะฝะฐ ะฝะฐั‡ะฐะปัŒะฝะฐั ะฟะพะดะดะตั€ะถะบะฐ ั‚ะธะฟะพะฒ ะฝะธะทะบะพะน ั‚ะพั‡ะฝะพัั‚ะธ ั ะฟะปะฐะฒะฐัŽั‰ะตะน ะทะฐะฟัั‚ะพะน, ั‚ะฐะบะธั… ะบะฐะบ ยซmin16floatยป.
  • ะ—ะฝะฐั‡ะธั‚ะตะปัŒะฝะพ ัƒะปัƒั‡ัˆะตะฝะฐ ะฟะพะดะดะตั€ะถะบะฐ ะฟั€ะพั„ะธะปะตะน ะผะพะดะตะปะธ ัˆะตะนะดะตั€ะพะฒ Direct3D 1/2/3.
  • ะ”ะพะฑะฐะฒะปะตะฝ ะฟัƒะฑะปะธั‡ะฝั‹ะน API ะดะปั ั€ะฐะทะฑะพั€ะฐ (vkd3d_shader_parse_dxbc) ะธ ัะตั€ะธะฐะปะธะทะฐั†ะธะธ (vkd3d_shader_serialize_dxbc) ะฑะธะฝะฐั€ะฝั‹ั… ะดะฐะฝะฝั‹ั… DXBC.

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

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