From 3749c62fb33b4334469a89f69c47589daa6e7b6e Mon Sep 17 00:00:00 2001 From: John Williams Date: Sun, 11 Jan 2026 22:08:44 +1100 Subject: [PATCH] RK3326 - enable MangoHud for Panfrost --- .../apps/mangohud/config/MangoHud.conf | 2 +- .../ROCKNIX/packages/apps/mangohud/package.mk | 10 +++++++ .../RK3326/0001-RK3326-soc_thermal.patch | 26 +++++++++++++++++++ .../platforms/RK3326/075-mangohud-supported | 25 ++++++++++++++++++ .../rocknix/profile.d/101-gpu-functions | 21 ++++++++------- .../packages/virtual/gamesupport/package.mk | 2 +- 6 files changed, 75 insertions(+), 11 deletions(-) create mode 100644 projects/ROCKNIX/packages/apps/mangohud/patches/RK3326/0001-RK3326-soc_thermal.patch create mode 100644 projects/ROCKNIX/packages/hardware/quirks/platforms/RK3326/075-mangohud-supported diff --git a/projects/ROCKNIX/packages/apps/mangohud/config/MangoHud.conf b/projects/ROCKNIX/packages/apps/mangohud/config/MangoHud.conf index 8d0aa23cc8..928c07f8c5 100644 --- a/projects/ROCKNIX/packages/apps/mangohud/config/MangoHud.conf +++ b/projects/ROCKNIX/packages/apps/mangohud/config/MangoHud.conf @@ -242,7 +242,7 @@ frame_timing ### Change the hud font size -font_size=40 +font_size=@FONT_SIZE@ # font_scale=1.0 # font_size_text=24 # font_scale_media_player=0.55 diff --git a/projects/ROCKNIX/packages/apps/mangohud/package.mk b/projects/ROCKNIX/packages/apps/mangohud/package.mk index a21518ebb0..d32a247455 100644 --- a/projects/ROCKNIX/packages/apps/mangohud/package.mk +++ b/projects/ROCKNIX/packages/apps/mangohud/package.mk @@ -68,4 +68,14 @@ post_makeinstall_target() { mkdir -p ${INSTALL}/usr/config/MangoHud cp -rf ${PKG_DIR}/config/* ${INSTALL}/usr/config/MangoHud + + # Set font size for display resolution + case ${DEVICE} in + S922X|RK3326) + sed -e "s/@FONT_SIZE@/30/g" -i ${INSTALL}/usr/config/MangoHud/MangoHud.conf + ;; + *) + sed -e "s/@FONT_SIZE@/40/g" -i ${INSTALL}/usr/config/MangoHud/MangoHud.conf + ;; + esac } diff --git a/projects/ROCKNIX/packages/apps/mangohud/patches/RK3326/0001-RK3326-soc_thermal.patch b/projects/ROCKNIX/packages/apps/mangohud/patches/RK3326/0001-RK3326-soc_thermal.patch new file mode 100644 index 0000000000..cfd85f8240 --- /dev/null +++ b/projects/ROCKNIX/packages/apps/mangohud/patches/RK3326/0001-RK3326-soc_thermal.patch @@ -0,0 +1,26 @@ +From 425462bfd2913ab9e97a7df114cdcea783bcf8fd Mon Sep 17 00:00:00 2001 +From: John Williams +Date: Sun, 11 Jan 2026 21:42:52 +1100 +Subject: [PATCH] RK3326 soc_thermal + +--- + src/cpu.cpp | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/src/cpu.cpp b/src/cpu.cpp +index 6307766..e476b34 100644 +--- a/src/cpu.cpp ++++ b/src/cpu.cpp +@@ -606,6 +606,9 @@ bool CPUStats::GetCpuFile() { + } else if (name == "apm_xgene") { + find_input(path, "temp", input, "SoC Temperature"); + break; ++ } else if (name == "soc_thermal") { ++ find_fallback_input(path, "temp1", input); ++ break; + } else { + path.clear(); + } +-- +2.47.3 + diff --git a/projects/ROCKNIX/packages/hardware/quirks/platforms/RK3326/075-mangohud-supported b/projects/ROCKNIX/packages/hardware/quirks/platforms/RK3326/075-mangohud-supported new file mode 100644 index 0000000000..619fd4007c --- /dev/null +++ b/projects/ROCKNIX/packages/hardware/quirks/platforms/RK3326/075-mangohud-supported @@ -0,0 +1,25 @@ +#!/bin/sh + +# SPDX-License-Identifier: GPL-2.0 +# Copyright (C) 2025 ROCKNIX (https://github.com/ROCKNIX) + +. /etc/profile + +GPUDRIVER=$(/usr/bin/gpudriver) +MANGOHUD_ENABLED=$(get_setting "rocknix.mangohud.enabled") + +# Init setting to 'disabled' +if [ ! -n "${MANGOHUD_ENABLED}" ]; then + set_setting "rocknix.mangohud.enabled" "0" +fi + +# Enable / disable MangoHud support (panfrost / libmali) +if [ "${GPUDRIVER}" == "panfrost" ]; then + cat </storage/.config/profile.d/075-mangohud-supported +DEVICE_MANGOHUD_SUPPORT="true" +EOF +else + cat </storage/.config/profile.d/075-mangohud-supported +DEVICE_MANGOHUD_SUPPORT="false" +EOF +fi diff --git a/projects/ROCKNIX/packages/rocknix/profile.d/101-gpu-functions b/projects/ROCKNIX/packages/rocknix/profile.d/101-gpu-functions index 1d8b7a5cd6..5028546121 100644 --- a/projects/ROCKNIX/packages/rocknix/profile.d/101-gpu-functions +++ b/projects/ROCKNIX/packages/rocknix/profile.d/101-gpu-functions @@ -6,15 +6,18 @@ function gpu_profiling() { local profiling_state=${1} case "${HW_DEVICE}" in - S922X) - case "${profiling_state}" in - "on") - echo 1 > /sys/bus/platform/drivers/panfrost/[a-f0-9]*.gpu/profiling - ;; - "off") - echo 0 > /sys/bus/platform/drivers/panfrost/[a-f0-9]*.gpu/profiling - ;; - esac + S922X|RK3326) + # Enable Panfrost profiling - see https://docs.kernel.org/gpu/panfrost.html + if [[ -e "/sys/bus/platform/drivers/panfrost" ]]; then + case "${profiling_state}" in + "on") + echo 1 > /sys/bus/platform/drivers/panfrost/[a-f0-9]*.gpu/profiling + ;; + "off") + echo 0 > /sys/bus/platform/drivers/panfrost/[a-f0-9]*.gpu/profiling + ;; + esac + fi ;; esac } \ No newline at end of file diff --git a/projects/ROCKNIX/packages/virtual/gamesupport/package.mk b/projects/ROCKNIX/packages/virtual/gamesupport/package.mk index 41e80e6d10..7ccf13fa1f 100644 --- a/projects/ROCKNIX/packages/virtual/gamesupport/package.mk +++ b/projects/ROCKNIX/packages/virtual/gamesupport/package.mk @@ -10,7 +10,7 @@ PKG_LONGDESC="Game support software metapackage." PKG_GAMESUPPORT="sixaxis rocknix-hotkey jstest-sdl gamecontrollerdb sdljoytest sdltouchtest control-gen sdl2text" case ${DEVICE} in - SM8250|SM8550|SM8650|SDM845|S922X) + SM8250|SM8550|SM8650|SDM845|S922X|RK3326) PKG_GAMESUPPORT+=" mangohud" ;; esac