Running Panfrost?
#1
Or ultimately Vulkan.  I've been going in circles for a week or so between my Rock64 and my Odroid N2 trying to get the Malis to do anything remotely like acceleration or being controlled by a language like OpenGL ES or Vulkan, under X11 anyway.  ARM/Mali only supports Wayland (and Android) at least from some point on.  Panfrost is supposed to work with the older 2Mali families, not Bifrost but Utgard and Midgard.

So Panfrost https://panfrost.freedesktop.org/ attempts to change that.  I have Panfrost installed on my Rock64 but there's one catch:
Quote:Use a mainline kernel version 5.2 or later with CONFIG_DRM_PANFROST enabled


If I run es2gears it runs at about 200 FPS but it's also using 120% of the CPU because it's doing software emulation instead of using the Mali.  When I first got this Rock64 about a year ago I thought es2gears ran at about 600 FPS.  Then something broke, it sat for 6 months, I reloaded with Ayufan's Buster image, and now it's slow.  The kernel part of a Mali driver is free and open source https://developer.arm.com/tools-and-soft...ard-kernel  I'm not sure if I need to try to get Ayufan's kernel config and set up a kernel or not.  I have a /dev/dri and /dev/mali  and /dev/fb0.

-----------

OK, I just tried Lima too, it's about the same.  There are some Mali userspace drivers at https://developer.arm.com/tools-and-soft...user-space but it's hit-or-miss.  The Rock64 has a Mali 450mp2 which is an Utgard family so Lima should work.  https://gitlab.freedesktop.org/lima

My dmesg shows "mali-utgard" like it's a driver name or something and  locate "drivers/gpu/arm" finds
Code:
/lib/modules/4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/kernel/drivers/gpu/arm
/lib/modules/4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/kernel/drivers/gpu/arm/mali400
/lib/modules/4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/kernel/drivers/gpu/arm/mali400/mali
/lib/modules/4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/kernel/drivers/gpu/arm/mali400/mali/mali.ko
/lib/modules/4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/kernel/drivers/gpu/arm/midgard_for_linux
/lib/modules/4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/kernel/drivers/gpu/arm/midgard_for_linux/midgard_kbase.ko
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/Kconfig
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/bifrost
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/bifrost/Kconfig
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/bifrost/Makefile
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/bifrost/Makefile.kbase
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/bifrost/platform
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/bifrost/platform/Kconfig
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/bifrost/tests
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/bifrost/tests/Kconfig
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/bifrost/tests/kutf
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/bifrost/tests/kutf/Kconfig
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/bifrost/tests/kutf/Makefile
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/bifrost/tests/mali_kutf_irq_test
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/bifrost/tests/mali_kutf_irq_test/Kconfig
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/bifrost/tests/mali_kutf_irq_test/Makefile
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/bifrost_for_linux
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/bifrost_for_linux/Kconfig
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/bifrost_for_linux/Makefile
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/bifrost_for_linux/Makefile.kbase
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/bifrost_for_linux/platform
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/bifrost_for_linux/platform/Kconfig
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/bifrost_for_linux/tests
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/bifrost_for_linux/tests/Kconfig
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/bifrost_for_linux/tests/kutf
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/bifrost_for_linux/tests/kutf/Kconfig
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/bifrost_for_linux/tests/kutf/Makefile
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/bifrost_for_linux/tests/mali_kutf_irq_test
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/bifrost_for_linux/tests/mali_kutf_irq_test/Kconfig
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/bifrost_for_linux/tests/mali_kutf_irq_test/Makefile
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/mali400
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/mali400/mali
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/mali400/mali/Kconfig
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/mali400/mali/Makefile
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/mali400/ump
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/mali400/ump/Kconfig
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/mali400/ump/Makefile
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/mali400/ump/Makefile.common
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/mali400/umplock
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/mali400/umplock/Makefile
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/midgard
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/midgard/Kconfig
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/midgard/Makefile
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/midgard/Makefile.kbase
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/midgard/platform
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/midgard/platform/Kconfig
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/midgard/tests
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/midgard/tests/Kconfig
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/midgard/tests/kutf
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/midgard/tests/kutf/Kconfig
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/midgard/tests/kutf/Makefile
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/midgard/tests/mali_kutf_irq_test
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/midgard/tests/mali_kutf_irq_test/Kconfig
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/midgard/tests/mali_kutf_irq_test/Makefile
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/midgard_for_linux
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/midgard_for_linux/Kconfig
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/midgard_for_linux/Makefile
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/midgard_for_linux/Makefile.kbase
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/midgard_for_linux/platform
/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/drivers/gpu/arm/midgard_for_linux/platform/Kconfig


lsmod shows a mali module loaded, I have a /dev/mali, so how come it doesn't work?  (or is it?)

When I'm running es2gears lsof doesn't list /dev/mali as being open.
  Reply
#2
Hi ab1jx.  I'm replying so you know somebody cares about this goal which we share.   My background is I'm a user-tester of a source project called Linux from Scratch.  My ultimate goal is to write a paper on how to build a LFS for ARM .   They have an embedded book but its not well maintained for arm.   If anybody has a rpi check out PiLFS images.   That's a good example of the end goal.

SO I have knowledge to compile-install all the necessary linux pkgs on x86_64. Now I want to transfer that ability and gain arm experience from google, forums, irc etc.    If you read my first post it has some of what I've done so far.

My plan is build a toolchain on Arch arm and/or Manjaro arm  (my prefered base) , compile a kernel or find one I know is correct for lima mali-450,  get X and/or Wayland working with the right drivers and proceed to qt5-gles.

I'll post here again soon with more tech details of where my board is at as far as modules-drivers operation etc.
  Reply
#3
LFS for ARM is a good goal, set up as generically as possible so it might work on Raspberry Pi, Orange Pi, Odroid, Pine & Rock64, etc. Things that have to be unique to each machine could be a separate package. I started to look into LFS until I found I had to be using Intel. I'm getting really sick of the level of specialty scripts in Debian/Raspbian. If my wifi connection fails the machine is all but useless. I can't even click a different pane on my desktop without waiting for something to time out before it happens. Mouse wheel on the root window works though. Try to bring an interface down and back up, doesn't happen until something times out. Why do we need a service for hostname? It just seems like years of bad ideas on top of bad ideas. OpenBSD is relatively free of that last I looked.
  Reply
#4
Status update.   Got what I wanted  KDE Plasma on gles2 running on wayland.   Lots of driver memory errors and coredumps though.
WHY?  My best guess is lima is not ready yet.   I dont believe panfrost is the right driver. from what I read...why would there be a lima if pf worked. QT5 is not built for gles correctly on Arch-manjaro for sure and probly the same for all the other arm distro's.

Trying to make lots of boards work with a generic mesa-qt5 is not the way imo.   This board needs a dev and/or user group to each setup with a arm64 compiler  (a task all to itself) and get to building ROCK64 packages to get to it being usable for an acellerated compositor like kwin plus browser video accel..   Lots of env vars have to be experimented with and set too. I'm sure then..that work could be adapted to other boards fairly easily by changing lima for w/e driver that arm board uses. Same for cpu. Question is...which board will get this kind of group effort? I don't see the r64 getting it. I may have to get an RPI4 just so I have help to turn to. due to user base size.

So I launched into building a aarch64 cross compiler on x86_64 box laying around on Arch Linux.  Hand built it with the latest pkgs too like gccv9.2 in /opt
from a tute at preshing.com.    I'm in touch with an original LFS member on getting a new enbedded arm book together.   Don't know him so we shall see.  Said he's buying the rock64 board.  So I'm set to do what I can by first building qt5 w/ gles and then kde plasma pkgs.   Something I do alot on LFS x86-64 since it's my daily driver OS.  Once you build from source with all the perks/options that brings ...I don't use distro's except for certain tasks like servers or arm compilers.
  Reply
#5
Yeah, I used to do that with OpenBSD.  You could install pre-compiled binary packages or build from source tarballs which there was a set of patches for.  But I had the source code to everything, patches like for vulnerabilities were distributed as text patches so you'd patch the source and recompile.

LFS has potential if they ever think beyond Intel/AMD, yes I know there's a Pi version.

I think some Malis are better supported than others by ARM.  The one (T860?) in the Pinebook Pro is actually supported for Vulkan.  Panfrost where needed but try to live without it.  I've come to think of Malis as throw-away chips mostly intended for making fast money in the cell phone game, which is a shame.
  Reply
#6
Update: Good news. Although the dev that I mentioned never came back another current dev setup a VM with aarch64 image and he showed me how to get past the one part I was tripping over for using LFS book on the rock64. Has to do with the toolchain and I won't bore anybody here with that. I helped him test the book changes he was working on by using real hw -the rock64. Happy to say the LFS v10 and development systemd books now produce an aarch64 based build.

On the Arch-manjaro front lima not panfrost is the driver name and it still is not very good for running a desktop on X or wayland at this time sadly on the rock64. I bought an Odroid N2+ and that does use panfrost but it also is a disappointment for use after the board being out for 2 years now. I do see it's being worked on atm so I do have more hope than on the rock64 desktop future.
  Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  EasyOS 1.0.4 running on Rock64 BarryK 2 3,952 02-19-2019, 01:11 AM
Last Post: pineadmin
  Running debian testing, web video blows :( dougunder 2 3,582 04-22-2018, 03:24 PM
Last Post: dougunder
  Has someone managed to get Docker running yet? Sven 17 17,808 12-24-2017, 06:52 PM
Last Post: xnathanh
  Which one do you think is the best image for running a server for website? fbms 4 5,174 08-28-2017, 07:19 PM
Last Post: fire219

Forum Jump:


Users browsing this thread: 1 Guest(s)