Issue #705

Feature #1539: Graphics acceleration

Incomplete EGL implementation

Added by Paul Kocialkowski over 3 years ago. Updated about 1 month ago.

Status:New Start date:11/12/2013
Priority:High Due date:
Assignee:Paul Kocialkowski % Done:

0%

Category:-
Target version:Any version
Resolution: Device:

Description

Replicant is currently using the fallback Android EGL implementation, which is incomplete. The missing features of this implementation cause multiple issues:
  • Slowness issues on devices with slow CPUs
  • YUV is not properly supported (only black & white), which forces us to use RGB565 as a preview format on the camera modules. This causes several issues: * preview-based detection (such as barecodes, QR codes, etc) doesn't work * panorama feature is broken
  • Screenshots do not work
  • Previews of the windows in the tasks switcher are missing
  • Some applications rely on unimplemented features, such as Firefox, Document Viewer and crash as they are missing

We tried using Mesa as a replacement, both with swrast/softpipe and swrast/llvmpipe, but it is too slow to be usable.

History

Updated by Rodger Fox over 3 years ago

Since slowness is the problem with Mesa, is this bug solvable in a way besides using graphics hardware?

Or should the focus be on contributing to and integrating projects like Lima driver into Replicant?

Updated by Paul Kocialkowski over 3 years ago

It would be possible to complete the Android EGL implementation so that it is fully-featured and optimize it with NEON and ARM ASM code so that it becomes faster. There are also ways to improve things with hwcomposer and the framebuffer drivers and other per-hardware things.

But the real way to solve this is to have per-GPU free software implementations, such as Lima. Lima is not ready yet, but once it doesn't depend on the proprietary compiler and gets integrated in mesa, we'll certainly try and make it work with Replicant.

Updated by My Self over 2 years ago

IMHO the Lima development stagnated since the last post, or are there any insider news?

I really want to take screenshots and the app alternative AndroSS:
https://f-droid.org/repository/browse/?fdfilter=screenshot&fdid=net.tedstein.AndroSS
doesn't work, too. (It takes screenshots, but the pictures are broken; looking like colored barcode art).

Does anybody knows a workaround for the screenshot feature (on Replicant), please?

Updated by Paul Kocialkowski over 2 years ago

IMHO the Lima development stagnated since the last post, or are there any insider news?

Quote: the tamil driver will see work whenever/ifever i am in the mood for working on it again

Does anybody knows a workaround for the screenshot feature (on Replicant), please?

Well, screenshots work on the browser, so maybe we should look how it's done there. I don't have time to work on graphics acceleration, as usual.

Updated by My Self over 2 years ago

[I've removed the system browser, so I can't test that].

But I've found a functional workaround to make screenshots over ADB:
http://blog.shvetsov.com/2013/02/grab-android-screenshot-to-computer-via.html

Updated by Paul Kocialkowski about 2 years ago

  • Target version changed from 21 to Any version

Updated by My Self about 2 years ago

IMHO the <incomplete EGL implementation> is an acute security related problem and will become a bigger one in the future.
The reason is, that I don't see another chance to get a more secure browser to work on Replicant without OpenGL ES, at the moment.
Please have a look at the discussion here: http://redmine.replicant.us/boards/39/topics/8007

A working EGL will bring also the following benefit:
  • There would be a workaround for "Add support for more video software-decoding codecs, such as Theora" from the Tasks list, because with a working Firefox, I've successfully tested to run a .ogv (Theora) Video file out of the browser.
  • This video was also switchable to fullscreen, so this could be another workaround for "Make the embedded video player in the browser work (or make it switch to fullscreen when playback starts)" on the Tasks list.
  • You could delete "Write a modern Gallery application that doesn't rely on missing OpenGL features" from the Tasks list.
  • Of course that would delete the EGL point itself "Improve the generic Android EGL implementation so that it implements all the currently missing features" from the Tasks list.
  • The points above could be the some kind of workaround for "Make software video decoding work on Replicant 4.2" on the Tasks list, too.
  • And last but not least, it (probably!) could lead to less battery consumption (http://redmine.replicant.us/boards/9/topics/7953) because there would be less (battery draining) software rendering, (but I have to test that first).

Updated by Denis 'GNUtoo' Carikli about 1 year ago

  • Parent task set to #1521

Updated by Denis 'GNUtoo' Carikli about 1 year ago

  • Parent task changed from #1521 to #1491

Updated by Denis 'GNUtoo' Carikli about 1 year ago

  • Parent task changed from #1491 to #1539

Updated by Denis 'GNUtoo' Carikli about 1 year ago

  • Device set to Not device specific

Updated by Wolfgang Wiedmeyer about 1 month ago

  • Device deleted (Not device specific)

Also available in: Atom PDF