Acked-by: David Ludovino <[email protected]>

On 12/12/2019 22:11, Denis 'GNUtoo' Carikli wrote:
> From: Jeremy Rand <[email protected]>
> 
> Replicant will soon merge patches to set the default renderer
> for each application:
> - Libagl was previously used for all applications. That prevented
>   to use applications like IceCatMobile, which were crashing
>   because libagl OpenGL implementation was incomplete.
> - Some system applications or components are known to have
>   huge performance issues with LLVMpipe.
> 
> Replicant will hopefully have good defaults settings that satisfy
> most users, however it's still interesting to be able to change
> the renderer system wide to workaround potential issues with the
> default settings, or do some debugging or benchmarks.
> 
> Signed-off-by: Jeremy Rand <[email protected]>
> [email protected]: commit message, fixed interpreter path
> Signed-off-by: Denis 'GNUtoo' Carikli <[email protected]>
> ---
>  display/renderer/device-files/androidsw.sh | 51 ++++++++++++++++++++++
>  display/renderer/device-files/llvmpipe.sh  | 51 ++++++++++++++++++++++
>  display/renderer/setup.sh                  |  5 +++
>  3 files changed, 107 insertions(+)
>  create mode 100644 display/renderer/device-files/androidsw.sh
>  create mode 100644 display/renderer/device-files/llvmpipe.sh
>  create mode 100755 display/renderer/setup.sh
> 
> diff --git a/display/renderer/device-files/androidsw.sh 
> b/display/renderer/device-files/androidsw.sh
> new file mode 100644
> index 0000000..175e41f
> --- /dev/null
> +++ b/display/renderer/device-files/androidsw.sh
> @@ -0,0 +1,51 @@
> +#!/system/xbin/bash
> +#
> +# Copyright (C) 2017 Jeremy Rand <[email protected]>
> +# Partially based on code by Wolfgang Wiedmeyer <[email protected]> and 
> Filippo Fil Bergamo
> +#
> +# This file is part of "Replicant Renderer Switcher", a set of shell scripts 
> to switch between
> +# the Android Software Renderer and the llvmpipe renderer in Replicant.
> +#
> +# Replicant Renderer Switcher is free software: you can redistribute it 
> and/or modify
> +# it under the terms of the GNU General Public License as published by
> +# the Free Software Foundation, either version 3 of the License, or
> +# (at your option) any later version.
> +#
> +# Replicant Renderer Switcher is distributed in the hope that it will be 
> useful,
> +# but WITHOUT ANY WARRANTY; without even the implied warranty of
> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> +# GNU General Public License for more details.
> +#
> +# You should have received a copy of the GNU General Public License
> +# along with this program.  If not, see <http://www.gnu.org/licenses/>.
> +
> +set -euf -o pipefail
> +
> +grep -q "ro.libagl=0" /system/build.prop && renderer="llvmpipe" || 
> renderer="android"
> +
> +if [ "${renderer}" == "android" ]
> +then
> +    echo "Android software renderer is already enabled!"
> +    exit 1
> +fi
> +
> +echo "Remounting system partition as writable..."
> +mount -o rw,remount /system
> +
> +echo "Enabling Android software renderer..."
> +sed "s/ro.libagl=0/ro.libagl=1/" -i /system/build.prop
> +
> +echo "Syncing filesystem..."
> +sync
> +sync
> +
> +echo "Remounting system partition as read-only..."
> +mount -o ro,remount /system
> +
> +echo "Syncing filesystem..."
> +sync
> +sync
> +
> +# https://android.stackexchange.com/a/139139
> +echo "Android software renderer will be enabled after we reboot now..."
> +am start -a android.intent.action.REBOOT
> diff --git a/display/renderer/device-files/llvmpipe.sh 
> b/display/renderer/device-files/llvmpipe.sh
> new file mode 100644
> index 0000000..d40c4ec
> --- /dev/null
> +++ b/display/renderer/device-files/llvmpipe.sh
> @@ -0,0 +1,51 @@
> +#!/system/xbin/bash
> +#
> +# Copyright (C) 2017 Jeremy Rand <[email protected]>
> +# Partially based on code by Wolfgang Wiedmeyer <[email protected]> and 
> Filippo Fil Bergamo
> +#
> +# This file is part of "Replicant Renderer Switcher", a set of shell scripts 
> to switch between
> +# the Android Software Renderer and the llvmpipe renderer in Replicant.
> +#
> +# Replicant Renderer Switcher is free software: you can redistribute it 
> and/or modify
> +# it under the terms of the GNU General Public License as published by
> +# the Free Software Foundation, either version 3 of the License, or
> +# (at your option) any later version.
> +#
> +# Replicant Renderer Switcher is distributed in the hope that it will be 
> useful,
> +# but WITHOUT ANY WARRANTY; without even the implied warranty of
> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> +# GNU General Public License for more details.
> +#
> +# You should have received a copy of the GNU General Public License
> +# along with this program.  If not, see <http://www.gnu.org/licenses/>.
> +
> +set -euf -o pipefail
> +
> +grep -q "ro.libagl=0" /system/build.prop && renderer="llvmpipe" || 
> renderer="android"
> +
> +if [ "${renderer}" == "llvmpipe" ]
> +then
> +    echo "llvmpipe is already enabled!"
> +    exit 1
> +fi
> +
> +echo "Remounting system partition as writable..."
> +mount -o rw,remount /system
> +
> +echo "Enabling llvmpipe..."
> +sed "s/ro.libagl=1/ro.libagl=0/" -i /system/build.prop
> +
> +echo "Syncing filesystem..."
> +sync
> +sync
> +
> +echo "Remounting system partition as read-only..."
> +mount -o ro,remount /system
> +
> +echo "Syncing filesystem..."
> +sync
> +sync
> +
> +# https://android.stackexchange.com/a/139139
> +echo "llvmpipe will be enabled after we reboot now..."
> +am start -a android.intent.action.REBOOT
> diff --git a/display/renderer/setup.sh b/display/renderer/setup.sh
> new file mode 100755
> index 0000000..ac5abe8
> --- /dev/null
> +++ b/display/renderer/setup.sh
> @@ -0,0 +1,5 @@
> +root_dir="/data/misc/renderer"
> +adb root
> +sleep 3
> +adb shell mkdir -p "$root_dir"
> +adb push ./device-files/* "$root_dir/"
> 

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
Replicant mailing list
[email protected]
https://lists.osuosl.org/mailman/listinfo/replicant

Reply via email to