Hi, I am trying to maintain DS167, which is a similar device to yours (
A20, LVDS 7" and 10.1" LCDs with capacitive touchscreens ).

Many years ago, I was running this product on Android 4.2.2 and Linux. As
you know, Android UI performance on A20 was quite acceptable for basic HMI
functionalities.

For linux, I used debian 7 with 3.4 kernel, with firefox. It was again
enough for basic functionalites, but of course the UI responsiveness was
not on par with Android 4.2.2.

You are right, in the legacy kernel (3.4), there was MALI driver for GPU
(3d graphics acceleration) and Cedar VE for video decoding/encoding
acceleration.

Not all allwinner SoCs support it, but afaik A20 had G2D, and theoritically
this gave us nice 2D acceleration.  This 2D acceleration could be achieved
via compiling a specific xorg driver. ( Somebody please correct me if I am
wrong).

And in the mainline (current 5.8+), afaik, for GPU we have LIMA and
optionally MALI also. LIMA works out-of-the-box, because it is open source.
Unfortunately:

1) There is no clean explanation on sunxi-wiki or there is no documentation
about how to test it on :
1.1) Raw Framebuffer
1.2) Qt on Framebuffer
1.3) X11
1.4) Wayland

2) I don't know how to achieve 2D hardware acceleration on mainline kernel.
I couldn't find any documentation or explanation anywhere. I am volunteer
to write this documentation on sunxi wiki if somebody helps me to achieve
this on A20.

Now, on mainline, for video decoding acceleration, there is cedrus.
Unfortunately there is no clear explanation or documentation, how to use or
how to test Cedrus in MPV or Gstreamer. There is a PoC work for VLC, which
is not suitable for applications like yours.

Again, if somebody guide me, I am volunteer to write official documentation
for it.

Finally, you asked for recommendation for your application. I suggest you
to experiment native QT for that. I believe it is not extremely hard to
write your hello world app on simple framebuffer. For porting QT5 to your
sysroot, I think you may check tutorials for Raspberrypi.

I believe, if we can achieve to integrate QT on eglfs-kms , it must give us
the UI responsiveness of Android 4.2.2 running on A20.

Again, we need good recommendations from the experts in this mail group,
about how to achieve this.

6 Ağu 2020 Per 20:19 tarihinde Milos Ladni <[email protected]> şunu
yazdı:

>  Hi Andrey, thank you for supporting.
>
> Actually, i am not sure if i need 'lima' driver or not... Because i run a
> simple web based (Javasctipt) GUI application in firefox in fullscreen
> kiosk mode. It has only two tabs (contexts) with fixed size without
> scrolling, a few buttons and window space for playing video on top of all
> without desktop environment.
> GUI application is very simple. I am not a web programmer but i know that
> i am not using any specific openGL code in web application.
> Maybe lima can help with CPU load because no matter how simple my GUI
> application is, it does not run smoothly when i switch between these two
> tabs. CPU can take more than 50% during switching and showing different
> contexts to the user.
> Anyway i also tried to load Lima driver and i got /dev/dri/card0,  card1
> and renderD128 but i am not sure how to test it.
>
> When i try to load xwindow or kmscube i get following error message:
> root@olinuxino:~/workspace# kmscube
> gbm: failed to open any driver (search paths
> /usr/lib/arm-linux-gnueabihf/dri:\$${ORIGIN}/dri:/usr/lib/dri)
> gbm: Last dlopen error: /usr/lib/dri/sun4i-drm_dri.so: cannot open shared
> object file: No such file or directory
> failed to load driver: sun4i-drm
>
> kmscube fail at this point but xwindow show only this error and continue
> running. I can run gui application after xwindow is started.
>
> My LVDS display is working well and one of my issues is how to put decoded
> video to a specific location in GUI application.
> After the video is decoded by cedar VE it is in YUV NV12 RAW format. I
> have to scale it to another resolution and show it inside of GUI
> application.
>
> On legacy kernel i used Display Engine and /dev/disp device node for this
> purpose.
> Unfortunately on mainline /dev/disp vanish and we are forced to use drm
> driver instead of it which is if i understand well the same Display Engine
> driver in the background.
>
> Regards,
> Milos Ladicorbic
>
> --
> You received this message because you are subscribed to the Google Groups
> "linux-sunxi" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web, visit
> https://groups.google.com/d/msgid/linux-sunxi/49e7f2a7-5c34-4265-8c2c-d868eeb9af14o%40googlegroups.com
> <https://groups.google.com/d/msgid/linux-sunxi/49e7f2a7-5c34-4265-8c2c-d868eeb9af14o%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web, visit 
https://groups.google.com/d/msgid/linux-sunxi/CANUFARKoDeK64c2RBtW4v2%3D36wS9s0tsxTxYEtwin9Jn6DzbJQ%40mail.gmail.com.

Reply via email to