aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDenis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>2020-01-02 13:53:39 +0100
committerDenis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>2020-01-04 01:43:57 +0100
commit3a1da60267cd397e466f7ceef0432cea41122590 (patch)
treec1a352ce7ea6e45dfcb507a1710fda090131c9c6
parent421d3cdcb0eac2bcaa0709fb2e2ca77ee2e06427 (diff)
downloadvendor_replicant-3a1da60267cd397e466f7ceef0432cea41122590.tar.gz
vendor_replicant-3a1da60267cd397e466f7ceef0432cea41122590.tar.bz2
vendor_replicant-3a1da60267cd397e466f7ceef0432cea41122590.zip
Use LLVMpipe by default
Using libagl for everything had the side effect of making it impossible to use applications like IceCatMobile, as libagl OpenGL implementation was not complete enough. Using LLVMpipe fixes that. Using LLVMpipe for everything has the side effect of making some system components like SurfaceFlinger way slower. As we have patched the EGL loader to enable to override the default OpenGL implementation for specific binaries, and that we used that to switch the affected system components back to libagl, we can now switch to LLVMpipe. Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> Acked-by: David Ludovino <dllud@riseup.net>
-rw-r--r--config/common.mk13
1 files changed, 11 insertions, 2 deletions
diff --git a/config/common.mk b/config/common.mk
index 8d7d841d..a30824ac 100644
--- a/config/common.mk
+++ b/config/common.mk
@@ -243,8 +243,17 @@ else
BOARD_EGL_CFG := vendor/replicant/prebuilt/softwaregl/configs/egl.cfg
PRODUCT_PROPERTY_OVERRIDES += ro.softwaregl=1
-# use Android's software renderer by default
-PRODUCT_PROPERTY_OVERRIDES += ro.libagl=1
+
+# This sets the default OpenGL implementation:
+# - with ro.libagl=1, libagl is always used
+# - with ro.libagl=0, LLVMpipe is used by default but it's possible to override
+# that and use libagl for specific binaries by creating empty configuration
+# files in /system/etc/libGLES_android/ with the binary paths paths.
+# For instance to make SurfaceFlinger use libagl you can run this command:
+# # touch /system/etc/libGLES_android/system/bin/surfaceflinger
+# When launching that binary, the EGL loader will then check if that file
+# exists to decide on which OpenGL implementation to use.
+PRODUCT_PROPERTY_OVERRIDES += ro.libagl=0
PRODUCT_PACKAGE_OVERLAYS += vendor/replicant/overlay/softwaregl
endif