Автор Тема: mali на mainline ядре  (Прочитано 29566 раз)

Оффлайн Mike

Re: mali на mainline ядре
« Ответ #105 : Сентябрь 20, 2018, 03:50:55 pm »
192.168.0.56:~# modinfo mali
filename:       /lib/modules/4.14.18-sunxi/extra/mali.ko
version:        r6p2-01rel0
author:         ARM Ltd.
license:        GPL
Либа gl4es скомпилена и положена в папку /usr/lib/arm-linux-gnueabihf, так же созданы симлинки
192.168.0.56:/usr/lib/arm-linux-gnueabihf# dl xorg
xorg                                    1:7.7+19ubuntu7
xorg-dev                                1:7.7+19ubuntu7
xorg-docs-core                          1:1.7.1-1.1
xorg-sgml-doctools                      1:1.11-1
xserver-xorg                            1:7.7+19ubuntu7
xserver-xorg-core                       2:1.19.6-1ubuntu4
xserver-xorg-dev                        2:1.19.6-1ubuntu4
xserver-xorg-input-libinput             0.27.1-1
xserver-xorg-video-armsoc-sun4i         1.4.1~armbian5.38+1
Да, иксы были запущены.




Оффлайн Lipton

Re: mali на mainline ядре
« Ответ #106 : Сентябрь 20, 2018, 05:02:56 pm »
лог иксов скиньте cat /var/log/Xorg.0.org

Оффлайн Lipton

Re: mali на mainline ядре
« Ответ #107 : Сентябрь 21, 2018, 12:25:31 pm »
Да, иксы были запущены.
накидал инструкцию для armbian bionic beaver, так точно работает gl4es:
apt update && apt upgrade
reboot
sed -i -e 's/.*CONFIG_DRM_FBDEV_OVERALLOC=.*/CONFIG_DRM_FBDEV_OVERALLOC=300/' /boot/config-$(uname -r)
echo 'extraargs="drm_kms_helper.drm_fbdev_overalloc=300"' >> /boot/armbianEnv.txt
apt install linux-headers-next-sunxi quilt xorg-dev xterm libudev-dev xutils-dev libtool x-window-system xserver-xorg-video-armsoc-sun4i glmark2-es2 mesa-utils mesa-utils-extra cmake
reboot
mkdir mali
cd mali/
git clone https://github.com/mripard/sunxi-mali
cd sunxi-mali
export CROSS_COMPILE=arm-linux-gnueabihf-
export KDIR=/lib/modules/$(uname -r)/build
./build.sh -r r6p2 -b
mkdir /lib/modules/$(uname -r)/kernel/drivers/gpu/mali
cp mali.ko /lib/modules/$(uname -r)/kernel/drivers/gpu/mali/
depmod
modprobe mali
cd ..
git clone https://github.com/bootlin/mali-blobs.git
mkdir /usr/lib/mali
cp -a mali-blobs/r6p2/arm/x11_dma_buf/lib* /usr/lib/mali/
sed -i -e '1 s/^/\/usr\/lib\/mali\/\n/;' /etc/ld.so.conf
git clone https://github.com/ptitSeb/gl4es
cd gl4es
cmake . -DODROID=1; make GL
mv /usr/lib/arm-linux-gnueabihf/libGL.so.1.0.0 ./libGL.so.1.0.0_bkup
cp lib/libGL.so.1 /usr/lib/arm-linux-gnueabihf/libGL.so.1.0.0
ldconfig

без прослойки:
root@orangepione:~/mali/gl4es# DISPLAY=:0 glxgears -fullscreen
libGL error: unable to load driver: sun4i-drm_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: sun4i-drm
15 frames in 5.1 seconds =  2.947 FPS
25 frames in 5.0 seconds =  4.977 FPS
25 frames in 5.0 seconds =  4.975 FPS

с ней:
root@orangepione:~/mali/gl4es# DISPLAY=:0 glxgears -fullscreen
LIBGL: Initialising gl4es
LIBGL: v1.0.9 built on Sep 21 2018 09:06:52
LIBGL: Using GLES 1.1 backend
LIBGL:loaded: libGLESv1_CM.so
LIBGL:loaded: libEGL.so
LIBGL: Using GLES 1.1 backend
LIBGL: Extension GL_OES_framebuffer_object detected and used
LIBGL: Extension GL_OES_point_sprite detected and used
LIBGL: Extension GL_OES_point_size_array detected
LIBGL: Extension GL_OES_texture_cube_map detected and used
LIBGL: Extension GL_OES_mapbuffer detected
LIBGL: Extension GL_OES_packed_depth_stencil detected and used
LIBGL: Extension GL_OES_depth24 detected and used
LIBGL: Extension GL_OES_rgb8_rgba8 detected and used
LIBGL: Extension GL_EXT_texture_format_BGRA8888 detected and used
LIBGL: Extension GL_OES_depth_texture detected and used
LIBGL: Extension GL_OES_draw_texture detected and used
LIBGL: Max texture size: 4096
LIBGL: Texture Units: 8(8), Max lights: 8, Max planes: 1
LIBGL: Hardware vendor is ARM
LIBGL: Targeting OpenGL 1.5
LIBGL: glXMakeCurrent FBO workaround enabled
LIBGL: Current folder is:/root/mali/gl4es
Running synchronized to the vertical refresh.  The framerate should be
approximately the same as the monitor refresh rate.
302 frames in 5.0 seconds = 60.369 FPS
301 frames in 5.0 seconds = 60.022 FPS
301 frames in 5.0 seconds = 60.023 FPS
« Последнее редактирование: Сентябрь 21, 2018, 12:28:32 pm от Lipton »

Оффлайн Olej

Re: mali на mainline ядре
« Ответ #108 : Сентябрь 21, 2018, 12:37:38 pm »
для armbian bionic beaver, так точно работает gl4es:
1. это какое там ядро (uname -r) сейчас в этом armbian bionic beaver после всех upgrade?
2. это всё обсуждаемое только и исключительно для -fullscreen ?


Оффлайн Lipton

Re: mali на mainline ядре
« Ответ #109 : Сентябрь 21, 2018, 12:49:30 pm »
1. это какое там ядро (uname -r) сейчас в этом armbian bionic beaver после всех upgrade?
2. это всё обсуждаемое только и исключительно для -fullscreen ?
1. 4.14.70-sunxi
2.
без:
root@orangepione:~/mali/gl4es# DISPLAY=:0 glxgears
libGL error: unable to load driver: sun4i-drm_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: sun4i-drm
104 frames in 5.0 seconds = 20.706 FPS
185 frames in 5.0 seconds = 36.855 FPS
185 frames in 5.0 seconds = 36.843 FPS
184 frames in 5.0 seconds = 36.721 FPS

с:
root@orangepione:~/mali/gl4es# DISPLAY=:0 glxgears
LIBGL: Initialising gl4es
LIBGL: v1.0.9 built on Sep 21 2018 09:06:52
LIBGL: Using GLES 1.1 backend
LIBGL:loaded: libGLESv1_CM.so
LIBGL:loaded: libEGL.so
LIBGL: Using GLES 1.1 backend
LIBGL: Extension GL_OES_framebuffer_object detected and used
LIBGL: Extension GL_OES_point_sprite detected and used
LIBGL: Extension GL_OES_point_size_array detected
LIBGL: Extension GL_OES_texture_cube_map detected and used
LIBGL: Extension GL_OES_mapbuffer detected
LIBGL: Extension GL_OES_packed_depth_stencil detected and used
LIBGL: Extension GL_OES_depth24 detected and used
LIBGL: Extension GL_OES_rgb8_rgba8 detected and used
LIBGL: Extension GL_EXT_texture_format_BGRA8888 detected and used
LIBGL: Extension GL_OES_depth_texture detected and used
LIBGL: Extension GL_OES_draw_texture detected and used
LIBGL: Max texture size: 4096
LIBGL: Texture Units: 8(8), Max lights: 8, Max planes: 1
LIBGL: Hardware vendor is ARM
LIBGL: Targeting OpenGL 1.5
LIBGL: glXMakeCurrent FBO workaround enabled
LIBGL: Current folder is:/root/mali/gl4es
Running synchronized to the vertical refresh.  The framerate should be
approximately the same as the monitor refresh rate.
302 frames in 5.0 seconds = 60.329 FPS
301 frames in 5.0 seconds = 60.020 FPS
301 frames in 5.0 seconds = 60.020 FPS
301 frames in 5.0 seconds = 60.027 FPS
301 frames in 5.0 seconds = 60.025 FPS

Оффлайн Olej

Re: mali на mainline ядре
« Ответ #110 : Сентябрь 21, 2018, 12:52:22 pm »
без:
Интересно было бы как-раз сравнение "без" а). с загруженным модулем mali и б). с выгруженным модулем mali.

Оффлайн Lipton

Re: mali на mainline ядре
« Ответ #111 : Сентябрь 21, 2018, 01:05:07 pm »
что за изврат? Ясен хрен "без" отличаться не будет, т.к. мали не умеет напрямую opengl:
root@orangepione:~/mali/gl4es# lsmod | grep mali
root@orangepione:~/mali/gl4es# DISPLAY=:0 glxgears
libGL error: unable to load driver: sun4i-drm_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: sun4i-drm
117 frames in 5.0 seconds = 23.337 FPS
185 frames in 5.0 seconds = 36.870 FPS
185 frames in 5.0 seconds = 36.912 FPS

Оффлайн Olej

Re: mali на mainline ядре
« Ответ #112 : Сентябрь 21, 2018, 01:33:34 pm »
что за изврат? Ясен хрен "без" отличаться не будет, т.к. мали не умеет напрямую opengl:
Т.е. итоговый вывод должен звучать так: для всех применений, кроме полноэкранных кинотеатров, вся эта возня с mali не имеет ни малейшего смысла - это даром убитое время.
Так?

Оффлайн Lipton

Re: mali на mainline ядре
« Ответ #113 : Сентябрь 21, 2018, 01:39:29 pm »

Т.е. итоговый вывод должен звучать так: для всех применений, кроме полноэкранных кинотеатров, вся эта возня с mali не имеет ни малейшего смысла - это даром убитое время.
Так?

Диаметрально противоположно. OpenGL через прослойку gl4es работает с mali в любом режиме, хоть в полноэкранном, хоть в оконном. Я на кой хрен все логи то выложил? Глазками посмотрите уже.

Оффлайн Olej

Re: mali на mainline ядре
« Ответ #114 : Сентябрь 21, 2018, 02:21:13 pm »
Вы говорите про OpenGL или openGL ES ?
я, не программист, но очевидно это разные API.
OpenGL ES есть подмножеством OpenGL, свободным от всяких роялти, адаптированным под встраиваемость (? что очень сомнительно)... Т.е. различия не радикально большие.
См. OpenGL ES.

 

Оффлайн Olej

Re: mali на mainline ядре
« Ответ #115 : Сентябрь 21, 2018, 02:41:04 pm »
OpenGL через прослойку gl4es работает с mali в любом режиме, хоть в полноэкранном, хоть в оконном.
Я не понимаю что вы всё "в споре славян меж собой" называете прослойкой gl4es?
В вашей инструкции:
Цитировать
cd gl4es
cmake . -DODROID=1; make GL
mv /usr/lib/arm-linux-gnueabihf/libGL.so.1.0.0 ./libGL.so.1.0.0_bkup
cp lib/libGL.so.1 /usr/lib/arm-linux-gnueabihf/libGL.so.1.0.0
ldconfig
Т.е. вы собранной библиотекой замещаете установленную ранее в системе библиотеку libGL.so.
Где здесь "прослойка"?

Оффлайн Lipton

Re: mali на mainline ядре
« Ответ #116 : Сентябрь 21, 2018, 02:49:37 pm »
Вы говорите про OpenGL или openGL ES ?
я, не программист, но очевидно это разные API.
OpenGL ES есть подмножеством OpenGL
OpenGL и OpenGLES используют разные so библиотеки.
Цитировать
Т.е. вы собранной библиотекой замещаете установленную ранее в системе библиотеку libGL.so.
Где здесь "прослойка"?
прослойка в том что LibGL.so начинает работать через libGLES.so.
gl4es это форк glshim:
https://github.com/lunixbochs/glshim

This is a shim providing OpenGL 1.x functionality to OpenGL ES accelerated cards.


Оффлайн Olej

Re: mali на mainline ядре
« Ответ #117 : Сентябрь 21, 2018, 07:07:33 pm »
OpenGL и OpenGLES используют разные so библиотеки.
Естественно, что разные - OpenGL ES есть подмножеством OpenGL, и не повторяет его полностью.
прослойка в том что LibGL.so начинает работать через libGLES.so.
Да не начинает оно работать через. Вот этой командой вы же подменяете библиотеку LibGL.so  на libGLES.so :
Цитировать
cp lib/libGL.so.1 /usr/lib/arm-linux-gnueabihf/libGL.so.1.0.0
Которая начинает использоваться вместо оригинального OpenGL.
Для GPU поплоше, которые реализуют упрощённый вариант OpenGL ES:
This is a shim providing OpenGL 1.x functionality to OpenGL ES accelerated cards.

Оффлайн Olej

Re: mali на mainline ядре
« Ответ #118 : Сентябрь 21, 2018, 07:21:41 pm »
OpenGL через прослойку gl4es работает с mali в любом режиме, хоть в полноэкранном, хоть в оконном. Я на кой хрен все логи то выложил?
Это очень хорошо бы, если так (это я по поводу "работает", а не по поводу "выложил").
Хорошо бы ещё подобрать простенький тест, который визуально мог бы демонстрировать разницу в прорисовке с  использованием GPU mali и без использования аппаратных его возможностей.
Можно бы по-быстренькому написать код ... но, помниться, было много таких визуальных тестов разных, прорисовывающих на скорость что-то типа фигур Лисажу ... нужно будет вспомнить и найти.
 

Оффлайн Olej

Re: mali на mainline ядре
« Ответ #119 : Сентябрь 21, 2018, 07:34:51 pm »
Хорошо бы ещё подобрать простенький тест, который визуально мог бы демонстрировать разницу в прорисовке с  использованием GPU mali и без использования аппаратных его возможностей.
Довести демонстрацию возможностей до чего-то типа такого: ТЕСТИРОВАНИЕ ВИДЕОКАРТЫ В LINUX.