Hi,
I have been using both the X11 and fbdev drivers (r4p0) on an Odroid-XU3 with Mali-T628, the kernel driver integrated by the vendor (Hardkernel) and the binary blob from armdeveloper website.
The performance was really bad - especially on fbdev, framerates were less than half than on X11. On X11, framerates were worse than on an Odroid-U3 with Mali400.
Now with the release of r5p0 drivers, early tests see a similar situation, unfortunately.
On r4p0-MaliT628 X11, I get just under 200fps on es2_gears, and ~55 glmark2 score. I've seen the results of Mali-T764 on the RK3288 board from http://pastebin.com/Qzrh51Yv and are similarly bad.
Is this something you are aware of?
On Mali-400, I get ~260 fps in es2_gears, and a glmark2 score of ~60. fbdev and x11 performance is similar.
But I would even be happy with these numbers in fbdev. es2_gears does not work on fbdev, but some of the apps I've been trying showed exceptionally poor framerates (15 in fbdev vs. 60 in X11) and were unusable.
On the forums, I remembered seeing a similar post with a benchmark on Arndale octa or Chromebook (can't remember exactly, T6xx in any case), where framerates were also smaller with fbdev drivers for the same app.
Is there any comment on the performance of fbdev vs. x11? Or the lack of 3D performance seen in the Txxx from various vendors?
Thanks.
Hi Peter, thanks for the reply...
"something in the reference integration" - can you explain this a bit please? My impression was that vendors, as long as they are using the reference, only have to customize the open-source kernel part, which deals with bringing up the platform, DVFS, etc. So theoretically, the binary blob should have similar performance across boards - as long as they use the reference Mali implementation. And in my experience on the XU3, using the blob compiled by HardKernel and the blob provided by you resulted in similar performance (1 fps difference in my tests), and now HK just points to your blob.
"the general assumption is that most people will use a real windowing system" - well... there are a few of us that would like fbdev working well... especially with the situation in the windowing systems on Linux. Currently, there is no support for Wayland in your drivers (I saw binary blobs for Mali400 with Wayland support in Tizen, but I think they were compiled for soft float, and did not work at all in on Linux hardfloat image; and I saw the collabora demo with Wayland on chromebook with MaliT628 - but they probably have a time machine to go forward in time and get bobs from the future). Also, on X11 ... you have the MaliDDX with UMP support on one hand, but then you promote armsoc DDX with no UMP - like on Chromebox and my board. But then, armsoc is a mess, and I don't see any support from you guys on that front. So we are left with drivers that are slower than a sick snail on fbdev, no wayland, and a confusing X11, where either everything is slowed down by the X11 drivers ***, or there is some community work on armsoc (which I don't even know if you are aware) but currently anything touching composition will crash X11 either immediately or eventually.
In conclusion, even with some vendor support - either there are issues when there is no windowing system (and I am still confused if it's from your reference drivers, or the vendor, but I suspect the first); or when there is a windowing system, you don't look at integrating your driver with it. Well, at least on Linux, I can't speak about Android, but things seem to work there.
*** using the armsoc ddx from the repo chromebook uses, everything is very slow, or fullscreen EGLapp crash, and compositors don't work. There are some patches that make armsoc usable - in terms of speed (for example http://pastebin.com/PxTpPi4J) - but there are issues with 32 bit visuals for RGB888, which result in e.g. black screen when exiting fullscreen EGL apps.
PS: I would love to try Wayland on Mali, but until then, I try to stay away from X11 because of the above issues and would love if the fbdev drivers would have decent performance.
"something in the reference integration" - can you explain this a bit please?
You basically seem to have covered what I was thinking - there are lots of options around management of surface memory and how that is moved around the system, how that interacts the with dmabuf kernel APIs for CPU-GPU memory coherency. It's one area where Linux is improving, but is still generally "a bit of a mess" and very possible to end up with a set of components which are functional, but doing more work than needed around mapping or cache flushing of buffers. I've never use the board in question, so I'm not entire sure how the buffer integration has been done, but this is an area where I know our direct licensees have had issues.
I try to stay away from X11 because of the above issues and would love if the fbdev drivers would have decent performance.
Yes, I agree. There is no real reason for the fbdev drivers to be as slow as they are; I'll definitely follow up with our BSP team to get this sorted.
Yes peterharris i noticed that also. On the Odroid C1 i used Mali-X11 instead of Mali-fbdev it's works fine and better than the Mali-Fbdev
To tell you the truth, I found the performance on C1 (mali450) in fbdev acceptable, I don't have numbers to compare it to X11 but I think they should be close.
The difference in performance I found only for T6xx/T7xx.
PS: also, the fbdev drivers for 400/450 come from Hardkernel, the fbdev for T628 comes from malideveloper.
for sure the difference is not huge . But official image provided by by Hardkernel is overloaded. The difference appears when we used the minimum image.
The supplied image is clearly an image for the development on the board. Too many menage to do. Better to start on a minimum version.