---
title: Virtio-Venus
description: 3D ускорение чрез Vulkan
---

## Приложения:
- **Почти-естествено 3D ускорение**

В операционни системи, които използват `libvulkan`, като **Linux**, **BSD**'s и **Android**, you
можете да постигнете производителност, близка до тази на естествения хардуер, като преобразувате извикванията от виртуалната машина към Vulkan,
след това директно към вашия GPU и обратно, без да е необходимо да предоставяте GPU изключително на виртуалната машина.

За съжаление, **Virtio-Venus** не е наличен в **VMM**, и следователно ще изисква да използвате **qemu-cli**.
Ще трябва да запомните името, което сте дали на виртуалната машина, и къде се намира.

## Използване на Virtio-Venus в qemu-cli:
След като инсталирате подходящата виртуална машина, можете да отворите терминал и да създадете qemu-cli команда
за вашата виртуална машина. Ето пример с моята виртуална машина CachyOS:

```sh
qemu-system-x86_64                                                                             \
    -enable-kvm                                                                                \
    -M q35                                                                                     \
    -smp 6                                                                                     \
    -m 12G                                                                                     \
    -cpu host                                                                                  \
    -net nic,model=virtio                                                                      \
    -net user,hostfwd=tcp::2222-:22                                                            \
    -device virtio-sound-pci,audiodev=my_audiodev -audiodev pipewire,id=my_audiodev            \
    -device virtio-vga-gl,hostmem=4G,blob=true,venus=true                                      \
    -vga none                                                                                  \
    -display gtk,gl=on,show-cursor=on                                                          \
    -usb -device usb-tablet                                                                    \
    -object memory-backend-memfd,id=mem1,size=12G                                              \
    -machine memory-backend=mem1                                                               \
    -drive if=pflash,format=raw,readonly=on,file=/usr/share/edk2/x64/OVMF_CODE.secboot.4m.fd   \
    -drive if=pflash,format=raw,file=.config/libvirt/qemu/nvram/archlinux_VARS.fd              \
    -drive file=.local/share/libvirt/images/archlinux.qcow2
```

## Да обясним:

- `-smp 6` означава 6 процесорни ядра
- `-m 12G` означава 12GB RAM
- `-net user,hostfwd=tcp::2222-:22` означава, че порт 22 се препраща (forward) от хоста към виртуалната машина като порт 2222.
Следователно, ако искате SSH връзка към виртуалната машина от друго устройство, ще използвате:

```sh
ssh -p 2222 vmusername@vmipaddress
```

-device virtio-vga-gl,hostmem=4G,blob=true,venus=true това е venus драйверът, за съжаление все още не е наличен в
virt-manager. Когато бъде, цялата тази секция, освен user mode, ще бъде заместена.
-hostmem=4G означава, че позволявам на виртуалната машина да използва до 4GB от моя VRAM (видео памет на GPU).
-object memory-backend-memfd,id=mem1,size=12G – в тази секция size е RAM паметта, която сте дали на виртуалната машина, в моя случай 12GB.
-drive if=pflash,format=raw,readonly=on,file=/usr/share/edk2/x64/OVMF_CODE.secboot.4m.fd това е firmware файлът за виртуалната машина – просто пътят до него.
-drive if=pflash,format=raw,file=.config/libvirt/qemu/nvram/archlinux_VARS.fd това е nvram на виртуалната машина. Без този файл или ако е зададен като readonly, виртуалната машина няма да работи.
-drive file=.local/share/libvirt/images/archlinux.qcow2 това е пътят до .qcow2 файла (дисковото пространство на виртуалната машина).
(Можете да видите, че в този случай моето аудио устройство не е ich9, а pipewire – това е без значение.)
