I recently bought a BeagleBoard X15 and started playing with it, the first thing I noticed is despite there is three GPU on AM57x SOC, there is no hardware acceleration in X11
I searched and found that the 3D GPUs are not only proprietary, but TI actually does not support X11 at all … it is bad because I actually love X11 and want to use it.
Then I tried the GC320 2D GPU with TI galcore driver (https://git.ti.com/graphics/ti-gc320-driver) and armada X driver (https://github.com/xobs/xserver-xorg-video-armada with galcore/libGAL) : it works, but sometimes it freezes : actually it freezes everytimes when quitting X. I made some tests with proprietary libGAL (https://git.ti.com/graphics/ti-gc320-libs), and I finally found that either the driver or the userspace lib make the computer freezing.
I decided to look further and discovered that project that aim to open-sourcing Vivante GPU chips Etnaviv is pretty well advanced (https://github.com/etnaviv). The project initially support GCxxx chips in IMX6 and Armada SOC, and I wondered if it could works on AM57x. It appears that it works ! I backported the etnaviv from mainline kernel to use it with the linux 4.4 kernel provided with the default board Debian (http://repos.rcn-ee.com/debian/), and with very little changes, it can be used with Beagleboard X15.
I decided to look further and discovered that project that aim to
open-sourcing Vivante GPU chips Etnaviv is pretty well advanced
(Etnaviv · GitHub). The project initially support GCxxx chips in
IMX6 and Armada SOC, and I wondered if it could works on AM57x. It appears
that it works ! I backported the etnaviv from mainline kernel to use it with
the linux 4.4 kernel provided with the default board Debian
(Index of /debian), and with very little changes, it can be
used with Beagleboard X15.
I decided to look further and discovered that project that aim to
open-sourcing Vivante GPU chips Etnaviv is pretty well advanced
(Etnaviv · GitHub). The project initially support GCxxx chips in
IMX6 and Armada SOC, and I wondered if it could works on AM57x. It appears
that it works ! I backported the etnaviv from mainline kernel to use it with
the linux 4.4 kernel provided with the default board Debian
(Index of /debian), and with very little changes, it can be
used with Beagleboard X15.
This is fantastic! Thanks for doing the research and backport on this. It is a real benefit to the community.
For kernel part, I don’t know about omap2plus, but except backport the only thing I modified is the compatible list in etnaviv driver to add “ti,dra7-gpu-subsystem”, and the dts to enable bb2d and etnaviv required gpu-subsystem.
For userspace, armada xorg driver contains a lot of things. As I understand it :
vivante part is an older driver using gal headers and libGAL proprietary lib.
etnaviv is a driver using libGAL as well, but through the libetnaviv which was I guess intended to help etnaviv folks to reverse engineering and now deprecated
etnadrm is actually the driver used, and for some reason (know what to pass to etnaviv kernel for optimizatio) it use libetnaviv which need gal headers. It is apparently just a shim and in fact only use open source drm driver.
Well, we have X11 now with a usable desktop... Wayland on Debian is
still a few months out at the minimal..
For the x15, there's always been a noticeable delay when moving
windows around, by enabling the 2D core via etnaviv, we now have dri2
support and desktop is fast.
With all the development going on with the etnaviv project for
Marvel/IMX based soc's (they have 2D & 3D Vivantee Cores), it's nice
to take advantage of their 2D core support
Few months, or years to have something truly competitive : reinventing the wheel of the 25 year old xf86 software is something that takes times …
And the Beagleboard X15 is a very powerfull machine that can be used for desktop, and today X is the best at it.
I think what really miss is an improved xorg driver for etnaviv drm with standard optimizations extension (EXA), I m looking at that, but can’t say the complexity of the task for now.
I believe Tony, said the "ti,hwmods" are on the chopping block, for
something more dt-ish. So the dra7.dtsi change will have to be
modified down the road again..
Few months, or years to have something truly competitive : reinventing the wheel of the 25 year old xf86 software is something that takes times …
And the Beagleboard X15 is a very powerfull machine that can be used for desktop, and today X is the best at it.
My main concern with X11 are the security flaws. Anyway, thank you for getting this driver working. This was really good work.
Yes, I agree. xorg armada driver is very confusing, after a close up looking it seems that libdrm-etnaviv is not used at all and a sort of backport of it is integrated directly in armada (https://github.com/xobs/xserver-xorg-video-armada/blob/novena-r2/etnaviv/etnadrm.c). Optizations is not used via a standard way like EXA, but in every places around.
I saw some problems too when playing video, vlc rendering is undoubtedly faster, but etnaviv driver complains (can’t remember messages right now).
As I said previously, it seems relevant to have an updated driver, I’m looking at a way of implementing an EXA acceleration in omap driver, but I think it is a lot of work