แž‚แž˜แŸ’แžšแŸ„แž„แžŸแŸ’แžšแžถแž”แžถแž“แž”แŸ„แŸ‡แž–แžปแž˜แŸ’แž– Vkd3d 1.7 แž‡แžถแž˜แžฝแž™แž“แžนแž„แž€แžถแžšแžขแž“แžปแžœแžแŸ’แž Direct3D 12

แž‚แž˜แŸ’แžšแŸ„แž„แžŸแŸ’แžšแžถแž”แžถแž“แž”แŸ„แŸ‡แž–แžปแž˜แŸ’แž—แž€แžถแžšแž…แŸแž‰แž•แŸ’แžŸแžถแž™แž€แž‰แŸ’แž…แž”แŸ‹ vkd3d 1.7 แž‡แžถแž˜แžฝแž™แž“แžนแž„แž€แžถแžšแžขแž“แžปแžœแžแŸ’แž Direct3D 12 แžŠแŸ‚แž›แžŠแŸ†แžŽแžพแžšแž€แžถแžšแžแžถแž˜แžšแž™แŸˆแž€แžถแžšแž แŸ…แž‘แžผแžšแžŸแŸแž–แŸ’แž‘แž•แŸ’แžŸแžถแž™แž‘แŸ…แž€แžถแž“แŸ‹ Vulkan graphics API แŸ” แž€แž‰แŸ’แž…แž”แŸ‹แžšแžฝแž˜แž”แž‰แŸ’แž…แžผแž›แž”แžŽแŸ’แžŽแžถแž›แŸแž™ libvkd3d แž‡แžถแž˜แžฝแž™แž“แžนแž„แž€แžถแžšแžขแž“แžปแžœแžแŸ’แž Direct3D 12, libvkd3d-shader แž‡แžถแž˜แžฝแž™แžขแŸ’แž“แž€แž”แž€แž”แŸ’แžšแŸ‚แž“แŸƒแž˜แŸ‰แžผแžŠแŸ‚แž› shader 4 แž“แžทแž„ 5 แž“แžทแž„ libvkd3d-utils แžŠแŸ‚แž›แž˜แžถแž“แž˜แžปแžแž„แžถแžšแžŸแž˜แŸ’แžšแžถแž”แŸ‹แžŸแž˜แŸ’แžšแžฝแž›แž€แžถแžšแž…แŸ’แžšแž€แž“แŸƒแž€แž˜แŸ’แž˜แžœแžทแž’แžธ Direct3D 12 แž€แŸแžŠแžผแž…แž‡แžถแžŸแŸ†แžŽแžปแŸ†แž“แŸƒแžงแž‘แžถแž แžšแžŽแŸแžŸแžถแž€แž›แŸ’แž”แž„ แžšแžฝแž˜แž‘แžถแŸ†แž„แž…แŸ’แžšแž€แž˜แžฝแž™แŸ” แž“แŸƒ glxgears แž‘แŸ… Direct3D 12. แž›แŸแžแž€แžผแžŠแž‚แž˜แŸ’แžšแŸ„แž„แžแŸ’แžšแžผแžœแž”แžถแž“แž…แŸ‚แž€แž…แžถแž™แžŠแŸ‚แž›แž˜แžถแž“แžขแžถแž‡แŸ’แž‰แžถแž”แŸแžŽแŸ’แžŽแž€แŸ’แžšแŸ„แž˜ LGPLv2.1 แŸ”

แž”แžŽแŸ’แžŽแžถแž›แŸแž™ libvkd3d แž‚แžถแŸ†แž‘แŸ’แžšแž˜แžปแžแž„แžถแžš Direct3D 12 แž—แžถแž‚แž…แŸ’แžšแžพแž“ แžšแžฝแž˜แž‘แžถแŸ†แž„แž€แŸ’แžšแžถแž แŸ’แžœแžทแž€ แž“แžทแž„แž‚แŸ’แžšแžฟแž„แž”แžšแžทแž€แŸ’แžแžถแžšแž€แžปแŸ†แž–แŸ’แž™แžผแž‘แŸแžš แž‡แžฝแžš แž“แžทแž„แž”แž‰แŸ’แž‡แžธแž–แžถแž€แŸ’แž™แž”แž‰แŸ’แž‡แžถ แž…แŸ†แžŽแžปแž…แž‘แžถแž‰ แž“แžทแž„แž…แŸ†แžŽแžปแž…แž‘แžถแž‰ heap แž แžแŸ’แžแž›แŸแžแžถแž‡แžถ root แž€แžถแžšแž…แžผแž›แž”แŸ’แžšแžพแž€แŸ’แžšแŸ…แž€แžถแžšแž”แž‰แŸ’แž‡แžถแž‘แžทแž‰ แž‚แŸ†แžšแžผ แž แžแŸ’แžแž›แŸแžแžถแž–แžถแž€แŸ’แž™แž”แž‰แŸ’แž‡แžถ แžแŸแžšแžซแžŸ แž€แžถแžšแž”แž„แŸ’แž แžถแž‰แžŠแŸ„แž™แž”แŸ’แžšแž™แŸ„แž› แžœแžทแž’แžธแžŸแžถแžŸแŸ’แžแŸ’แžšแž…แŸ’แž”แžถแžŸแŸ‹แž›แžถแžŸแŸ‹ *( ) แž“แžทแž„แž…แž˜แŸ’แž›แž„*()แŸ” แž“แŸ…แž€แŸ’แž“แžปแž„ libvkd3d-shader แž€แžถแžšแž”แž€แž”แŸ’แžšแŸ‚ bytecode แž“แŸƒ shader model 4 แž“แžทแž„ 5 แž‘แŸ…แž‡แžถแžแŸ†แžŽแžถแž„ SPIR-V แž€แž˜แŸ’แžšแžทแžแž˜แž’แŸ’แž™แž˜แžแŸ’แžšแžผแžœแž”แžถแž“แžขแž“แžปแžœแžแŸ’แžแŸ” แž‚แžถแŸ†แž‘แŸ’แžš vertex, pixel, tessellation, compute and simple geometry shaders, root signature serialization and deserialization แŸ” แžŸแŸแž…แž€แŸ’แžแžธแžŽแŸ‚แž“แžถแŸ†แžšแž”แžŸแŸ‹ Shader แžšแžฝแž˜แž˜แžถแž“แž“แž–แŸ’แžœแž“แŸ’แž’ แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžถแžšแžขแžถแžแžผแž˜ แž“แžทแž„แž”แŸŠแžธแž แž€แžถแžšแž”แŸ’แžšแŸ€แž”แž’แŸ€แž” แž“แžทแž„แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžšแž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„แž›แŸ†แž แžผแžšแž‘แžทแž“แŸ’แž“แž“แŸแž™ แž‚แŸ†แžšแžผ แž€แžถแžšแž”แŸ’แžšแž˜แžผแž›แž•แŸ’แžแžปแŸ† แž“แžทแž„แž•แŸ’แž‘แžปแž€แžŸแŸแž…แž€แŸ’แžแžธแžŽแŸ‚แž“แžถแŸ† แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžถแžšแž…แžผแž›แžŠแŸ†แžŽแžพแžšแž€แžถแžšแžŠแŸ„แž™แž˜แžทแž“แž˜แžถแž“แž›แŸ†แžŠแžถแž”แŸ‹ (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

แž”แž“แŸ’แžแŸ‚แž˜แž˜แžแžทแž™แŸ„แž”แž›แŸ‹