Open wuweidong0107 opened 6 years ago
Hi @wuweidong0107 can you paste in your x11 log? It seems x11 is using swrast or something like that instead of Mali for rendering.
[ 12.212]
X.Org X Server 1.16.4
Release Date: 2014-12-20
[ 12.212] X Protocol Version 11, Revision 0
[ 12.212] Build Operating System: Linux 3.16.0-0.bpo.4-armmp-lpae armv7l Debian
[ 12.212] Current Operating System: Linux FriendlyELEC 4.14.0 #7 SMP Tue Dec 26 18:59:57 CST 2017 armv7l
[ 12.212] Kernel command line: console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootfstype=ext4 rw rootwait fsck.repair=yes panic=10 fbcon=map:0
[ 12.213] Build Date: 11 February 2015 01:18:06AM
[ 12.213] xorg-server 2:1.16.4-1 (http://www.debian.org/support)
[ 12.213] Current version of pixman: 0.32.6
[ 12.213] Before reporting problems, check http://wiki.x.org
to make sure that you have the latest version.
[ 12.213] Markers: (--) probed, () from config file, (==) default setting,
(++) from command line, (!!) notice, (II) informational,
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[ 12.214] (==) Log file: "/var/log/Xorg.0.log", Time: Thu Jan 1 08:00:18 1970
[ 12.245] (==) Using config file: "/etc/X11/xorg.conf"
[ 12.245] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[ 12.300] (==) No Layout section. Using the first Screen section.
[ 12.300] (==) No screen section available. Using defaults.
[ 12.300] () |-->Screen "Default Screen Section" (0)
[ 12.300] () | |-->Monitor "
[ 12.632] (WW) Falling back to old probe method for armsoc [ 12.632] (II) No BusID or DriverName specified - opening /dev/dri/card0 [ 12.632] (II) Got BusID display-engine [ 12.632] (II) Opened DRM [ 12.633] (II) DeviceName is [/dev/dri/card0] [ 12.633] (II) bus_id is [display-engine] [ 12.633] (II) DriverName is [sun4i-drm] [ 12.633] (II) version is [1.0.0] [ 12.633] (II) Screen:0, CRTC:-1 [ 12.633] (WW) VGA arbiter: cannot open kernel arbiter, no multi-card support [ 12.633] (II) ARMSOC(0): Creating default Display subsection in Screen section "Default Screen Section" for depth/fbbpp 24/32 [ 12.633] (==) ARMSOC(0): Depth 24, (==) framebuffer bpp 32 [ 12.633] (==) ARMSOC(0): RGB weight 888 [ 12.633] (==) ARMSOC(0): Using gamma correction (1.0, 1.0, 1.0) [ 12.633] (==) ARMSOC(0): Default visual is TrueColor [ 12.633] (II) No BusID or DriverName specified - opening /dev/dri/card0 [ 12.633] (II) Got BusID display-engine [ 12.634] (II) Opened DRM [ 12.634] (II) DeviceName is [/dev/dri/card0] [ 12.634] (II) bus_id is [display-engine] [ 12.634] (II) DriverName is [sun4i-drm] [ 12.634] (II) version is [1.0.0] [ 12.634] (II) ARMSOC(0): Chipset: Mali [ 12.634] (II) ARMSOC(0): Buffer Flipping is Enabled [ 12.634] (II) ARMSOC(0): umplock is Enabled [ 12.634] (II) ARMSOC(0): Setting the video modes ... [ 12.635] (II) ARMSOC(0): Adding all CRTCs [ 12.635] (II) ARMSOC(0): Got CRTC: 0 (id: 28) [ 12.637] (II) ARMSOC(0): Output HDMI-1 has no monitor section [ 12.638] (II) ARMSOC(0): Printing probed modes for output HDMI-1 [ 12.638] (II) ARMSOC(0): Modeline "1024x768"x60.0 65.00 1024 1048 1184 1344 768 771 777 806 -hsync -vsync (48.4 kHz e) [ 12.638] (II) ARMSOC(0): Modeline "800x600"x60.3 40.00 800 840 968 1056 600 601 605 628 +hsync +vsync (37.9 kHz e) [ 12.638] (II) ARMSOC(0): Modeline "800x600"x56.2 36.00 800 824 896 1024 600 601 603 625 +hsync +vsync (35.2 kHz e) [ 12.638] (II) ARMSOC(0): Modeline "848x480"x60.0 33.75 848 864 976 1088 480 486 494 517 +hsync +vsync (31.0 kHz e) [ 12.638] (II) ARMSOC(0): Modeline "640x480"x59.9 25.18 640 656 752 800 480 490 492 525 -hsync -vsync (31.5 kHz e) [ 12.638] (II) ARMSOC(0): Output HDMI-1 connected [ 12.638] (II) ARMSOC(0): Using exact sizes for initial modes [ 12.639] (II) ARMSOC(0): Output HDMI-1 using initial mode 1024x768 [ 12.639] (II) ARMSOC(0): Got KMS resources [ 12.639] (==) ARMSOC(0): DPI set to (96, 96) [ 12.639] (II) Loading sub module "dri2" [ 12.639] (II) LoadModule: "dri2" [ 12.639] (II) Module "dri2" already built-in [ 12.639] (II) Loading sub module "exa" [ 12.639] (II) LoadModule: "exa" [ 12.642] (II) Loading /usr/lib/xorg/modules/libexa.so [ 12.653] (II) Module exa: vendor="X.Org Foundation" [ 12.654] compiled for 1.16.4, module version = 2.6.0 [ 12.654] ABI class: X.Org Video Driver, version 18.0 [ 12.654] (II) Loading sub module "fb" [ 12.654] (II) LoadModule: "fb" [ 12.655] (II) Loading /usr/lib/xorg/modules/libfb.so [ 12.671] (II) Module fb: vendor="X.Org Foundation" [ 12.671] compiled for 1.16.4, module version = 1.0.0 [ 12.671] ABI class: X.Org ANSI C Emulation, version 0.4 [ 12.671] (--) Depth 24 pixmap format is 32 bpp [ 12.686] (II) ARMSOC(0): Initialized a depth-32 visual for XRGB8888 [ 12.687] (II) ARMSOC(0): Soft EXA mode [ 12.688] (II) EXA(0): Driver allocated offscreen pixmaps [ 12.688] (II) EXA(0): Driver registered support for the following operations: [ 12.688] (II) Solid [ 12.688] (II) Copy [ 12.689] (II) Composite (RENDER acceleration) [ 12.689] (II) ARMSOC(0): Setting swap chain size: 2 [ 12.689] (II) ARMSOC(0): [DRI2] Setup complete [ 12.689] (II) ARMSOC(0): [DRI2] DRI driver: armsoc [ 12.689] (==) ARMSOC(0): Backing store enabled [ 12.690] (==) ARMSOC(0): Silken mouse enabled [ 12.697] (II) ARMSOC(0): HW cursor init() [ 12.697] (EE) ARMSOC(0): ERROR: not enough planes for HW cursor [ 12.851] (II) ARMSOC(0): RandR 1.2 enabled, ignore the following RandR disabled message. [ 12.852] (==) ARMSOC(0): DPMS enabled [ 12.853] (--) RandR disabled [ 12.897] (II) SELinux: Disabled on system [ 12.904] (EE) AIGLX error: dlopen of /usr/lib/arm-linux-gnueabihf/dri/armsoc_dri.so failed (/usr/lib/arm-linux-gnueabihf/dri/armsoc_dri.so: cannot open shared object file: No such file or directory) [ 12.904] (EE) AIGLX: reverting to software rendering [ 13.064] (II) AIGLX: Loaded and initialized swrast [ 13.065] (II) GLX: Initialized DRISWRAST GL provider for screen 0 [ 13.068] (II) ARMSOC(0): Setting screen physical size to 270 x 203 [ 13.473] (II) config/udev: Adding input device r_gpio_keys (/dev/input/event0) [ 13.474] () r_gpio_keys: Applying InputClass "evdev keyboard catchall" [ 13.474] (II) LoadModule: "evdev" [ 13.474] (II) Loading /usr/lib/xorg/modules/input/evdev_drv.so [ 13.498] (II) Module evdev: vendor="X.Org Foundation" [ 13.498] compiled for 1.16.0, module version = 2.9.0 [ 13.498] Module class: X.Org XInput Driver [ 13.498] ABI class: X.Org XInput driver, version 21.0 [ 13.498] (II) Using input driver 'evdev' for 'r_gpio_keys' [ 13.499] () r_gpio_keys: always reports core events [ 13.499] () evdev: r_gpio_keys: Device: "/dev/input/event0" [ 13.499] (--) evdev: r_gpio_keys: Vendor 0x1 Product 0x1 [ 13.499] (--) evdev: r_gpio_keys: Found keys [ 13.500] (II) evdev: r_gpio_keys: Configuring as keyboard [ 13.500] () Option "config_info" "udev:/sys/devices/platform/r_gpio_keys/input/input0/event0" [ 13.500] (II) XINPUT: Adding extended input device "r_gpio_keys" (type: KEYBOARD, id 6) [ 13.500] () Option "xkb_rules" "evdev" [ 13.500] () Option "xkb_model" "pc105" [ 13.500] () Option "xkb_layout" "us" [ 13.508] (II) config/udev: Adding input device Logitech USB Receiver (/dev/input/event1) [ 13.508] () Logitech USB Receiver: Applying InputClass "evdev keyboard catchall" [ 13.508] (II) Using input driver 'evdev' for 'Logitech USB Receiver' [ 13.508] () Logitech USB Receiver: always reports core events [ 13.508] () evdev: Logitech USB Receiver: Device: "/dev/input/event1" [ 13.508] (--) evdev: Logitech USB Receiver: Vendor 0x46d Product 0xc534 [ 13.508] (--) evdev: Logitech USB Receiver: Found keys [ 13.509] (II) evdev: Logitech USB Receiver: Configuring as keyboard [ 13.509] () Option "config_info" "udev:/sys/devices/platform/soc/1c1b400.usb/usb6/6-1/6-1:1.0/0003:046D:C534.0001/input/input1/event1" [ 13.509] (II) XINPUT: Adding extended input device "Logitech USB Receiver" (type: KEYBOARD, id 7) [ 13.509] () Option "xkb_rules" "evdev" [ 13.509] () Option "xkb_model" "pc105" [ 13.509] () Option "xkb_layout" "us" [ 13.517] (II) config/udev: Adding input device Logitech USB Receiver (/dev/input/event2) [ 13.517] () Logitech USB Receiver: Applying InputClass "evdev pointer catchall" [ 13.517] () Logitech USB Receiver: Applying InputClass "evdev keyboard catchall" [ 13.517] (II) Using input driver 'evdev' for 'Logitech USB Receiver' [ 13.517] () Logitech USB Receiver: always reports core events [ 13.517] () evdev: Logitech USB Receiver: Device: "/dev/input/event2" [ 13.517] (--) evdev: Logitech USB Receiver: Vendor 0x46d Product 0xc534 [ 13.518] (--) evdev: Logitech USB Receiver: Found 20 mouse buttons [ 13.518] (--) evdev: Logitech USB Receiver: Found scroll wheel(s) [ 13.518] (--) evdev: Logitech USB Receiver: Found relative axes [ 13.518] (--) evdev: Logitech USB Receiver: Found x and y relative axes [ 13.518] (--) evdev: Logitech USB Receiver: Found absolute axes [ 13.518] (II) evdev: Logitech USB Receiver: Forcing absolute x/y axes to exist. [ 13.518] (--) evdev: Logitech USB Receiver: Found keys [ 13.518] (II) evdev: Logitech USB Receiver: Configuring as mouse [ 13.518] (II) evdev: Logitech USB Receiver: Configuring as keyboard [ 13.518] (II) evdev: Logitech USB Receiver: Adding scrollwheel support [ 13.518] () evdev: Logitech USB Receiver: YAxisMapping: buttons 4 and 5 [ 13.518] () evdev: Logitech USB Receiver: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200 [ 13.518] () Option "config_info" "udev:/sys/devices/platform/soc/1c1b400.usb/usb6/6-1/6-1:1.1/0003:046D:C534.0002/input/input2/event2" [ 13.518] (II) XINPUT: Adding extended input device "Logitech USB Receiver" (type: KEYBOARD, id 8) [ 13.518] () Option "xkb_rules" "evdev" [ 13.519] () Option "xkb_model" "pc105" [ 13.519] () Option "xkb_layout" "us" [ 13.520] (II) evdev: Logitech USB Receiver: initialized for relative axes. [ 13.520] (WW) evdev: Logitech USB Receiver: ignoring absolute axes. [ 13.521] () Logitech USB Receiver: (accel) keeping acceleration scheme 1 [ 13.521] () Logitech USB Receiver: (accel) acceleration profile 0 [ 13.521] () Logitech USB Receiver: (accel) acceleration factor: 2.000 [ 13.521] () Logitech USB Receiver: (accel) acceleration threshold: 4 [ 13.523] (II) config/udev: Adding input device Logitech USB Receiver (/dev/input/mouse0) [ 13.523] (II) No input driver specified, ignoring this device. [ 13.523] (II) This device may have been added with another device file. [ 13.586] (II) ARMSOC(0): hotplug=1, match=1
@wuweidong0107 it seems you didn't compile armsoc_dri.so since it complains it can't find it
Is armsoc_dri.so important? Where can I find its sources?
It is the interface for using kernel dri. xf86-video-armsoc has the sources, but when compiling it, you need libdri already compiled for target.
I prefer to disable AIGLX by changing my xorg.conf: Section "Device" Identifier "Allwinner sun4i DRM driver" Driver "armsoc" Option "DRI2" "false" EndSection
Section "ServerFlags" Option "AIGLX" "off" EndSection
Section "Extensions" Option "Composite" "Disable" EndSection
Am I on the right path?
You need DRI2 set to true to have HW acceleration. Then x11 will complain there is not armsoc_dri.so but you need it to interface with kernel dri. so retry to:
Then it should work properly. I don't know AIGLX to tell the truth
Just finish your suggest. No luck
the X11 windows is still lagging
Can you pastebin xf86-video-armsoc configure and build log? We need to understand if it found libdri correctly. also pastebin x11 log. thanks
cat /etc/X11/xorg.conf Section "Device" Identifier "Allwinner sun4i DRM driver" Driver "armsoc" Option "DRI2" "true" EndSection
xf86-video-armsoc: config.log
xorg.conf Xorg.0.log
Can you also post xf86-video-armsoc build log? I suspect you need to configure it with: ./configure --with-drmmode=sun4i
Thanks
I run ./configure --with-drmmode=sun4i. configure log is here: config.log I notice that WARNING: unrecognized options: --with-drmmode...
"make && make install" 's log is here: make_make_install.log
the X11 windows is still lagging.
kernle's log: dmesg.log
It complains about: [ 12.904] (EE) AIGLX error: dlopen of /usr/lib/arm-linux-gnueabihf/dri/armsoc_dri.so failed (/usr/lib/arm-linux-gnueabihf/dri/armsoc_dri.so: cannot open shared object file: No such file or directory) [ 12.904] (EE) AIGLX: reverting to software rendering
It's looking for armsoc_dri.so in different folder than yours. Try create symbolic link with: ln -s /usr/lib/arm-linux-gnueabihf/dri/armsoc_dri.so pointing where you have your real armsoc_dri.so In this way AIGLX should find library. It's strange, because for the rest it can find it. But give it a try.
Let me know
In my rootfs there is no armsoc_dri.so in any directory...still don't know how to get one...
Can you find armsoc_drv.so depencies? Like: readelf -d elfbin armsoc_drv.so or ldd armsoc_drv.so
At least we check if that library expects armsoc_dri.so or something else. Unfortunately I don't have environment setup to give a try.
Let me know
$ cd /usr/lib/xorg/modules/drivers $ ldd armsoc_drv.so linux-vdso.so.1 (0xbefc1000) libdrm.so.2 => /usr/lib/arm-linux-gnueabihf/libdrm.so.2 (0xb6ea4000) libpixman-1.so.0 => /usr/lib/arm-linux-gnueabihf/libpixman-1.so.0 (0xb6e1c000) libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xb6d2e000) /lib/ld-linux-armhf.so.3 (0xb6eec000) libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0xb6cba000) libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0xb6c97000)
Well, it seems there's no direct dependency with armsoc_dri.so So, try to launch strace when starting X11 and pastebin log. In this way we can check all syscalls, included when and who tries to dlopen armsoc_dri.so
I've had similar issues when the GPU clock was not configured properly. can you paste the output of /sys/kernel/debug/clk/clk_summary while your GPU tasks are running?
cat /sys/kernel/debug/clk/clk_summary while running glmark2-es2. clk_summary.txt
glmark2-es2.log score 16...very awkward
h3 maili dts: h3_mali_dts_node.txt
@mripard could it be AIGLX error inside his x11 log? https://github.com/mripard/sunxi-mali/files/1590967/Xorg.0.log
It seems he doesn't have armsoc_dri.so properly compiled or installed. So AIGLX falls back to SWRAST. Or it isn't mandatory to have armsoc_dri.so (it should be user-space driver to interface with DRI, right) ?
@wuweidong0107 the frequencies look correct. IIRC, glmark-es2 has an option to do some off-screen rendering, can you try to use that and report the results? Are you running it fullscreen?
@giuliobenetti this message shouldn't cause any harm. The glmark2-es2 logs show that we're using the correct opengl provider anyway
Can anybody offer a rom that use mainline kernel with x11+gpu for H3 ?
Wait, what have you been testing if you don't have one?
....Mine is extremly slow. And I heard yours works perfectly. So I would like to test yours...
I never tested it on an H3
@mripard I think currently the code didn't wire the PMU interrupt.
I met this on H5, which I slightly modified for Mali-450 --the driver waits for PMU interrupt, but as it's not wired by the driver it cannot get it, so it timeout and gets slow.
Can you test the branch test-pmu I just pushed?
The other results I asked for would still be valuable.
I have tha same problem on H3 armbian. When i run glxgears i get the errors:
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
503 frames in 5.0 seconds = 100.568 FPS
590 frames in 5.0 seconds = 117.965 FPS
554 frames in 5.0 seconds = 110.751 FPS
532 frames in 5.0 seconds = 106.283 FPS
You don't have sun4i-drm.so compiled probably. Here's the comment above on how to be sure to be compiled: https://github.com/mripard/sunxi-mali/issues/23#issuecomment-354273458
glxgears is an OpenGL application, the Mali supports only the Open GL ES API. So, it's not the same issue.
@wuweidong0107 what distributive are You using? You can change root password to 1234 and create dd image for me? Please, if not difficult. Thank, You!
just use glmark2-es2 --fullscreen
armsoc can't use G2D on mainline kernel, so buffers are composited by CPU (slow)
in fullscreen mode it use buffer swap - zero-copy (fast)
I also noticed before that retroarch runs faster in fullscreen. Tim Dorohin is right.
@wuweidong0107 which kernel are you using for testing?
@cuu base on: git clone https://github.com/friendlyarm/linux.git -b sunxi-4.14.y --depth 1
OpenGL applications can be offloaded to the GPU with https://ptitseb.github.io/gl4es.
I'm encountering the exact same issues as @wuweidong0107 on Armbian Stretch, with kernel linux-4.19.25-sunxi
.
Hi,guys I am testing mainline kernel + H3 + GPU by follow repo: https://github.com/mripard/sunxi-mali.git https://github.com/free-electrons/mali-blobs https://github.com/mripard/xf86-video-armsoc
About kernel: I've done these step:
About rootfs: I've done these step:
I am able to run glmark2-es2.But it is extremly slow. Only 15 fps....Any hints will be appreciated.