āĻ­ā§‡āĻ¨āĻžāĻ¸ āĻšāĻ˛ Vukan API-āĻāĻ° āĻ‰āĻĒāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§‡ QEMU āĻāĻŦāĻ‚ KVM-āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛ GPU

Collabora āĻ­ā§‡āĻ¨āĻžāĻ¸ āĻĄā§āĻ°āĻžāĻ‡āĻ­āĻžāĻ° āĻšāĻžāĻ˛ā§ āĻ•āĻ°ā§‡āĻ›ā§‡, āĻ¯āĻž Vukan āĻ—ā§āĻ°āĻžāĻĢāĻŋāĻ•ā§āĻ¸ API-āĻāĻ° āĻ‰āĻĒāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§‡ āĻāĻ•āĻŸāĻŋ āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛ GPU (VirtIO-GPU) āĻ…āĻĢāĻžāĻ° āĻ•āĻ°ā§‡āĨ¤ āĻ­ā§‡āĻ¨āĻžāĻ¸ OpenGL API-āĻāĻ° āĻ‰āĻĒāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§‡ āĻĒā§‚āĻ°ā§āĻŦā§‡ āĻ‰āĻĒāĻ˛āĻŦā§āĻ§ VirGL āĻĄā§āĻ°āĻžāĻ‡āĻ­āĻžāĻ°ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻžāĻĻā§ƒāĻļā§āĻ¯āĻĒā§‚āĻ°ā§āĻŖ āĻāĻŦāĻ‚ āĻāĻ›āĻžāĻĄāĻŧāĻžāĻ“ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻ—ā§‡āĻ¸ā§āĻŸ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽāĻ•ā§‡ 3D āĻ°ā§‡āĻ¨ā§āĻĄāĻžāĻ°āĻŋāĻ‚āĻ¯āĻŧā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛ GPU āĻĻā§‡āĻ“āĻ¯āĻŧāĻžāĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧ, āĻāĻ•ā§āĻ¸āĻ•ā§āĻ˛ā§āĻ¸āĻŋāĻ­āĻŋāĻŸāĻŋ āĻ›āĻžāĻĄāĻŧāĻžāĻ‡ āĻāĻŦāĻ‚ āĻļāĻžāĻ°ā§€āĻ°āĻŋāĻ• GPU-āĻ¤ā§‡ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ āĻ›āĻžāĻĄāĻŧāĻžāĻ‡āĨ¤ āĻ­ā§‡āĻ¨āĻžāĻ¸ āĻ•ā§‹āĻĄ āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡āĻ‡ āĻŽā§‡āĻ¸āĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ­ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻāĻŦāĻ‚ 21.1 āĻ°āĻŋāĻ˛āĻŋāĻœ āĻĨā§‡āĻ•ā§‡ āĻļāĻŋāĻĒāĻŋāĻ‚ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤

āĻ­ā§‡āĻ¨āĻžāĻ¸ āĻĄā§āĻ°āĻžāĻ‡āĻ­āĻžāĻ° āĻ­āĻ˛āĻ•āĻžāĻ¨ āĻ—ā§āĻ°āĻžāĻĢāĻŋāĻ•ā§āĻ¸ āĻāĻĒāĻŋāĻ†āĻ‡ āĻ•āĻŽāĻžāĻ¨ā§āĻĄā§‡āĻ° āĻ¸āĻŋāĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛āĻžāĻ‡āĻœ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ Virtio-GPU āĻĒā§āĻ°ā§‹āĻŸā§‹āĻ•āĻ˛ āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ•āĻ°ā§‡āĨ¤ āĻ—ā§‡āĻ¸ā§āĻŸ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻĒāĻžāĻļā§‡ āĻ°ā§‡āĻ¨ā§āĻĄāĻžāĻ°āĻŋāĻ‚āĻ¯āĻŧā§‡āĻ° āĻœāĻ¨ā§āĻ¯, virglrenderer āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¯āĻž āĻ­ā§‡āĻ¨āĻžāĻ¸ āĻāĻŦāĻ‚ VirGL āĻĄā§āĻ°āĻžāĻ‡āĻ­āĻžāĻ° āĻĨā§‡āĻ•ā§‡ Vulkan āĻāĻŦāĻ‚ OpenGL āĻ•āĻŽāĻžāĻ¨ā§āĻĄā§‡ āĻ•āĻŽāĻžāĻ¨ā§āĻĄā§‡āĻ° āĻ…āĻ¨ā§āĻŦāĻžāĻĻ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡āĨ¤ āĻŽā§‡āĻ¸āĻžāĻ° ANV (Intel) āĻŦāĻž RADV (AMD) Vulkan āĻĄā§āĻ°āĻžāĻ‡āĻ­āĻžāĻ°āĻ—ā§āĻ˛āĻŋ āĻšā§‹āĻ¸ā§āĻŸ āĻ¸āĻžāĻ‡āĻĄā§‡ āĻļāĻžāĻ°ā§€āĻ°āĻŋāĻ• GPU-āĻāĻ° āĻ¸āĻžāĻĨā§‡ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻ…ā§āĻ¯āĻžāĻ•ā§āĻŸ āĻ•āĻ°āĻ¤ā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤

āĻ¨ā§‹āĻŸāĻŸāĻŋ QEMU āĻāĻŦāĻ‚ KVM-āĻāĻ° āĻ‰āĻĒāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§‡ āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛āĻžāĻ‡āĻœā§‡āĻļāĻ¨ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ āĻ­ā§‡āĻ¨āĻžāĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻ¨āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡āĨ¤ āĻšā§‹āĻ¸ā§āĻŸ-āĻ¸āĻžāĻ‡āĻĄ āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ /dev/udmabuf (CONFIG_UDMABUF āĻŦāĻŋāĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§āĻ¨) āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¸āĻš Linux kernel 5.16-rc āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨, āĻ¸ā§‡āĻ‡āĻ¸āĻžāĻĨā§‡ āĻ†āĻ˛āĻžāĻĻāĻž āĻļāĻžāĻ–āĻž virglrenderer (res-sharing branch) āĻāĻŦāĻ‚ QEMU (āĻ­ā§‡āĻ¨āĻžāĻ¸-āĻĻā§‡āĻŦ āĻļāĻžāĻ–āĻž)āĨ¤ āĻ—ā§‡āĻ¸ā§āĻŸ āĻ¸āĻžāĻ‡āĻĄā§‡, āĻ†āĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ Linux 5.16-rc āĻ•āĻžāĻ°ā§āĻ¨ā§‡āĻ˛ āĻāĻŦāĻ‚ Mesa 21.1+ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻœ āĻ¯āĻž "-Dvulkan-drivers=virtio-experimental" āĻŦāĻŋāĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¤ā§ˆāĻ°āĻŋāĨ¤

āĻ­ā§‡āĻ¨āĻžāĻ¸ āĻšāĻ˛ Vukan API-āĻāĻ° āĻ‰āĻĒāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§‡ QEMU āĻāĻŦāĻ‚ KVM-āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛ GPU


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

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