ื“ื™ ื•ื•ื™ื™ืŸ ืคึผืจื•ื™ืขืงื˜ ื”ืื˜ ื‘ืืคืจื™ื™ื˜ Vkd3d 1.2 ืžื™ื˜ Direct3D 12 ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ

ื•ื•ื™ื™ึทืŸ ืคึผืจืึธื™ืขืงื˜ ืืจื•ื™ืก ืคึผืขืงืœ ืžืขืœื“ื•ื ื’ vkd3d 1.2 ืžื™ื˜ ืึท Direct3D 12 ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ื•ื•ืึธืก ืึทืจื‘ืขื˜ ื“ื•ืจืš ื‘ืจืึธื“ืงืึทืกื˜ื™ื ื’ ืจื•ืคื˜ ืฆื• ื“ื™ Vulkan graphics API. ื“ืขืจ ืคึผืขืงืœ ื›ื•ืœืœ libvkd3d ืœื™ื™ื‘ืจืขืจื™ื– ืžื™ื˜ ื™ืžืคึผืœืึทืžืึทื ืฅ ืคื•ืŸ Direct3D 12, libvkd3d-shader ืžื™ื˜ ืึท ื™ื‘ืขืจื–ืขืฆืขืจ ืคื•ืŸ ืฉืึทื“ืขืจ ืžืึธื“ืขืœืก 4 ืื•ืŸ 5 ืื•ืŸ libvkd3d-utils ืžื™ื˜ ืคืึทื ื’ืงืฉืึทื ื– ืคึฟืึทืจ ืกื™ืžืคึผืœืึทืคื™ื™ื™ื ื’ ื“ื™ ืคึผืึธืจื˜ื™ื ื’ ืคื•ืŸ Direct3D 12 ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–, ื•ื•ื™ ื’ืขื–ื•ื ื˜ ื•ื•ื™ ืึท ื’ืึทื ื’ ืคื•ืŸ ื“ืขืžืึธ ื‘ื™ื™ืฉืคื™ืœืŸ, ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ืึท ืคึผืึธืจื˜. ืคื•ืŸ ื’ืœืงืกื’ืขืึทืจืก ืฆื• ื“ื™ืจืขืงื˜3ื“ 12. ืคึผืจืึธื™ืขืงื˜ ืงืึธื“ ืคื•ื ืื ื“ืขืจื’ืขื˜ื™ื™ืœื˜ ื“ื•ืจืš ืœื™ื™ืกืึทื ืกื˜ ืื•ื ื˜ืขืจ LGPLv2.1.

libvkd3d ื‘ื™ื‘ืœื™ืึธื˜ืขืง ืฉื˜ื™ืฆื˜ ืจื•ื‘ึฟ ืคื•ืŸ ื“ื™ ืคึฟืขื™ึดืงื™ื™ื˜ืŸ ืคื•ืŸ Direct3D 12, ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ื’ืจืึทืคื™ืงืก ืื•ืŸ ืงืึทืžืคึผื™ื•ื˜ื™ื ื’ ืคืึทืกื™ืœืึทื˜ื™ื–, ืงื™ื•ื– ืื•ืŸ ื‘ืึทืคึฟืขืœืŸ ืจืฉื™ืžื•ืช, ื›ืึทื ื“ืึทืœื– ืื•ืŸ ืงื•ืคึผืข ื›ืึทื ื“ืึทืœื–, ื•ื•ืึธืจืฆืœ ืกื™ื’ื ืึทื˜ืฉืขืจื–, ืื•ื™ืก-ืคื•ืŸ-ืกื“ืจ ืึทืงืกืขืก, ืกืึทืžืคึผืœืขืจ, ื‘ืึทืคึฟืขืœ ืกื™ื’ื ืึทื˜ืฉืขืจื–, ื•ื•ืึธืจืฆืœ ืงืึทื ืกื˜ืึทื ืฅ, ื•ืžื“ื™ืจืขืงื˜ ืจืขื ื“ืขืจื™ื ื’, ืงืœืึธืจ * () ืžืขื˜ื”ืึธื“ืก ืื•ืŸ ืงืึธืคึผื™ * ().

ืื™ืŸ libvkd3d-shader, ื“ื™ ืื™ื‘ืขืจื–ืขืฆื•ื ื’ ืคื•ืŸ ื‘ื™ื˜ืขืงืึธื“ืข ืคื•ืŸ โ€‹โ€‹ืฉืึทื“ืขืจ ืžืึธื“ืขืœืก 4 ืื•ืŸ 5 ืื™ืŸ ืึท ื™ื ื˜ืขืจืžื™ื“ื™ื™ื˜ SPIR-V ืคืึทืจื˜ืจืขื˜ื•ื ื’ ืื™ื– ื™ืžืคึผืœืึทืžืขื ืึทื“. ื•ื•ืขืจื˜ืขืงืก, ืคึผื™ืงืกืขืœ, ื˜ืขืกืกืขืœืึทื˜ื™ืึธืŸ, ืงืึทืžืคึผื™ื•ื˜ื™ื ื’ ืื•ืŸ ืคึผืฉื•ื˜ ื“ื–ืฉื™ืึทืžืึทื˜ืจื™ ืฉืึทื“ืขืจื–, ื•ื•ืึธืจืฆืœ ื›ืกื™ืžืข ืกื™ืจื™ืึทืœื™ื–ื™ื™ืฉืึทืŸ ืื•ืŸ ื“ืขืกืขืจื™ืึทืœื™ื–ืึทื˜ื™ืึธืŸ ื–ืขื ืขืŸ ื’ืขืฉื˜ื™ืฆื˜. ืฉืึทื“ืขืจ ืื™ื ืกื˜ืจื•ืงืฆื™ืขืก ืึทืจื™ื™ึทื ื ืขืžืขืŸ ืึทืจื™ื˜ืžืขื˜ื™ืง, ืึทื˜ืึธืžื™ืฉืข ืื•ืŸ ื‘ื™ืกืœ ืึทืคึผืขืจื™ื™ืฉืึทื ื–, ืคืึทืจื’ืœื™ื™ึทืš ืื•ืŸ ื“ืึทื˜ืŸ ืœื•ื™ืคืŸ ืงืึธื ื˜ืจืึธืœ ืึธืคึผืขืจื™ื™ื˜ืขืจื–, ืžื•ืกื˜ืขืจ, ืงืœื™ื™ึทื‘ืŸ ืื•ืŸ ืžืึทืกืข ื™ื ืกื˜ืจืึทืงืฉืึทื ื–, ืึทื ืึธืจื“ืขืจื“ ืึทืงืกืขืก ืึทืคึผืขืจื™ื™ืฉืึทื ื– (UAV, Unordered Access View).

ืฆื•ื•ื™ืฉืŸ ื“ื™ ืžืขืจืกื˜ ื•ื•ื™ื›ื˜ื™ืง ื™ื ืึธื•ื•ื•ื™ื™ืฉืึทื ื– ืื™ืŸ Vkd3d 1.2 ื“ื™ ืคืืœื’ืขื ื“ืข ื–ืขื ืขืŸ ื›ื™ื™ืœื™ื™ื˜ื™ื“:

  • ื“ื™ libvkd3d-shader ื‘ื™ื‘ืœื™ืึธื˜ืขืง ืื™ื– ื’ืจื™ื™ื˜ ืคึฟืึทืจ ื ื•ืฆืŸ ืื™ืŸ ื“ืจื™ื˜-ืคึผืึทืจื˜ื™ื™ ืคึผืจืึทื“ื–ืฉืขืงืก.
  • ื˜ืขืกืกืขืœืœืึทื˜ื™ืึธืŸ ืฉื™ื™ื“ืขืจ ืฉื˜ื™ืฆืŸ.
  • ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ืงืึทื ื•ื•ืขืจื–ืฉืึทืŸ, ืกื™ืจื™ืึทืœื™ื–ื™ื™ืฉืึทืŸ ืื•ืŸ ื“ืขืกื™ืจื™ืึทืœื™ื–ื™ื™ืฉืึทืŸ ืคื•ืŸ ื•ื•ืึธืจืฆืœ ืกื™ื’ื ืึทื˜ืฉืขืจื– (vkd3d_serialize_versioned_root_signature () ืื•ืŸ vkd3d_create_versioned_root_signature_deserializer ()).
  • ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ืกื˜ืจื™ืžื™ื ื’ ืจืขื–ื•ืœื˜ืึทื˜.
  • ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ืคื™ืœืข ืคืจื™ืขืจ ืึทื ืึทื•ื•ื™ื™ืœืึทื‘ืึทืœ Direct3D 12 ืคึฟืขื™ึดืงื™ื™ื˜ืŸ, ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ืžื•ืœื˜ื™ืกืึทืžืคึผืœื™ื ื’, ืžื™ื˜ืœ ืจืขื–ืขืจื•ื•ืึทืฆื™ืข,
    ื•ืžื“ื™ืจืขืงื˜ ื™ื ื“ืขืงืกื˜ ืจืขื ื“ืขืจื™ื ื’, ื˜ื™ืคืงื™ื™ึทื˜ ืจืขื ื“ืขืจื™ื ื’ ืึธืŸ ืคึผื™ืงืกืขืœ ืฉืึทื“ืขืจื–, ืกื™ื™ืžืึทืœื˜ื™ื™ื ื™ืึทืก ืึทืงืกืขืก ืฆื• ืจืขืกื•ืจืกืŸ ืคื•ืŸ ืคืึทืจืฉื™ื“ืขื ืข ื‘ืึทืคึฟืขืœืŸ ืงื™ื•ื–, ื ืึทืœ ืงื•ืงืŸ.

  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ืกื•ื•ื™ื•ื•ืข ื•ื•ืขืจื™ืึทื‘ืึทืœื–: VKD3D_CONFIG ืฆื• ืฉื˜ืขืœืŸ ืึธืคึผืฆื™ืขืก ืฆื• ื˜ื•ื™ืฉืŸ libvkd3d ื ืึทื˜ื•ืจ ืื•ืŸ VKD3D_VULKAN_DEVICE ืฆื• ืึธื•ื•ื•ืขืจืจื™ื™ื“ ื“ื™ ืžื™ื˜ืœ ืคึฟืึทืจ ื“ื™ Vulkan API.
  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื‘ื•ืคืคื™ื ืคืึธ ืฉืึทื“ืขืจ ื™ื ืกื˜ืจืึทืงืฉืึทื ื–,
    ืขื•ื•ืึทืœ_ืฆืขื ื˜ืจืึธื™ื“,
    eval_sample_index,
    ld2ms,
    ืžื•ืกื˜ืขืจ_ื‘,
    ืžื•ืกื˜ืขืจ_ื“,
    ืžื•ืกื˜ืขืจ_ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข,
    samplepos.

ืžืงื•ืจ: opennet.ru

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’