[Replicant] [PATCH 0/1] EGL Loader patch to use both LLVMpipe and libagl at once
Jookia
166291 at gmail.com
Tue Jan 16 18:35:31 UTC 2018
On Tue, Jan 16, 2018 at 05:52:18PM +0000, Jeremy Rand wrote:
> Jeremy Rand:
> >> From: "Jookia" <166291 at gmail.com>
> >> Sent: Monday, December 4, 2017 5:04 PM
> >> To: replicant at osuosl.org
> >> Subject: [Replicant] [PATCH 0/1] EGL Loader patch to use both LLVMpipe and
> >> libagl at once
> >> Hey Replicant!
> >>
> >> There's been an issue of having llvmpipe be too slow, so I cooked up a
> >> patch
> >> to allow people to use both LLVMpipe and libagl at the same time.
> >> The patch follows and includes a large amount of documentation in the
> >> code.
> >> Apply it to frameworks/native.
> >
> > I've tested Jookia's prebuilt binary patch on my spare Galaxy S3 i9300,
> > and it works as advertised.
> Hmm, I *might* have spoken too soon, or I might just be doing something
> stupid. I set Orfox to use llvmpipe, which worked fine. I then set
> Orbot to use llvmpipe, and for some reason that override never seemed to
> trigger. Nothing relevant shows up in logcat, and based on the
> appearance of Orbot, it doesn't look like it's using llvmpipe. (Usually
> llvmpipe causes Orbot to show a black screen.)
>
> Can anyone else reproduce this behavior?
> --
> -Jeremy Rand
It seems that a large amoount of applications don't load libEGL, at least not
using the traditional loader which chooses between llvmpipe or libagl.
I missed this as I wasn't testing applications that were known to work.
Android allows developers to disable hardware acceleration in applications:
https://developer.android.com/guide/topics/graphics/hardware-accel.html
Perhaps it has something to do with hardware acceleration being explicitly
disabled in these applications? Orbot disables it explicitly:
https://gitweb.torproject.org/orbot.git/tree/app/src/main/AndroidManifest.xml
However, Amaze doesn't disable it:
https://github.com/TeamAmaze/AmazeFileManager/blob/master/app/src/main/AndroidManifest.xml
and its SDK properties suggest it would be enabled by default:
https://github.com/TeamAmaze/AmazeFileManager/blob/master/app/build.gradle
Nor does a grep for FLAG_HARDWARE_ACCELERATED or LAYER_TYPE_SOFTWARE succeed.
Yet it doesn't call libEGL either? Perhaps it uses its drawing code?
I don't know much about Android's architecture so without digging in to the
pipeline I'm not sure what's going on here.
Jookia.
More information about the Replicant
mailing list