āĻ“āĻ¯āĻŧāĻžāĻ‡āĻ¨ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒ Direct3D 1.2 āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ Vkd3d 12 āĻĒā§āĻ°āĻ•āĻžāĻļ āĻ•āĻ°ā§‡āĻ›ā§‡

āĻ“āĻ¯āĻŧāĻžāĻ‡āĻ¨ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒ āĻĒā§āĻ°āĻ•āĻžāĻļāĻŋāĻ¤ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻœ āĻ°āĻŋāĻ˛āĻŋāĻœ vkd3d 1.2 āĻāĻ•āĻŸāĻŋ Direct3D 12 āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¯āĻž āĻ­āĻ˛āĻ•āĻžāĻ¨ āĻ—ā§āĻ°āĻžāĻĢāĻŋāĻ•ā§āĻ¸ āĻāĻĒāĻŋāĻ†āĻ‡āĻ¤ā§‡ āĻ¸āĻŽā§āĻĒā§āĻ°āĻšāĻžāĻ° āĻ•āĻ˛ā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡āĨ¤ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻœāĻŸāĻŋāĻ¤ā§‡ Direct3D 3 āĻāĻ° āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻ¸āĻš libvkd12d āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋ, shader āĻŽāĻĄā§‡āĻ˛ 3 āĻāĻŦāĻ‚ 4 āĻāĻ° āĻ…āĻ¨ā§āĻŦāĻžāĻĻāĻ• āĻ¸āĻš libvkd5d-shader āĻāĻŦāĻ‚ Direct3D 3 āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ° āĻĒā§‹āĻ°ā§āĻŸāĻŋāĻ‚ āĻ¸āĻšāĻœ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻ¸āĻš libvkd12d-utils, āĻ¸ā§‡āĻ‡āĻ¸āĻžāĻĨā§‡ āĻĄā§‡āĻŽā§‹ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻ¸āĻš āĻāĻ•āĻŸāĻŋ āĻ¸ā§‡āĻŸ āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ­ā§āĻ•ā§āĻ¤ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ Direct3D āĻĨā§‡āĻ•ā§‡ glxgears 12. āĻĒā§āĻ°āĻœā§‡āĻ•ā§āĻŸ āĻ•ā§‹āĻĄ āĻĻā§āĻŦāĻžāĻ°āĻž āĻŦāĻŋāĻ¤āĻ°āĻŖ LGPLv2.1 āĻāĻ° āĻ…āĻ§ā§€āĻ¨ā§‡ āĻ˛āĻžāĻ‡āĻ¸ā§‡āĻ¨ā§āĻ¸āĻĒā§āĻ°āĻžāĻĒā§āĻ¤āĨ¤

libvkd3d āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ•āĻ°ā§‡ Direct3D 12-āĻāĻ° āĻŦā§‡āĻļāĻŋāĻ°āĻ­āĻžāĻ— āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯, āĻ¯āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻ—ā§āĻ°āĻžāĻĢāĻŋāĻ•ā§āĻ¸ āĻāĻŦāĻ‚ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻŋāĻ‚ āĻ¸ā§āĻŦāĻŋāĻ§āĻž, āĻ¸āĻžāĻ°āĻŋ āĻāĻŦāĻ‚ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž, āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄā§‡āĻ˛ āĻāĻŦāĻ‚ āĻšāĻŋāĻĒ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄā§‡āĻ˛, āĻ°ā§āĻŸ āĻ¸ā§āĻŦāĻžāĻ•ā§āĻˇāĻ°, āĻ…āĻ°ā§āĻĄāĻžāĻ°ā§‡āĻ° āĻŦāĻžāĻ‡āĻ°ā§‡āĻ° āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸, āĻ¸ā§āĻ¯āĻžāĻŽā§āĻĒāĻ˛āĻžāĻ°, āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻ¸ā§āĻŦāĻžāĻ•ā§āĻˇāĻ°, āĻ°ā§āĻŸ āĻ§ā§āĻ°ā§āĻŦāĻ•, āĻĒāĻ°ā§‹āĻ•ā§āĻˇ āĻ°ā§‡āĻ¨ā§āĻĄāĻžāĻ°āĻŋāĻ‚, āĻĒāĻ°āĻŋāĻˇā§āĻ•āĻžāĻ°*() āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻāĻŦāĻ‚ āĻ•āĻĒāĻŋ*()āĨ¤

libvkd3d-shader-āĻ, āĻļā§‡āĻĄāĻžāĻ° āĻŽāĻĄā§‡āĻ˛ 4 āĻāĻŦāĻ‚ 5-āĻāĻ° āĻŦāĻžāĻ‡āĻŸāĻ•ā§‹āĻĄā§‡āĻ° āĻ…āĻ¨ā§āĻŦāĻžāĻĻ āĻāĻ•āĻŸāĻŋ āĻŽāĻ§ā§āĻ¯āĻŦāĻ°ā§āĻ¤ā§€ SPIR-V āĻ‰āĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ¯āĻŧ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻ­āĻžāĻ°ā§āĻŸā§‡āĻ•ā§āĻ¸, āĻĒāĻŋāĻ•ā§āĻ¸ā§‡āĻ˛, āĻŸā§‡āĻ¸ā§‡āĻ˛ā§‡āĻļāĻ¨, āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸ āĻāĻŦāĻ‚ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻœā§āĻ¯āĻžāĻŽāĻŋāĻ¤āĻŋ āĻļā§‡āĻĄāĻžāĻ°, āĻ°ā§āĻŸ āĻ¸āĻŋāĻ—āĻ¨ā§‡āĻšāĻžāĻ° āĻ¸āĻŋāĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛āĻžāĻ‡āĻœā§‡āĻļāĻ¨ āĻāĻŦāĻ‚ āĻĄāĻŋāĻ¸āĻŋāĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛āĻžāĻ‡āĻœā§‡āĻļāĻ¨ āĻ¸āĻŽāĻ°ā§āĻĨāĻŋāĻ¤āĨ¤ āĻļā§‡āĻĄāĻžāĻ° āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻžāĻŦāĻ˛ā§€āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻĒāĻžāĻŸāĻŋāĻ—āĻŖāĻŋāĻ¤, āĻĒāĻžāĻ°āĻŽāĻžāĻŖāĻŦāĻŋāĻ• āĻāĻŦāĻ‚ āĻŦāĻŋāĻŸ āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻ¨, āĻ¤ā§āĻ˛āĻ¨āĻž āĻāĻŦāĻ‚ āĻĄā§‡āĻŸāĻž āĻĒā§āĻ°āĻŦāĻžāĻš āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻ°, āĻ¨āĻŽā§āĻ¨āĻž, āĻ¸āĻ‚āĻ—ā§āĻ°āĻš āĻāĻŦāĻ‚ āĻ˛ā§‹āĻĄ āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻžāĻŦāĻ˛ā§€, āĻ…-āĻ•ā§āĻ°āĻŽāĻŦāĻŋāĻšā§€āĻ¨ āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻ¨ (āĻ‡āĻ‰āĻāĻ­āĻŋ, āĻ†āĻ¨āĻ…āĻ°ā§āĻĄāĻžāĻ°āĻĄ āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ āĻ­āĻŋāĻ‰)āĨ¤

āĻ¸āĻŦāĻšā§‡āĻ¯āĻŧā§‡ āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ–āĻ¯ā§‹āĻ—ā§āĻ¯ āĻŽāĻ§ā§āĻ¯ā§‡ āĻ‰āĻĻā§āĻ­āĻžāĻŦāĻ¨ Vkd3d 1.2 āĻ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻ–āĻŋāĻ¤āĻ—ā§āĻ˛āĻŋ āĻšāĻžāĻ‡āĻ˛āĻžāĻ‡āĻŸ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡:

  • libvkd3d-shader āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋ āĻ¤ā§ƒāĻ¤ā§€āĻ¯āĻŧ āĻĒāĻ•ā§āĻˇā§‡āĻ° āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤āĨ¤
  • āĻŸā§‡āĻ¸ā§‡āĻ˛ā§‡āĻļāĻ¨ āĻļā§‡āĻĄāĻžāĻ° āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨āĨ¤
  • āĻ°ā§āĻŸ āĻ¸ā§āĻŦāĻžāĻ•ā§āĻˇāĻ°ā§‡āĻ° āĻ°ā§‚āĻĒāĻžāĻ¨ā§āĻ¤āĻ°, āĻ¸āĻŋāĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛āĻžāĻ‡āĻœā§‡āĻļāĻ¨ āĻāĻŦāĻ‚ āĻĄāĻŋāĻ¸āĻŋāĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛āĻžāĻ‡āĻœā§‡āĻļāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ (vkd3d_serialize_versioned_root_signature() āĻāĻŦāĻ‚ vkd3d_create_versioned_root_signature_deserializer())āĨ¤
  • āĻ¸ā§āĻŸā§āĻ°āĻŋāĻŽāĻŋāĻ‚ āĻ†āĻ‰āĻŸāĻĒā§āĻŸ āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨.
  • āĻŽāĻžāĻ˛ā§āĻŸāĻŋāĻ¸ā§āĻ¯āĻžāĻŽā§āĻĒāĻ˛āĻŋāĻ‚, āĻ°āĻŋāĻ¸ā§‹āĻ°ā§āĻ¸ āĻ°āĻŋāĻœāĻžāĻ°ā§āĻ­ā§‡āĻļāĻ¨,
    āĻ‡āĻ¨āĻĄāĻžāĻ‡āĻ°ā§‡āĻ•ā§āĻŸ āĻ‡āĻ¨āĻĄā§‡āĻ•ā§āĻ¸āĻĄ āĻ°ā§‡āĻ¨ā§āĻĄāĻžāĻ°āĻŋāĻ‚, āĻĒāĻŋāĻ•ā§āĻ¸ā§‡āĻ˛ āĻļā§‡āĻĄāĻžāĻ° āĻ›āĻžāĻĄāĻŧāĻž āĻĄā§‡āĻĒāĻĨ āĻ°ā§‡āĻ¨ā§āĻĄāĻžāĻ°āĻŋāĻ‚, āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻ•āĻŋāĻ‰ āĻĨā§‡āĻ•ā§‡ āĻ°āĻŋāĻ¸ā§‹āĻ°ā§āĻ¸ā§‡ āĻāĻ•āĻ¯ā§‹āĻ—ā§‡ āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸, āĻ¨āĻžāĻ˛-āĻ­āĻŋāĻ‰āĨ¤

  • āĻāĻ¨āĻ­āĻžāĻ¯āĻŧāĻ°āĻ¨āĻŽā§‡āĻ¨ā§āĻŸ āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡: VKD3D_CONFIG libvkd3d āĻ†āĻšāĻ°āĻŖ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻ¸ā§‡āĻŸ āĻ•āĻ°āĻ¤ā§‡ āĻāĻŦāĻ‚ VKD3D_VULKAN_DEVICE Vulkan API-āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻĄāĻŋāĻ­āĻžāĻ‡āĻ¸āĻŸāĻŋāĻ•ā§‡ āĻ“āĻ­āĻžāĻ°āĻ°āĻžāĻ‡āĻĄ āĻ•āĻ°āĻ¤ā§‡āĨ¤
  • bufinfo shader āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻžāĻŦāĻ˛ā§€āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡,
    eval_centroid,
    eval_sample_index,
    ld2ms,
    āĻ¨āĻŽā§āĻ¨āĻž_āĻŦāĻŋ,
    āĻ¨āĻŽā§āĻ¨āĻž_āĻĄāĻŋ,
    āĻ¨āĻŽā§āĻ¨āĻž_āĻ¤āĻĨā§āĻ¯,
    āĻ¨āĻŽā§āĻ¨āĻž

āĻ‰āĻ¤ā§āĻ¸: opennet.ru

āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœā§āĻĄāĻŧā§āĻ¨