On Tue, Jan 16, 2018 at 05:52:18PM +0000, Jeremy Rand wrote: > Jeremy Rand: > >> From: "Jookia" <[email protected]> > >> Sent: Monday, December 4, 2017 5:04 PM > >> To: [email protected] > >> 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. _______________________________________________ Replicant mailing list [email protected] https://lists.osuosl.org/mailman/listinfo/replicant
