Skip to content
This repository has been archived by the owner on Aug 18, 2021. It is now read-only.

mainline kernel + H3-GPU + X11-window/glmark2 extremly slow #23

Open
wuweidong0107 opened this issue Dec 27, 2017 · 38 comments
Open

mainline kernel + H3-GPU + X11-window/glmark2 extremly slow #23

wuweidong0107 opened this issue Dec 27, 2017 · 38 comments

Comments

@wuweidong0107
Copy link

wuweidong0107 commented Dec 27, 2017

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:

  1. added mali node in dts
  2. cherrypicked this commit(nextthingco/linux@e390023)
  3. CONFIG_DRM_FBDEV_OVERALLOC=200

About rootfs:
I've done these step:

  1. install xf86-video-armsoc:
    $ git clone https://github.com/mripard/xf86-video-armsoc
    $./autogen.sh
    $ apt-get install libudev-dev
    $ make && make install
    $ cp /usr/local/lib/xorg/modules/drivers/* /usr/lib/xorg/modules/drivers/
    $ cp xorg.conf /etc/X11/
  2. cp x11_dma_buf/*.so* rootfs/usr/lib/

I am able to run glmark2-es2.But it is extremly slow. Only 15 fps....Any hints will be appreciated.

@giuliobenetti
Copy link
Contributor

Hi @wuweidong0107 can you paste in your x11 log? It seems x11 is using swrast or something like that instead of Mali for rendering.

@wuweidong0107
Copy link
Author

[ 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.301] (==) No device specified for screen "Default Screen Section".
Using the first device section listed.
[ 12.302] (
) | |-->Device "Allwinner sun4i DRM driver"
[ 12.302] (==) No monitor specified for screen "Default Screen Section".
Using a default monitor configuration.
[ 12.302] (==) Automatically adding devices
[ 12.302] (==) Automatically enabling devices
[ 12.302] (==) Automatically adding GPU devices
[ 12.360] (WW) The directory "/usr/share/fonts/X11/cyrillic" does not exist.
[ 12.360] Entry deleted from font path.
[ 12.360] (WW) The directory "/usr/share/fonts/X11/100dpi/" does not exist.
[ 12.360] Entry deleted from font path.
[ 12.360] (WW) The directory "/usr/share/fonts/X11/75dpi/" does not exist.
[ 12.361] Entry deleted from font path.
[ 12.361] (WW) The directory "/usr/share/fonts/X11/Type1" does not exist.
[ 12.361] Entry deleted from font path.
[ 12.361] (WW) The directory "/usr/share/fonts/X11/100dpi" does not exist.
[ 12.361] Entry deleted from font path.
[ 12.361] (WW) The directory "/usr/share/fonts/X11/75dpi" does not exist.
[ 12.361] Entry deleted from font path.
[ 12.361] (==) FontPath set to:
/usr/share/fonts/X11/misc,
built-ins
[ 12.361] (==) ModulePath set to "/usr/lib/xorg/modules"
[ 12.361] (II) The server relies on udev to provide the list of input devices.
If no devices become available, reconfigure udev or disable AutoAddDevices.
[ 12.361] (II) Loader magic: 0x59ff18
[ 12.361] (II) Module ABI versions:
[ 12.361] X.Org ANSI C Emulation: 0.4
[ 12.361] X.Org Video Driver: 18.0
[ 12.361] X.Org XInput driver : 21.0
[ 12.361] X.Org Server Extension : 8.0
[ 12.363] (II) xfree86: Adding drm device (/dev/dri/card0)
[ 12.363] (II) no primary bus or device found
[ 12.363] falling back to /sys/devices/platform/display-engine/drm/card0
[ 12.363] (II) LoadModule: "glx"
[ 12.379] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[ 12.589] (II) Module glx: vendor="X.Org Foundation"
[ 12.590] compiled for 1.16.4, module version = 1.0.0
[ 12.590] ABI class: X.Org Server Extension, version 8.0
[ 12.590] (==) AIGLX enabled
[ 12.590] (II) LoadModule: "armsoc"
[ 12.591] (II) Loading /usr/lib/xorg/modules/drivers/armsoc_drv.so
[ 12.602] (II) Module armsoc: vendor="X.Org Foundation"
[ 12.602] compiled for 1.16.4, module version = 1.4.0
[ 12.602] Module class: X.Org Video Driver
[ 12.602] ABI class: X.Org Video Driver, version 18.0
[ 12.602] (II) ARMSOC: Driver for ARM Mali compatible chipsets
[ 12.602] (++) using VT number 7

[ 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

@giuliobenetti
Copy link
Contributor

@wuweidong0107 it seems you didn't compile armsoc_dri.so since it complains it can't find it

@wuweidong0107
Copy link
Author

Is armsoc_dri.so important? Where can I find its sources?

@giuliobenetti
Copy link
Contributor

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.

@wuweidong0107
Copy link
Author

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?

@giuliobenetti
Copy link
Contributor

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:

  • compile libdri and install it
  • recompile xf86-video-armsoc and install it
  • check armsoc_dri.so is present on both host and target

Then it should work properly.
I don't know AIGLX to tell the truth

@wuweidong0107
Copy link
Author

wuweidong0107 commented Dec 28, 2017

Just finish your suggest. No luck

  1. I compile this repo on my H3 board:
    git clone https://github.com/robclark/libdri2
    cd libdri2
    ./autogen.sh
    ./configure --prefix=/usr
    make && make install && ldconfig
  2. recompile xf86-video-armsoc, but not find armsoc_dri.so:
    autoreconf -v -i
    ./configure
    apt-get install libudev-dev
    make && make install
    cp /usr/local/lib/xorg/modules/drivers/* /usr/lib/xorg/modules/drivers/

the X11 windows is still lagging

@giuliobenetti
Copy link
Contributor

Can you pastebin xf86-video-armsoc configure and build log? We need to understand if it found libdri correctly.
also pastebin x11 log.
thanks

@wuweidong0107
Copy link
Author

  1. cat /etc/X11/xorg.conf
    Section "Device"
    Identifier "Allwinner sun4i DRM driver"
    Driver "armsoc"
    Option "DRI2" "true"
    EndSection

  2. xf86-video-armsoc:
    config.log

  3. xorg.conf
    Xorg.0.log

@giuliobenetti
Copy link
Contributor

Can you also post xf86-video-armsoc build log?
I suspect you need to configure it with:
./configure --with-drmmode=sun4i

Thanks

@wuweidong0107
Copy link
Author

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.

@wuweidong0107
Copy link
Author

kernle's log:
dmesg.log

@giuliobenetti
Copy link
Contributor

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

@wuweidong0107
Copy link
Author

wuweidong0107 commented Dec 29, 2017

In my rootfs there is no armsoc_dri.so in any directory...still don't know how to get one...

@giuliobenetti
Copy link
Contributor

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

@wuweidong0107
Copy link
Author

$ 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)

@giuliobenetti
Copy link
Contributor

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

@mripard
Copy link
Owner

mripard commented Jan 4, 2018

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?

@wuweidong0107
Copy link
Author

cat /sys/kernel/debug/clk/clk_summary while running glmark2-es2.
clk_summary.txt

@wuweidong0107
Copy link
Author

wuweidong0107 commented Jan 5, 2018

glmark2-es2.log
score 16...very awkward

h3 maili dts:
h3_mali_dts_node.txt

@giuliobenetti
Copy link
Contributor

@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) ?

@mripard
Copy link
Owner

mripard commented Jan 5, 2018

@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

@wuweidong0107
Copy link
Author

wuweidong0107 commented Jan 8, 2018

Can anybody offer a rom that use mainline kernel with x11+gpu for H3 ?

@mripard
Copy link
Owner

mripard commented Jan 8, 2018

Wait, what have you been testing if you don't have one?

@wuweidong0107
Copy link
Author

....Mine is extremly slow. And I heard yours works perfectly. So I would like to test yours...

@mripard
Copy link
Owner

mripard commented Jan 12, 2018

I never tested it on an H3

@Icenowy
Copy link

Icenowy commented Jan 17, 2018

@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.

@mripard
Copy link
Owner

mripard commented Jan 17, 2018

Can you test the branch test-pmu I just pushed?

The other results I asked for would still be valuable.

@maximst
Copy link

maximst commented Feb 22, 2018

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

@giuliobenetti
Copy link
Contributor

giuliobenetti commented Feb 22, 2018

You don't have sun4i-drm.so compiled probably.
Here's the comment above on how to be sure to be compiled:
#23 (comment)

@mripard
Copy link
Owner

mripard commented Feb 23, 2018

glxgears is an OpenGL application, the Mali supports only the Open GL ES API. So, it's not the same issue.

@maximst
Copy link

maximst commented Feb 23, 2018

@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!

@timdorohin
Copy link

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)

@ghost
Copy link

ghost commented Sep 4, 2018

I also noticed before that retroarch runs faster in fullscreen. Tim Dorohin is right.

@cuu
Copy link

cuu commented Nov 2, 2018

@wuweidong0107 which kernel are you using for testing?

@wuweidong0107
Copy link
Author

@cuu base on:
git clone https://github.com/friendlyarm/linux.git -b sunxi-4.14.y --depth 1

@davidebeatrici
Copy link

davidebeatrici commented Mar 21, 2019

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.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants