LINUX.ORG.RU
ФорумTalks

Экспериментировал с virgl, запустил но с артефактами

 


0

1

Итак, собрался я попробовать новый qemu с virgl
много всего собрал

Ядро - 4.5.0-rc3 под x86_64 с overlayfs и squashfs
Месу - commit 0bba5ca468cdcd1f6f9bb6736c8a75e43fbe0cd5 (OpenGL version string: 3.0 Mesa 11.2.0-devel (git-0bba5ca))
libepoxy 1.3.1 из слакбилда
virglrenderer - commit 7b776ec86658d1efeff8b92956a2f4b19c54e58c
qemu - commit a5af12871fd4601c44f08d9e49131e9ca13ef102 (Configured with: './configure' '--prefix=/usr' '--disable-gtk' '--enable-virglrenderer' '--enable-sdl' '--with-sdlabi=2.0' '--audio-drv-list=alsa,oss' '--host-cc=/opt/gcc49/bin/gcc' '--enable-opengl' '--extra-cflags=-O3 -march=i686 -mtune=native -m32 -Wno-maybe-uninitialized' - а при arch i486 оно не линковалось!)

SDL2 2.0.4 - из слакбилда.

И ..всё это НЕ заработало, крашилось!

Оказалось, нужно X server новее моего 1.12.x, видимо с поддержкой GLX_ARB_create_context, GLX_ARB_create_context_profile , а иначе все крашилось при попытке qemu начать использовать видеоадаптер даже в консоли (при загрузке в госте соотв. drm драйвера). Собрал новый Х-сервер, 1.18.1 Запускаю, уже не крашится, но и внутри что-то не работает. Оказалось, для гостя нужно Х сервер с поддержкой glamor для драйвера (встроенного) modesetting, а при сборке по умолчанию этого не происходило. Добавил --enable-glamor при конфигурации X server'а , закинул получившийся сервер на liveDVD, и наконец-то!

./x86_64-softmmu/qemu-system-x86_64 -cdrom /home/admin/slaxdvd-4.5.0-x64-test.iso -m 512 -display sdl,gl=on -enable-kvm -soundhw es1370 -usb -vga virtio -usbdevice mouse -cpu host

Заработало! Мышка правда почему-то внутри гостя бесилась, пока не указал usb mouse. И ещё, если на /dev/shm юзер, от которого делали startx и запускали сессию и проги не имеет прав записи - всё, связанное с dri3 (!) будет сегфолтится. Сам Х-сервер в моём случае видимо выживал за счет suid-бита. Это всё без systemd и прочих - на сильно проапгрейженой Слаквари.

Но увы, не работает пока это на nouveau/nv50 толком. Колёсики glxgears крутятся, а вот та же seamonkey превращается в мешанину из текста и артефактов.

http://ibin.co/2XCIj5vhR9l8

при LIBGL_ALWAYS_SOFTWARE=1 перед стартом qemu - всё становится медленно-медленно, зато без артефактов.

Тоже игрался с virgl, но все отображалось хорошо.

CYB3R ★★★★★ ()

virgl
4.5.0-rc3
nouveau/nv50
SLACKWARE

CCCCCCCCCCCCOOOOOOOMMMMBBO!!!!!!!!!! Изврат. Просто монстр!

nexfwall ★★★★ ()
Последнее исправление: nexfwall (всего исправлений: 1)

ну нуво скорее все тут корень зла у меня все отлично работает, даже вайны, за исключением конечно низковатой скорости и артефактов в валлей(https://www.youtube.com/watch?v=K7GUjmEr0rc)

Ну и я использую не ванилый qemu

http://www.gearsongallium.com/?p=2670

https://www.youtube.com/watch?v=PYqj6-D7pfM

https://www.youtube.com/watch?v=Ir_to-SuwXE

Novell-ch ★★★★★ ()
Ответ на: комментарий от Novell-ch

Ещё бы понять, что конкретно не работает в нуво. Что-то с openGL state надо полагать не так. Если отключить GL_ARB_map_buffer_range на хосте - то артефактов становится просто море (я включение этого расширения подсмотрел в коде glamor). Теста под него по крайней мере в современном piglit я не вижу - а это вроде как расширение из OpenGL 3.0 ещё.

Andrew-R ★★★ ()
Ответ на: комментарий от Andrew-R

а с nouveau драйвером не работает что ли, оно на гламор не завязано, так как нормально работает и на интеле с sna

Novell-ch ★★★★★ ()
Ответ на: комментарий от Novell-ch

Так я только на nouveau (на хосте) и тестировал. А пробросить карточку целиком вовнутрь виртуалки - это и о другом, и не получится на моей материнке.

Надо будет ещё другую ветку qemu попробовать, хотя там вроде сейчас больше spice пилят. Раньше ещё был драйвер xf86-video-virgl , но сейчас он просто так не собирается (была идея посмотреть, не заведётся ли с ним 2D в госте без артефактов, а 3D тогда опционально.) На llvmpipe (LIBGL_ALWAYS_SOFTWARE=1 ) на хосте 2D через glamor внутри виртуалки работает, но медленно. Но у llvmpipe и проблем с синхронизацией между CPU и GPU не бывает. Есть идея собрать допустим тот же Xephyr с glamor-ускорением, сделать apitrace.

Andrew-R ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.