mirror of
https://github.com/archr-linux/Arch-R.git
synced 2026-07-12 18:19:42 -07:00
Update Mesa to version 26.0.5 and adjust related dependencies
- Bump Mesa version from 26.0.3 to 26.0.5 with updated SHA256 checksum. - Modify RK3326 device tree to increase regulator max voltage for ARM. - Update OPP settings in RK3326 DTS patch for improved performance. - Add Python3 and xz to PortMaster dependencies. - Enhance PortMaster startup script for better directory handling and cleanup. - Implement HDMI resolution check with timeout in autostart script. - Add turbo mode configuration to system settings. - Refactor CPU frequency functions to utilize available frequencies more effectively. - Update Dolphin emulator scripts to improve gptokeyb process handling. - Introduce new systemd configuration for timesyncd to optimize polling intervals. - Set uinput permissions in udev rules for better controller input handling. - Adjust emulator package.mk to optimize performance for RK3326. - Modify mkimage script to ensure proper FAT32 formatting and filesystem checks. - Enhance benchmark script to auto-detect device-specific paths and improve logging.
This commit is contained in:
@@ -168,3 +168,8 @@ packages/multimedia/intel-vaapi-driver/
|
||||
packages/multimedia/media-driver/
|
||||
packages/multimedia/gmmlib/
|
||||
packages/sysutils/open-vm-tools/
|
||||
|
||||
|
||||
#other
|
||||
docs/*
|
||||
bench-results/
|
||||
@@ -187,8 +187,12 @@
|
||||
# Root filesystem type (squashfs / ext4)
|
||||
ROOTFS_TYPE="ext4"
|
||||
|
||||
# Boot partition size (FAT32, kernel + DTBs + bootloader), in MB
|
||||
BOOT_SIZE=256
|
||||
# Boot partition size (FAT32, kernel + DTBs + bootloader), in MB.
|
||||
# 272 MB chosen so the partition exceeds 65525 4-KB clusters and
|
||||
# qualifies as real FAT32 by spec (256 MB landed at 65404 clusters,
|
||||
# 121 short, triggering "less than the required minimum" warnings on
|
||||
# every dosfsck run).
|
||||
BOOT_SIZE=272
|
||||
|
||||
# Root partition size (ext4 rootfs), in MB
|
||||
ROOT_SIZE=4608
|
||||
|
||||
@@ -64,12 +64,11 @@
|
||||
|Nintendo|Game & Watch (gameandwatch)|1980|`gameandwatch`|.mgw .zip .7z|**retroarch:** gw<br>**retroarch:** mame<br>|
|
||||
|Nintendo|Game Boy (gb)|1989|`gb`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)<br>**retroarch:** sameboy<br>**retroarch:** gearboy<br>**retroarch:** tgbdual<br>**retroarch:** mgba<br>**retroarch:** vbam<br>**retroarch:** DoubleCherryGB<br>**retroarch:** skyemu<br>**mednafen:** gb<br>|
|
||||
|Nintendo|Game Boy (Hacks) (gbh)|1989|`gbh`|.gb .zip .7z|**retroarch:** gambatte (default)<br>**retroarch:** sameboy<br>**retroarch:** gearboy<br>**retroarch:** tgbdual<br>**retroarch:** mgba<br>**retroarch:** vbam<br>**retroarch:** DoubleCherryGB<br>**retroarch:** skyemu<br>**mednafen:** gb<br>|
|
||||
|Nintendo|Game Boy Advance (gba)|2001|`gba`|.gba .zip .7z|**retroarch:** mgba (default)<br>**retroarch:** vbam<br>**retroarch:** vba_next<br>**retroarch:** beetle_gba<br>**retroarch:** skyemu<br>**retroarch:** gpsp<br>**mednafen:** gba<br>|
|
||||
|Nintendo|Game Boy Advance (gba)|2001|`gba`|.gba .zip .7z|**retroarch:** gpsp (default)<br>**retroarch:** mgba<br>**retroarch:** vbam<br>**retroarch:** vba_next<br>**retroarch:** beetle_gba<br>**retroarch:** skyemu<br>**mednafen:** gba<br>|
|
||||
|Nintendo|Game Boy Advance (Hacks) (gbah)|2001|`gbah`|.gba .zip .7z|**retroarch:** mgba (default)<br>**retroarch:** vbam<br>**retroarch:** vba_next<br>**retroarch:** beetle_gba<br>**retroarch:** skyemu<br>**retroarch:** gpsp<br>**mednafen:** gba<br>|
|
||||
|Nintendo|Game Boy Advance video (gbav)|2001|`gbav`|.gba .zip .7z|**retroarch:** mgba (default)<br>**retroarch:** vbam<br>**retroarch:** vba_next<br>**retroarch:** beetle_gba<br>**retroarch:** skyemu<br>**retroarch:** gpsp<br>**mednafen:** gba<br>|
|
||||
|Nintendo|Game Boy Color (gbc)|1998|`gbc`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)<br>**retroarch:** sameboy<br>**retroarch:** gearboy<br>**retroarch:** tgbdual<br>**retroarch:** mgba<br>**retroarch:** vbam<br>**retroarch:** DoubleCherryGB<br>**retroarch:** skyemu<br>**mednafen:** gb<br>|
|
||||
|Nintendo|Game Boy Color (Hacks) (gbch)|1998|`gbch`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)<br>**retroarch:** sameboy<br>**retroarch:** gearboy<br>**retroarch:** tgbdual<br>**retroarch:** mgba<br>**retroarch:** vbam<br>**retroarch:** DoubleCherryGB<br>**retroarch:** skyemu<br>**mednafen:** gb<br>|
|
||||
|Nintendo|GameCube (gamecube)|2001|`gamecube`|.gcm .iso .gcz .ciso .wbfs .rvz .dol .m3u|**retroarch:** dolphin (default)<br>|
|
||||
|Nintendo|NES (Hacks) (nesh)|1985|`nesh`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)<br>**retroarch:** fceumm<br>**retroarch:** quicknes<br>**retroarch:** mesen<br>**mednafen:** nesh<br>|
|
||||
|Nintendo|Nintendo 64 (n64)|1996|`n64`|.z64 .n64 .v64 .zip .7z|**retroarch:** mupen64plus_next (default)<br>**retroarch:** mupen64plus<br>**retroarch:** parallel_n64<br>**mupen64plus:** mupen64plus-sa<br>|
|
||||
|Nintendo|Nintendo DS (nds)|2005|`nds`|.nds .zip .7z|**drastic:** drastic-sa (default)<br>**melonds:** melonds-sa<br>**retroarch:** melonds<br>**retroarch:** melondsds<br>**retroarch:** desmume<br>**retroarch:** skyemu<br>|
|
||||
@@ -82,8 +81,6 @@
|
||||
|Nintendo|Super Nintendo (Hacks) (snesh)|1991|`snesh`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)<br>**retroarch:** snes9x2010<br>**retroarch:** snes9x2002<br>**retroarch:** snes9x2005_plus<br>**retroarch:** beetle_supafaust<br>**retroarch:** bsnes_mercury_performance<br>**mednafen:** snes_faust<br>|
|
||||
|Nintendo|Super Nintendo (snes)|1991|`snes`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)<br>**retroarch:** snes9x2010<br>**retroarch:** snes9x2002<br>**retroarch:** snes9x2005_plus<br>**retroarch:** beetle_supafaust<br>**retroarch:** bsnes_mercury_accuracy<br>**retroarch:** bsnes_mercury_balanced<br>**retroarch:** bsnes_mercury_performance<br>**mednafen:** snes_faust<br>**retroarch:** bsnes_mercury_accuracy<br>**retroarch:** bsnes_mercury_balanced<br>**retroarch:** bsnes_mercury_accuracy<br>**retroarch:** bsnes_mercury_balanced<br>**mednafen:** snes_faust<br>|
|
||||
|Nintendo|Virtual Boy (virtualboy)|1995|`virtualboy`|.vb .zip .7z|**retroarch:** beetle_vb (default)<br>**mednafen:** vb<br>|
|
||||
|Nintendo|Wii (wii)|2006|`wii`|.gcm .iso .gcz .ciso .wbfs .rvz .dol .wad .m3u|**retroarch:** dolphin (default)<br>|
|
||||
|Nintendo|WiiWare (wiiware)|2008|`wiiware`|.gcm .iso .gcz .ciso .wbfs .rvz .dol .wad .m3u|**retroarch:** dolphin (default)<br>|
|
||||
|Palm, Inc.|Palm OS (palm)|1996|`palm`|.prc .pqa .img .pdb .zip|**retroarch:** mu (default)<br>|
|
||||
|Panasonic|3DO (3do)|1993|`3do`|.iso .bin .chd .cue|**retroarch:** opera (default)<br>|
|
||||
|Philips|CD-i (cdi)|1991|`cdi`|.chd .cue .iso|**retroarch:** same_cdi (default)<br>|
|
||||
|
||||
@@ -1,17 +1,50 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2026 ArchR (https://github.com/archr-linux/Arch-R)
|
||||
|
||||
# Drop-in zlib replacement using zlib-ng compiled with --zlib-compat.
|
||||
# ABI/API identical to upstream zlib (libz.so.1), but ships SIMD-aware
|
||||
# inflate/deflate paths that NEON-enabled the inner loops on Cortex-A35.
|
||||
# Real impact: ROM zip extraction in PortMaster/RetroArch and ext2/ext4
|
||||
# compression utilities run noticeably faster.
|
||||
#
|
||||
# We keep PKG_NAME="zlib" so every other package's PKG_DEPENDS_*="zlib"
|
||||
# transparently picks up the replacement. Source unpack is overridden
|
||||
# because the upstream tarball expands to zlib-ng-${PKG_VERSION}/.
|
||||
|
||||
PKG_NAME="zlib"
|
||||
PKG_VERSION="1.3.1"
|
||||
PKG_SHA256="9a93b2b7dfdac77ceba5a558a580e74667dd6fede4585b91eefb60f03b72df23"
|
||||
PKG_VERSION="2.2.4"
|
||||
PKG_SHA256="a73343c3093e5cdc50d9377997c3815b878fd110bf6511c2c7759f2afb90f5a3"
|
||||
PKG_LICENSE="OSS"
|
||||
PKG_SITE="http://www.zlib.net"
|
||||
PKG_URL="https://zlib.net/fossils/${PKG_NAME}-${PKG_VERSION}.tar.gz"
|
||||
PKG_SITE="https://github.com/zlib-ng/zlib-ng"
|
||||
PKG_URL="https://github.com/zlib-ng/zlib-ng/archive/refs/tags/${PKG_VERSION}.tar.gz"
|
||||
PKG_SOURCE_NAME="zlib-ng-${PKG_VERSION}.tar.gz"
|
||||
PKG_DEPENDS_HOST="ccache:host cmake:host"
|
||||
PKG_DEPENDS_TARGET="cmake:host gcc:host"
|
||||
PKG_LONGDESC="A general purpose (ZIP) data compression library."
|
||||
PKG_LONGDESC="zlib-ng compiled in --zlib-compat mode — drop-in libz with SIMD-accelerated inflate/deflate."
|
||||
PKG_TOOLCHAIN="cmake-make"
|
||||
|
||||
PKG_CMAKE_OPTS_HOST="-DINSTALL_PKGCONFIG_DIR=${TOOLCHAIN}/lib/pkgconfig"
|
||||
# zlib-ng reads CMAKE flags directly. ZLIB_COMPAT=ON is what makes this
|
||||
# build emit libz.so.1 (instead of libz-ng.so.2) so existing pkgconfig
|
||||
# pointers keep working. WITH_GZFILEOP keeps gzopen()/gzread()/etc.
|
||||
# Tests/benchmarks off to avoid pulling gtest into the cross toolchain.
|
||||
PKG_CMAKE_OPTS_HOST="-DZLIB_COMPAT=ON \
|
||||
-DZLIB_ENABLE_TESTS=OFF \
|
||||
-DZLIBNG_ENABLE_TESTS=OFF \
|
||||
-DWITH_GTEST=OFF \
|
||||
-DWITH_GZFILEOP=ON \
|
||||
-DINSTALL_PKGCONFIG_DIR=${TOOLCHAIN}/lib/pkgconfig"
|
||||
|
||||
PKG_CMAKE_OPTS_TARGET="-DINSTALL_PKGCONFIG_DIR=/usr/lib/pkgconfig"
|
||||
PKG_CMAKE_OPTS_TARGET="-DZLIB_COMPAT=ON \
|
||||
-DZLIB_ENABLE_TESTS=OFF \
|
||||
-DZLIBNG_ENABLE_TESTS=OFF \
|
||||
-DWITH_GTEST=OFF \
|
||||
-DWITH_GZFILEOP=ON \
|
||||
-DWITH_OPTIM=ON \
|
||||
-DWITH_NEON=ON \
|
||||
-DINSTALL_PKGCONFIG_DIR=/usr/lib/pkgconfig"
|
||||
|
||||
unpack() {
|
||||
mkdir -p "${PKG_BUILD}"
|
||||
tar --strip-components=1 -xf "${SOURCES}/${PKG_NAME}/${PKG_SOURCE_NAME}" -C "${PKG_BUILD}"
|
||||
}
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="mesa"
|
||||
PKG_VERSION="26.0.3"
|
||||
PKG_SHA256="ddb7443d328e89aa45b4b6b80f077bf937f099daeca8ba48cabe32aab769e134"
|
||||
PKG_VERSION="26.0.5"
|
||||
PKG_SHA256="d229c9937d9a25ca0a8958c59f425174563d300ec42acbea2dbe84a055023368"
|
||||
PKG_LICENSE="OSS"
|
||||
PKG_SITE="http://www.mesa3d.org/"
|
||||
PKG_URL="https://mesa.freedesktop.org/archive/mesa-${PKG_VERSION}.tar.xz"
|
||||
|
||||
@@ -261,7 +261,7 @@
|
||||
vdd_arm: DCDC_REG2 {
|
||||
regulator-name = "vdd_arm";
|
||||
regulator-min-microvolt = <950000>;
|
||||
regulator-max-microvolt = <1350000>;
|
||||
regulator-max-microvolt = <1450000>;
|
||||
regulator-ramp-delay = <6001>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
|
||||
@@ -35,9 +35,10 @@
|
||||
};
|
||||
- opp-1296000000 {
|
||||
- opp-hz = /bits/ 64 <1296000000>;
|
||||
- opp-microvolt = <1350000 1350000 1350000>;
|
||||
+ opp-1512000000 {
|
||||
+ opp-hz = /bits/ 64 <1512000000>;
|
||||
opp-microvolt = <1350000 1350000 1350000>;
|
||||
+ opp-microvolt = <1400000 1400000 1400000>;
|
||||
clock-latency-ns = <40000>;
|
||||
+ turbo-mode;
|
||||
};
|
||||
|
||||
@@ -7,7 +7,7 @@ PKG_ARCH="arm aarch64"
|
||||
PKG_LICENSE="MIT"
|
||||
PKG_SITE="https://github.com/PortsMaster/PortMaster-GUI"
|
||||
PKG_URL="https://github.com/PortsMaster/PortMaster-GUI/releases/download/${PKG_VERSION}/PortMaster.zip"
|
||||
PKG_DEPENDS_TARGET="toolchain archr-hotkey gamecontrollerdb oga_controls control-gen xmlstarlet list-guid gst-plugins-base"
|
||||
PKG_DEPENDS_TARGET="toolchain archr-hotkey gamecontrollerdb oga_controls control-gen xmlstarlet list-guid gst-plugins-base Python3 xz"
|
||||
PKG_LONGDESC="Portmaster - a simple tool that allows you to download various game ports"
|
||||
PKG_TOOLCHAIN="manual"
|
||||
|
||||
|
||||
@@ -23,12 +23,12 @@ chmod +x /storage/.config/PortMaster/mapper.txt
|
||||
|
||||
|
||||
#Use our gamecontrollerdb.txt
|
||||
rm -r gamecontrollerdb.txt
|
||||
rm -rf gamecontrollerdb.txt
|
||||
ln -sf /usr/config/SDL-GameControllerDB/gamecontrollerdb.txt gamecontrollerdb.txt
|
||||
|
||||
#Delete old PortMaster fold first (we can probably remove this later)
|
||||
if [ ! -f "/storage/roms/ports/PortMaster/pugwash" ]; then
|
||||
rm -r /storage/roms/ports/PortMaster
|
||||
if [ -d "/storage/roms/ports/PortMaster" ] && [ ! -f "/storage/roms/ports/PortMaster/pugwash" ]; then
|
||||
rm -rf /storage/roms/ports/PortMaster
|
||||
fi
|
||||
|
||||
#Make sure roms/ports/PortMaster folder exists
|
||||
@@ -38,13 +38,11 @@ if [ ! -d "/storage/roms/ports/PortMaster" ]; then
|
||||
fi
|
||||
|
||||
#We dont use tasksetter, delete it
|
||||
if [ -f /storage/roms/ports/PortMaster/tasksetter ]; then
|
||||
rm -r /storage/roms/ports/PortMaster/tasksetter
|
||||
fi
|
||||
rm -rf /storage/roms/ports/PortMaster/tasksetter
|
||||
|
||||
#Use PortMasters gptokeyb
|
||||
rm gptokeyb
|
||||
cp /storage/roms/ports/PortMaster/gptokeyb gptokeyb
|
||||
rm -f gptokeyb
|
||||
[ -x /storage/roms/ports/PortMaster/gptokeyb ] && cp /storage/roms/ports/PortMaster/gptokeyb gptokeyb
|
||||
|
||||
#Copy over required files for ports
|
||||
cp /storage/.config/PortMaster/control.txt /storage/roms/ports/PortMaster/control.txt
|
||||
|
||||
@@ -7,12 +7,19 @@
|
||||
# The purpose of this script is to permanently set the resolution
|
||||
# output for hdmi when connected.
|
||||
|
||||
xres="$(cat /sys/class/graphics/fb0/modes | grep -o -P '(?<=:).*(?=p-)' | cut -dx -f1)"
|
||||
# /sys/class/graphics/fb0/modes may not be populated yet if DRM is still
|
||||
# probing. Default to 0 so the comparison below falls through cleanly
|
||||
# instead of breaking arithmetic.
|
||||
xres="$(cat /sys/class/graphics/fb0/modes 2>/dev/null | grep -o -P '(?<=:).*(?=p-)' | cut -dx -f1)"
|
||||
[ -z "${xres}" ] && xres=0
|
||||
|
||||
# drm_tool source available at https://github.com/christianhaitian/drm_tool.git
|
||||
|
||||
mode="$(/usr/bin/drm_tool list | awk '/1280x720.*60/ {print substr($2,1,length($2)-1); exit}')"
|
||||
mode2="$(/usr/bin/drm_tool list | awk '/1920x1080.*60/ {print substr($2,1,length($2)-1); exit}')"
|
||||
# Wrap with a timeout: drm_tool can block on the DRM master if
|
||||
# rockchipdrm is still binding, which on a slow microSD has been
|
||||
# observed to hang this autostart script and (via Before=emustation)
|
||||
# the entire boot.
|
||||
mode="$(timeout 10 /usr/bin/drm_tool list 2>/dev/null | awk '/1280x720.*60/ {print substr($2,1,length($2)-1); exit}')"
|
||||
mode2="$(timeout 10 /usr/bin/drm_tool list 2>/dev/null | awk '/1920x1080.*60/ {print substr($2,1,length($2)-1); exit}')"
|
||||
|
||||
# Now we tell drm what the hdmi mode is by writing to /var/run/drmMode
|
||||
# This will get picked up by SDL2 as long as it's been patched with the batocera
|
||||
|
||||
@@ -181,6 +181,7 @@ system.battery.warning=0
|
||||
system.battery.warning_threshold=25
|
||||
system.hostname=@DEVICENAME@
|
||||
system.language=en_US
|
||||
enable.turbo-mode=0
|
||||
system.cpugovernor=ondemand
|
||||
system.loglevel=none
|
||||
system.merged.storage=0
|
||||
|
||||
@@ -66,20 +66,24 @@ set_cpu_boost() {
|
||||
esac
|
||||
}
|
||||
|
||||
# Pin CPU max_freq across all policies to the highest available OPP
|
||||
# (boost included if cpufreq/boost=1 was already toggled). Mirrors the
|
||||
# GPU helper above. ROCKNIX achieves the same effect by trimming the DT
|
||||
# ladder; we keep the full ladder for idle and force the ceiling up at
|
||||
# runtime.
|
||||
# Pin CPU max_freq across all policies to the highest available OPP.
|
||||
# Turbo OPPs (DT `turbo-mode`) live in scaling_boost_frequencies, NOT in
|
||||
# scaling_available_frequencies, even after cpufreq/boost=1. Combine
|
||||
# both so "highest" really hits 1512 MHz on RK3326 when the user's
|
||||
# turbo switch is on, and naturally falls back to 1416 when off (boost
|
||||
# file then reports an empty list).
|
||||
set_cpu_max_freq() {
|
||||
for POLICY in /sys/devices/system/cpu/cpufreq/policy[0-9]*; do
|
||||
[ -e "${POLICY}/scaling_max_freq" ] || continue
|
||||
[ -e "${POLICY}/cpuinfo_max_freq" ] || continue
|
||||
[ -e "${POLICY}/scaling_available_frequencies" ] || continue
|
||||
|
||||
local target=""
|
||||
case ${1} in
|
||||
highest)
|
||||
target=$(cat "${POLICY}/cpuinfo_max_freq")
|
||||
target=$( {
|
||||
cat "${POLICY}/scaling_available_frequencies" 2>/dev/null
|
||||
cat "${POLICY}/scaling_boost_frequencies" 2>/dev/null
|
||||
} | tr ' ' '\n' | grep -E '^[0-9]+$' | sort -n | tail -n1)
|
||||
;;
|
||||
*)
|
||||
target=${1}
|
||||
@@ -93,15 +97,18 @@ set_cpu_max_freq() {
|
||||
set_cpu_min_freq() {
|
||||
for POLICY in /sys/devices/system/cpu/cpufreq/policy[0-9]*; do
|
||||
[ -e "${POLICY}/scaling_min_freq" ] || continue
|
||||
[ -e "${POLICY}/cpuinfo_min_freq" ] || continue
|
||||
[ -e "${POLICY}/scaling_available_frequencies" ] || continue
|
||||
|
||||
local target=""
|
||||
case ${1} in
|
||||
highest)
|
||||
target=$(cat "${POLICY}/cpuinfo_max_freq")
|
||||
target=$( {
|
||||
cat "${POLICY}/scaling_available_frequencies" 2>/dev/null
|
||||
cat "${POLICY}/scaling_boost_frequencies" 2>/dev/null
|
||||
} | tr ' ' '\n' | grep -E '^[0-9]+$' | sort -n | tail -n1)
|
||||
;;
|
||||
lowest)
|
||||
target=$(cat "${POLICY}/cpuinfo_min_freq")
|
||||
target=$(tr ' ' '\n' <"${POLICY}/scaling_available_frequencies" | grep -E '^[0-9]+$' | sort -n | head -n1)
|
||||
;;
|
||||
*)
|
||||
target=${1}
|
||||
@@ -176,11 +183,13 @@ restore_cpu_boost() {
|
||||
}
|
||||
|
||||
performance() {
|
||||
# Force boost ON regardless of the user setting during gameplay so the
|
||||
# 1512 MHz OPP is reachable. RK3326's BSP-marked turbo OPP is otherwise
|
||||
# locked behind cpufreq/boost. ondemand/schedutil paths restore the
|
||||
# user preference.
|
||||
set_cpu_boost on
|
||||
# Honor the user's "Enable CPU Overclock" switch from ES even during
|
||||
# gameplay: gameplay shouldn't silently enable turbo behind the user's
|
||||
# back. If they want the 1512 MHz OPP, they toggle it on; if they
|
||||
# prefer to stay at 1416 MHz for thermals/battery, gameplay respects
|
||||
# that. set_cpu_max_freq highest then pins to the highest currently
|
||||
# available frequency (1512 if boost on, 1416 if off).
|
||||
restore_cpu_boost
|
||||
set_cpu_gov performance
|
||||
set_cpu_max_freq highest
|
||||
set_dmc_gov performance
|
||||
|
||||
@@ -426,4 +426,5 @@ fi
|
||||
# Run Dolphin emulator
|
||||
${GPTOKEYB} ${DOLPHIN_CORE} xbox360 &
|
||||
${EMUPERF} /usr/bin/${DOLPHIN_CORE} ${CMD} -e "${1}"
|
||||
kill -9 "$(pidof gptokeyb)"
|
||||
_gptokeyb_pid="$(pidof gptokeyb 2>/dev/null)"
|
||||
[ -n "${_gptokeyb_pid}" ] && kill -9 ${_gptokeyb_pid}
|
||||
|
||||
+2
-1
@@ -396,4 +396,5 @@ fi
|
||||
# Run Dolphin emulator
|
||||
${GPTOKEYB} ${DOLPHIN_CORE} xbox360 &
|
||||
${EMUPERF} /usr/bin/${DOLPHIN_CORE} ${CMD} -e "${1}"
|
||||
kill -9 "$(pidof gptokeyb)"
|
||||
_gptokeyb_pid="$(pidof gptokeyb 2>/dev/null)"
|
||||
[ -n "${_gptokeyb_pid}" ] && kill -9 ${_gptokeyb_pid}
|
||||
|
||||
@@ -98,4 +98,5 @@ export LD_PRELOAD="/usr/lib/libdrastouch.so"
|
||||
export SDL_TOUCH_MOUSE_EVENTS="0"
|
||||
export DSHOOK_MIC_THRESH="${MICTHRESH}"
|
||||
./drastic "$1"
|
||||
kill -9 $(pidof gptokeyb)
|
||||
_gptokeyb_pid="$(pidof gptokeyb 2>/dev/null)"
|
||||
[ -n "${_gptokeyb_pid}" ] && kill -9 ${_gptokeyb_pid}
|
||||
|
||||
@@ -146,8 +146,14 @@ fi
|
||||
# Panfrost optimization for Mali-G31
|
||||
export PAN_MESA_DEBUG=forcepack
|
||||
export MESA_NO_ERROR=1
|
||||
# Mesa GL command thread: Flycast already runs GL in a worker thread
|
||||
# (rend.ThreadedRendering=1) and is GPU-bound on RK3326. Marshalling GL
|
||||
# calls into Mesa's own thread amortises the per-call dispatch cost on a
|
||||
# single-issue Cortex-A35. See docs/mesa-glthread-matrix.md.
|
||||
export MESA_GLTHREAD=true
|
||||
|
||||
#Run flycast emulator
|
||||
$GPTOKEYB "flycast" -c "${CONF_DIR}/flycast.gptk" &
|
||||
${EMUPERF} /usr/bin/flycast "${1}"
|
||||
kill -9 "$(pidof gptokeyb)"
|
||||
_gptokeyb_pid="$(pidof gptokeyb 2>/dev/null)"
|
||||
[ -n "${_gptokeyb_pid}" ] && kill -9 ${_gptokeyb_pid}
|
||||
|
||||
@@ -205,4 +205,5 @@ fi
|
||||
|
||||
$GPTOKEYB "melonDS" -c "${CONF_DIR}/melonDS.gptk" &
|
||||
${EMUPERF} /usr/bin/melonDS -f "${ROM}"
|
||||
kill -9 "$(pidof gptokeyb)"
|
||||
_gptokeyb_pid="$(pidof gptokeyb 2>/dev/null)"
|
||||
[ -n "${_gptokeyb_pid}" ] && kill -9 ${_gptokeyb_pid}
|
||||
|
||||
@@ -123,5 +123,11 @@ ARG=${1//[\\]/}
|
||||
# Panfrost optimization: forcepack reduces draw call overhead on Mali-G31
|
||||
export PAN_MESA_DEBUG=forcepack
|
||||
export MESA_NO_ERROR=1
|
||||
# Mesa GL command thread: PPSSPP issues many small GL calls per frame
|
||||
# (sprite/draw bursts) and the standalone build keeps render and CPU on
|
||||
# separate threads internally. Letting Mesa marshal GL on its own
|
||||
# thread cuts per-call dispatch latency on Cortex-A35. See
|
||||
# docs/mesa-glthread-matrix.md.
|
||||
export MESA_GLTHREAD=true
|
||||
|
||||
${EMUPERF} ppsspp --pause-menu-exit "${ARG}"
|
||||
|
||||
@@ -6,27 +6,12 @@
|
||||
|
||||
GPU_DRIVER_SETTING_KEY="gpu.driver"
|
||||
|
||||
# When the device ships no panfrost DTB overlay, panfrost selection is a
|
||||
# brick: even with the runtime fallback, sway/UI starts before the
|
||||
# fallback finishes, leaves a half-initialized GPU, and the next boot
|
||||
# ends in a black screen. Detect the empty placeholder substituted by
|
||||
# package.mk and refuse panfrost in that case.
|
||||
DTB_OVERLAY_LOAD_CMD="@DTB_OVERLAY_LOAD@"
|
||||
PANFROST_AVAILABLE=true
|
||||
[ -z "${DTB_OVERLAY_LOAD_CMD}" ] && PANFROST_AVAILABLE=false
|
||||
|
||||
get_current_driver() {
|
||||
CONFDRIVER=$(get_setting ${GPU_DRIVER_SETTING_KEY})
|
||||
if [ -z ${CONFDRIVER} ]; then
|
||||
CONFDRIVER="libmali" # DEFAULT
|
||||
set_setting ${GPU_DRIVER_SETTING_KEY} ${CONFDRIVER}
|
||||
fi
|
||||
# Self-heal: stale "panfrost" setting on a device that can't run it.
|
||||
if [ "${CONFDRIVER}" = "panfrost" ] && [ "${PANFROST_AVAILABLE}" = "false" ]; then
|
||||
logger -t gpudriver "panfrost not supported on this device (no DTB overlay); reverting to libmali"
|
||||
CONFDRIVER="libmali"
|
||||
set_setting ${GPU_DRIVER_SETTING_KEY} ${CONFDRIVER}
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
@@ -89,11 +74,7 @@ load_driver() {
|
||||
|
||||
case "$1" in
|
||||
"--options")
|
||||
if [ "${PANFROST_AVAILABLE}" = "true" ]; then
|
||||
echo "panfrost libmali"
|
||||
else
|
||||
echo "libmali"
|
||||
fi
|
||||
echo "panfrost libmali"
|
||||
;;
|
||||
"--start")
|
||||
get_current_driver
|
||||
@@ -117,10 +98,6 @@ case "$1" in
|
||||
@DTB_OVERLAY_UNLOAD@
|
||||
;;
|
||||
"panfrost")
|
||||
if [ "${PANFROST_AVAILABLE}" = "false" ]; then
|
||||
echo "panfrost is not supported on this device" >&2
|
||||
exit 2
|
||||
fi
|
||||
set_setting ${GPU_DRIVER_SETTING_KEY} $1
|
||||
@DTB_OVERLAY_LOAD@
|
||||
;;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user