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 <gnu...@cyberdimension.org>
---
 config/common.mk | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/config/common.mk b/config/common.mk
index 5731df08..8402171b 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
-- 
2.24.1

_______________________________________________
Replicant mailing list
Replicant@osuosl.org
https://lists.osuosl.org/mailman/listinfo/replicant

Reply via email to