เป‚เบ„เบ‡เบเบฒเบ™ Wine เป„เบ”เป‰เบ›เปˆเบญเบ Vkd3d 1.2 เบ”เป‰เบงเบเบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ” Direct3D 12

ะŸั€ะพะตะบั‚ Wine เบˆเบฑเบ”เบžเบตเบกเบกเบฒ เบ›เปˆเบญเบเบŠเบธเบ” vkd3d 1.2 ั ั€ะตะฐะปะธะทะฐั†ะธะตะน Direct3D 12, ั€ะฐะฑะพั‚ะฐัŽั‰ะตะน ั‡ะตั€ะตะท ั‚ั€ะฐะฝัะปัั†ะธัŽ ะฒั‹ะทะพะฒะพะฒ ะฒ ะณั€ะฐั„ะธั‡ะตัะบะธะน API Vulkan. ะ’ ัะพัั‚ะฐะฒ ะฟะฐะบะตั‚ะฐ ะฒั…ะพะดัั‚ ะฑะธะฑะปะธะพั‚ะตะบะธ libvkd3d ั ั€ะตะฐะปะธะทะฐั†ะธะน Direct3D 12, libvkd3d-shader c ั‚ั€ะฐะฝัะปัั‚ะพั€ะพะผ 4 ะธ 5 ะผะพะดะตะปะธ ัˆะตะนะดะตั€ะพะฒ ะธ libvkd3d-utils ั ั„ัƒะฝะบั†ะธัะผะธ ะดะปั ัƒะฟั€ะพั‰ะตะฝะธั ะฟะพั€ั‚ะธั€ะพะฒะฐะฝะธั ะฟั€ะธะปะพะถะตะฝะธะน Direct3D 12, ะฐ ั‚ะฐะบะถะต ะฝะฐะฑะพั€ ะดะตะผะพะฝัั‚ั€ะฐั†ะธะพะฝะฝั‹ั… ะฟั€ะธะผะตั€ะพะฒ, ะฒะบะปัŽั‡ะฐั ะฟะพั€ั‚ glxgears ะฝะฐ Direct3D 12. ะšะพะด ะฟั€ะพะตะบั‚ะฐ เปเบˆเบเบขเบฒเบเป‚เบ”เบ เบญเบฐเบ™เบธเบเบฒเบ”เบžเบฒเบเปƒเบ•เป‰ LGPLv2.1.

ะ‘ะธะฑะปะธะพั‚ะตะบะฐ libvkd3d เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ ะฑะพะปัŒัˆัƒัŽ ั‡ะฐัั‚ัŒ ะฒะพะทะผะพะถะฝะพัั‚ะตะน Direct3D 12, ะฒะบะปัŽั‡ะฐั ัั€ะตะดัั‚ะฒะฐ ะดะปั ะณั€ะฐั„ะธะบะธ ะธ ะฒั‹ั‡ะธัะปะตะฝะธะน, ะพั‡ะตั€ะตะดะธ ะธ ัะฟะธัะบะธ ะบะพะผะฐะฝะด, ะดะตัะบั€ะธะฟั‚ะพั€ั‹ ะธ ะดะตัะบั€ะธะฟั‚ะพั€ั‹ ะบัƒั‡ะธ, ะบะพั€ะฝะตะฒั‹ะต ะฟะพะดะฟะธัะธ, ะฝะตัƒะฟะพั€ัะดะพั‡ะตะฝะฝั‹ะน ะดะพัั‚ัƒะฟ, Sampler-ั‹, ัะธะณะฝะฐั‚ัƒั€ั‹ ะบะพะผะฐะฝะด, ะบะพั€ะฝะตะฒั‹ะต ะบะพะฝัั‚ะฐะฝั‚ั‹, ะฝะตะฟั€ัะผัƒัŽ (indirect) ะพั‚ั€ะธัะพะฒะบัƒ, ะผะตั‚ะพะดั‹ Clear*() ะธ Copy*().

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

ะกั€ะตะดะธ ะฝะฐะธะฑะพะปะตะต ะทะฝะฐั‡ะธั‚ะตะปัŒะฝั‹ั… เบ™เบฐเบงเบฑเบ”เบ•เบฐเบเปเบฒ ะฒ Vkd3d 1.2 ะฒั‹ะดะตะปััŽั‚ัั:

  • ะ“ะพั‚ะพะฒะฝะพัั‚ัŒ ะฑะธะฑะปะธะพั‚ะตะบะธ libvkd3d-shader ะดะปั ะธัะฟะพะปัŒะทะพะฒะฐะฝะธั ะฒ ัั‚ะพั€ะพะฝะฝะธั… ะฟั€ะพะตะบั‚ะฐั….
  • ะŸะพะดะดะตั€ะถะบะฐ ั‚ะตััะตะปัั†ะธะพะฝะฝั‹ั… ัˆะตะนะดะตั€ะพะฒ.
  • ะŸะพะดะดะตั€ะถะบะฐ ะฟั€ะตะพะฑั€ะฐะทะพะฒะฐะฝะธั, ัะตั€ะธะฐะปะธะทะฐั†ะธะธ ะธ ะดะตัะตั€ะธะฐะปะธะทะฐั†ะธะธ ะบะพั€ะฝะตะฒั‹ั… ัะธะณะฝะฐั‚ัƒั€ (vkd3d_serialize_versioned_root_signature() ะธ vkd3d_create_versioned_root_signature_deserializer()).
  • ะŸะพะดะดะตั€ะถะบะฐ ะฟะพั‚ะพะบะพะฒะพะณะพ ะฒั‹ะฒะพะดะฐ.
  • ะ ะตะฐะปะธะทะฐั†ะธั ะผะฝะพะณะธั… ั€ะฐะฝะตะต ะฝะตะดะพัั‚ัƒะฟะฝั‹ั… ะฒะพะทะผะพะถะฝะพัั‚ะตะน Direct3D 12, ะฒะบะปัŽั‡ะฐั ะฟะพะดะดะตั€ะถะบัƒ ะผัƒะปัŒั‚ะธััะผะฟะปะธะฝะณะฐ, ั€ะตะทะตั€ะฒะธั€ะพะฒะฐะฝะธั ั€ะตััƒั€ัะพะฒ,
    ะบะพัะฒะตะฝะฝะพะน ะธะฝะดะตะบัะธั€ะพะฒะฐะฝะฝะพะน ะพั‚ั€ะธัะพะฒะบะธ, ั€ะตะฝะดะตั€ะธะฝะณะฐ ะณะปัƒะฑะธะฝั‹ ะฑะตะท ะฟะธะบัะตะปัŒะฝั‹ั… ัˆะตะนะดะตั€ะพะฒ, ะพะดะฝะพะฒั€ะตะผะตะฝะฝะพะณะพ ะดะพัั‚ัƒะฟะฐ ะบ ั€ะตััƒั€ัะฐะผ ะธั… ั€ะฐะทะฝั‹ั… ะพั‡ะตั€ะตะดะตะน ะบะพะผะฐะฝะด, ะฝัƒะปะตะฒั‹ั… ะฟั€ะตะดัั‚ะฐะฒะปะตะฝะธะน (Null-views).

  • ะ”ะพะฑะฐะฒะปะตะฝั‹ ะฟะตั€ะตะผะตะฝะฝั‹ะต ะพะบั€ัƒะถะตะฝะธั: VKD3D_CONFIG ะดะปั ัƒัั‚ะฐะฝะพะฒะบะธ ะพะฟั†ะธะน ะดะปั ะธะทะผะตะฝะตะฝะธั ะฟะพะฒะตะดะตะฝะธั libvkd3d ะธ VKD3D_VULKAN_DEVICE ะดะปั ะฟะตั€ะตะพะฟั€ะตะดะตะปะตะฝะธั ัƒัั‚ั€ะพะนัั‚ะฒะฐ ะดะปั API Vulkan.
  • ะ”ะพะฑะฐะฒะปะตะฝะฐ ะฟะพะดะดะตั€ะถะบะฐ ัˆะตะนะดะตั€ะฝั‹ั… ะธะฝัั‚ั€ัƒะบั†ะธะน bufinfo,
    eval_centroid,
    eval_sample_index,
    ld2ms,
    sample_b,
    sample_d,
    sample_info,
    samplepos.

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

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