เชตเชพเช‡เชจ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเซ‡ เชกเชพเชฏเชฐเซ‡เช•เซเชŸ3เชกเซ€ 1.4 เช…เชฎเชฒเซ€เช•เชฐเชฃ เชธเชพเชฅเซ‡ Vkd3d 12 เชฐเชฟเชฒเซ€เช เช•เชฐเซเชฏเซเช‚ เช›เซ‡

เชตเชพเช‡เชจ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเซ‡ เชกเชพเชฏเชฐเซ‡เช•เซเชŸ3เชกเซ€ 1.4 เชจเชพ เช…เชฎเชฒเซ€เช•เชฐเชฃ เชธเชพเชฅเซ‡ vkd3d 12 เชชเซ‡เช•เซ‡เชœเชจเซเช‚ เชชเซเชฐเช•เชพเชถเชจ เชชเซเชฐเช•เชพเชถเชฟเชค เช•เชฐเซเชฏเซเช‚ เช›เซ‡ เชœเซ‡ เชตเชฒเซเช•เชจ เช—เซเชฐเชพเชซเชฟเช•เซเชธ API เชชเชฐ เชชเซเชฐเชธเชพเชฐเชฃ เช•เซ‰เชฒเซเชธ เชฆเซเชตเชพเชฐเชพ เช•เชพเชฐเซเชฏ เช•เชฐเซ‡ เช›เซ‡. เชชเซ‡เช•เซ‡เชœเชฎเชพเช‚ Direct3D 3 เชจเชพ เช…เชฎเชฒเซ€เช•เชฐเชฃ เชธเชพเชฅเซ‡ libvkd12d เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€เช“, shader เชฎเซ‹เชกเชฒเซเชธ 3 เช…เชจเซ‡ 4 เชจเชพ เช…เชจเซเชตเชพเชฆเช• เชธเชพเชฅเซ‡ libvkd5d-shader เช…เชจเซ‡ Direct3D 3 เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชจเชพ เชชเซ‹เชฐเซเชŸเซ€เช‚เช—เชจเซ‡ เชธเชฐเชณ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡เชจเชพ เช•เชพเชฐเซเชฏเซ‹ เชธเชพเชฅเซ‡ libvkd12d-utils, เชคเซ‡เชฎเชœ เชกเซ‡เชฎเซ‹ เช‰เชฆเชพเชนเชฐเชฃเซ‹เชจเชพ เชธเชฎเซ‚เชนเชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เชฅเชพเชฏ เช›เซ‡. glxgears to Direct3D 12. เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เช•เซ‹เชก LGPLv2.1 เชนเซ‡เช เชณ เชฒเชพเช‡เชธเชจเซเชธ เชชเซเชฐเชพเชชเซเชค เชตเชฟเชคเชฐเชฟเชค เชฅเชฏเซ‡เชฒ เช›เซ‡.

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

ะ’ libvkd3d-shader ั€ะตะฐะปะธะทะพะฒะฐะฝะฐ ั‚ั€ะฐะฝัะปัั†ะธั ะฑะฐะนั‚ะบะพะดะฐ 4 ะธ 5 ะผะพะดะตะปะตะน ัˆะตะนะดะตั€ะพะฒ ะฒ ะฟั€ะพะผะตะถัƒั‚ะพั‡ะฝะพะต ะฟั€ะตะดัั‚ะฐะฒะปะตะฝะธะต SPIR-V. ะŸะพะดะดะตั€ะถะธะฒะฐัŽั‚ัั ะฒะตั€ัˆะธะฝะฝั‹ะต, ะฟะธะบัะตะปัŒะฝั‹ะต, ั‚ะตััะตะปัั†ะธะพะฝะฝั‹ะต, ะฒั‹ั‡ะธัะปะธั‚ะตะปัŒะฝั‹ะต ะธ ะฟั€ะพัั‚ั‹ะต ะณะตะพะผะตั‚ั€ะธั‡ะตัะบะธะต ัˆะตะนะดะตั€ั‹, ัะตั€ะธะฐะปะธะทะฐั†ะธั ะธ ะดะตัะตั€ะธะฐะปะธะทะฐั†ะธั ะบะพั€ะฝะตะฒะพะน ัะธะณะฝะฐั‚ัƒั€ั‹. ะ˜ะท ัˆะตะนะดะตั€ะฝั‹ั… ะธะฝัั‚ั€ัƒะบั†ะธะน ั€ะตะฐะปะธะทะพะฒะฐะฝั‹ ะฐั€ะธั„ะผะตั‚ะธั‡ะตัะบะธะต, ะฐั‚ะพะผะฐั€ะฝั‹ะต ะธ ะฑะธั‚ะพะฒั‹ะต ะพะฟะตั€ะฐั†ะธะธ, ะพะฟะตั€ะฐั‚ะพั€ั‹ ัั€ะฐะฒะฝะตะฝะธั ะธ ัƒะฟั€ะฐะฒะปะตะฝะธั ะฟะพั‚ะพะบะพะผ ะฟะตั€ะตะดะฐั‡ะธ ะดะฐะฝะฝั‹ั…, ะธะฝัั‚ั€ัƒะบั†ะธะธ sample, gather ะธ load, ะพะฟะตั€ะฐั†ะธะธ ะฝะตัƒะฟะพั€ัะดะพั‡ะตะฝะฝะพะณะพ ะดะพัั‚ัƒะฟะฐ (UAV, Unordered Access View).

เชจเชตเชพ เชธเช‚เชธเซเช•เชฐเชฃเชฎเชพเช‚:

  • ะ’ะฝะตัะตะฝั‹ ะผะฝะพะณะพั‡ะธัะปะตะฝะฝั‹ะต ัƒะปัƒั‡ัˆะตะฝะธั ะฒ ะบะพะผะฟะธะปัั‚ะพั€ ัˆะตะนะดะตั€ะพะฒ ะฝะฐ ัะทั‹ะบะต HLSL (High-Level Shader Language), ะฟั€ะตะดะพัั‚ะฐะฒะปัะตะผะพะผ ะฝะฐั‡ะธะฝะฐั ั DirectX 9.0.
  • ะŸั€ะตะดะปะพะถะตะฝะฐ ะฝะพะฒะฐั ั€ะตะฐะปะธะทะฐั†ะธั ะบัƒั‡ะธ ะดะตัะบั€ะธะฟั‚ะพั€ะพะฒ (Descriptor Heap), ะธัะฟะพะปัŒะทัƒัŽั‰ะฐั Vulkan-ั€ะฐััˆะธั€ะตะฝะธะต VK_EXT_descriptor_indexing.
  • ะ”ะพะฑะฐะฒะปะตะฝะฐ ะฝะพะฒะฐั ั€ะตะฐะปะธะทะฐั†ะธั ะณั€ะฐะฝะธั† (fence), ะพัะฝะพะฒะฐะฝะฝะฐั ะฝะฐ Vulkan-ั€ะฐััˆะธั€ะตะฝะธะธ K_KHR_timeline_semaphore.

เชธเซ‹เชฐเซเชธ: opennet.ru

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹