แž‚แž˜แŸ’แžšแŸ„แž„แžŸแŸ’แžšแžถแž”แžถแž“แž…แŸแž‰แž•แŸ’แžŸแžถแž™ Vkd3d 1.2 แž‡แžถแž˜แžฝแž™แž“แžนแž„แž€แžถแžšแžขแž“แžปแžœแžแŸ’แž Direct3D 12

แž‚แž˜แŸ’แžšแŸ„แž„แžŸแŸ’แžšแžถ แž”แŸ„แŸ‡แž–แžปแž˜แŸ’แž— แž€แžถแžšแž…แŸแž‰แž•แŸ’แžŸแžถแž™แž€แž‰แŸ’แž…แž”แŸ‹ vkd3d แŸก.แŸข แž‡แžถแž˜แžฝแž™แž“แžนแž„แž€แžถแžšแžขแž“แžปแžœแžแŸ’แž 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 แž€แžถแžšแž…แžผแž›แž”แŸ’แžšแžพแž€แŸ’แžšแŸ…แž€แžถแžšแž”แž‰แŸ’แž‡แžถแž‘แžทแž‰ แž‚แŸ†แžšแžผ แž แžแŸ’แžแž›แŸแžแžถแž–แžถแž€แŸ’แž™แž”แž‰แŸ’แž‡แžถ แžแŸแžšแžซแžŸ แž€แžถแžšแž”แž„แŸ’แž แžถแž‰แžŠแŸ„แž™แž”แŸ’แžšแž™แŸ„แž› แžœแžทแž’แžธแžŸแžถแžŸแŸ’แžแŸ’แžš Clear*() แž“แžทแž„แž…แž˜แŸ’แž›แž„*()แŸ”

แž“แŸ…แž€แŸ’แž“แžปแž„ 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)แŸ”

แž€แŸ’แž“แžปแž„แž…แŸ†แžŽแŸ„แž˜แžขแŸ’แžœแžธแžŠแŸ‚แž›แžŸแŸ†แžแžถแž“แŸ‹แž”แŸ†แž•แžปแž แž€แžถแžšแž…แŸ’แž“แŸƒแž”แŸ’แžšแžŒแžทแž แž“แŸ…แž€แŸ’แž“แžปแž„ Vkd3d 1.2 แžแžถแž„แž€แŸ’แžšแŸ„แž˜แž“แŸแŸ‡แžแŸ’แžšแžผแžœแž”แžถแž“แž”แž“แŸ’แž›แžทแž…แŸ–

  • แž”แžŽแŸ’แžŽแžถแž›แŸแž™ libvkd3d-shader แž‚แžบแžšแžฝแž…แžšแžถแž›แŸ‹แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แž€แŸ’แž“แžปแž„แž‚แž˜แŸ’แžšแŸ„แž„แž—แžถแž‚แžธแž‘แžธแž”แžธแŸ”
  • Tessellation Shader แž‚แžถแŸ†แž‘แŸ’แžšแŸ”
  • แž€แžถแžšแž‚แžถแŸ†แž‘แŸ’แžšแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแž”แŸ†แž”แŸ’แž›แŸ‚แž„ แžŸแŸ€แžšแŸ€แž› แž“แžทแž„ deserialization แž“แŸƒแž แžแŸ’แžแž›แŸแžแžถ root (vkd3d_serialize_versioned_root_signature() แž“แžทแž„ vkd3d_create_versioned_root_signature_deserializer()) แŸ”
  • แž€แžถแžšแž‚แžถแŸ†แž‘แŸ’แžšแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž›แž‘แŸ’แž’แž•แž›แžŸแŸ’แž‘แŸ’แžšแžธแž˜แŸ”
  • แž€แžถแžšแžขแž“แžปแžœแžแŸ’แžแž˜แžปแžแž„แžถแžš Direct3D 12 แžŠแŸ‚แž›แž˜แžทแž“แž˜แžถแž“แž–แžธแž˜แžปแž“แž‡แžถแž…แŸ’แžšแžพแž“ แžšแžฝแž˜แž‘แžถแŸ†แž„แž€แžถแžšแž‚แžถแŸ†แž‘แŸ’แžšแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž–แž แžปแž‚แŸ†แžšแžผ แž€แžถแžšแž€แž€แŸ‹แž’แž“แž’แžถแž“แŸ”
    แž€แžถแžšโ€‹แž”แž„แŸ’แž แžถแž‰โ€‹แž›แžทแž”แžทแž€แŸ’แžšแž˜โ€‹แžŠแŸ„แž™โ€‹แž”แŸ’แžšแž™แŸ„แž› แž€แžถแžšโ€‹แž”แž„แŸ’แž แžถแž‰โ€‹แž‡แž˜แŸ’แžšแŸ…โ€‹แžŠแŸ„แž™โ€‹แž˜แžทแž“โ€‹แž˜แžถแž“โ€‹แž€แž˜แŸ’แž˜แžœแžทแž’แžธโ€‹แžŸแŸ’แžšแž˜แŸ„แž›โ€‹แž—แžธแž€แžŸแŸ‚แž› แž€แžถแžšโ€‹แž…แžผแž›โ€‹แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹โ€‹แž’แž“แž’แžถแž“โ€‹แž€แŸ’แž“แžปแž„โ€‹แž–แŸแž›โ€‹แžŠแŸ†แžŽแžถแž›โ€‹แž‚แŸ’แž“แžถโ€‹แž–แžธโ€‹แž‡แžฝแžšโ€‹แž–แžถแž€แŸ’แž™โ€‹แž”แž‰แŸ’แž‡แžถโ€‹แž•แŸ’แžŸแŸแž„โ€‹แž‚แŸ’แž“แžถ แž€แžถแžšโ€‹แž˜แžพแž›โ€‹แž˜แžทแž“โ€‹แž”แžถแž“แŸ”

  • แžขแžแŸแžšแž”แžšแžทแžŸแŸ’แžแžถแž“แž”แž“แŸ’แžแŸ‚แž˜แŸ– VKD3D_CONFIG แžŠแžพแž˜แŸ’แž”แžธแž€แŸ†แžŽแžแŸ‹แž‡แž˜แŸ’แžšแžพแžŸแžŠแžพแž˜แŸ’แž”แžธแž•แŸ’แž›แžถแžŸแŸ‹แž”แŸ’แžแžผแžšแžฅแžšแžทแž™แžถแž”แž libvkd3d แž“แžทแž„ VKD3D_VULKAN_DEVICE แžŠแžพแž˜แŸ’แž”แžธแž”แžŠแžทแžŸแŸแž’แžงแž”แž€แžšแžŽแŸแžŸแž˜แŸ’แžšแžถแž”แŸ‹ Vulkan API แŸ”
  • แž”แžถแž“แž”แž“แŸ’แžแŸ‚แž˜แž€แžถแžšแž‚แžถแŸ†แž‘แŸ’แžšแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแžŽแŸ‚แž“แžถแŸ† buffinfo shader,
    eval_centroid,
    eval_sample_index,
    ld2ms,
    sample_b,
    sample_d,
    sample_info,
    แž‚แŸ†แžšแžผ

แž”แŸ’แžšแž—แž–: opennet.ru

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