假如肉眼看到的画面能直接反映在调度上,也就是说以把调度器放在观看者的角度来决定性能,是否就能实现完美的性能控制和最大化体验?
FAS (Frame Aware Scheduling)就是这种调度概念,通过监视画面渲染来尽量控制性能以在保证渲染时间的同时实现最小化开销
fas-rs?fas-rs是运行在用户态的FAS(Frame Aware Scheduling)实现,对比核心思路一致但是在内核态的MI FEAS有着近乎在任何设备通用的兼容性和灵活性方面的优势fas-rs有自己的一套插件系统,开发说明详见插件的模板仓库/sdcard/Android/fas-rs/games.tomlconfig)说明:keep_std
booltrue: 永远在配置合并时保持标准配置的 profile,保留本地配置的应用列表,其它地方和 false 相同 *false: 见配置合并的默认行为scene_game_list
booltrue: 使用 scene 游戏列表 *false: 不使用 scene 游戏列表*: 默认配置
game_list)说明:"package" = target_fps
package: 字符串,应用包名target_fps: 一个数组(如[30,60,120,144])或者单个整数,表示游戏会渲染到的目标帧率,fas-rs会在运行时动态匹配powersave / balance / performance / fast)说明:fas-rs还没有官方的切换模式的管理器,而是接入了scene的配置接口,如果你不用 scene 则默认使用balance的配置/dev/fas_rs/mode节点写入 4 模式中的任意一个即可切换到对应模式,同时读取它也可以知道现在fas-rs所处的模式margin_fps:
margin_fps = { base = <float>, <target_fps margin override> = <float>(可多项) }margin_fps = <float>,等效margin_fps = { base = <float> }target_fps margin override强制指定margin_fps值,否则会根据公式(target_fps / 60 * base)缩放core_temp_thresh:
整数或者"disabled"整数: 让fas-rs触发温控的核心温度(单位0.001℃)"disabled": 关闭fas-rs内置温控games.toml配置标准例:[config]
keep_std = true
scene_game_list = true
[game_list]
"com.hypergryph.arknights" = [30, 60]
"com.miHoYo.Yuanshen" = [30, 60]
"com.miHoYo.enterprise.NGHSoD" = [30, 60, 90]
"com.miHoYo.hkrpg" = [30, 60]
"com.kurogame.mingchao" = [24, 30, 45, 60]
"com.pwrd.hotta.laohu" = [25, 30, 45, 60, 90]
"com.mojang.minecraftpe" = [60, 90, 120]
"com.netease.party" = [30, 60]
"com.shangyoo.neon" = 60
"com.tencent.tmgp.pubgmhd" = [60, 90, 120]
"com.tencent.tmgp.sgame" = [30, 60, 90, 120]
[powersave]
margin_fps = 3
core_temp_thresh = 80000
[balance]
margin_fps = 1
core_temp_thresh = 90000
[performance]
margin_fps = 0
core_temp_thresh = 95000
[fast]
margin_fps = 0
core_temp_thresh = 95000
fas-rs内置配置合并系统,来解决未来的配置功能变动问题。它的行为如下模块每次安装都会自动调用一次
手动例
fas-rs merge /path/to/std/profile
# Ubuntu (NDK is required)
apt install gcc-multilib git-lfs
# Rust (Nightly version is required)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
rustup default nightly
rustup target add aarch64-linux-android armv7-linux-androideabi x86_64-linux-android i686-linux-android
rustup component add rust-src
# Cargo-ndk
cargo install cargo-ndk
# Clone
git clone https://github.com/shadow3aaa/fas-rs
cd fas-rs
# Compile
cargo xtask build -r
🐷🐷的爱发电,你的捐赠可以增加🐷🐷维护开发此项目的动力。
2,227 followers · starred Mar 2024
230 followers · starred Jun 2026
234 followers · starred Apr 2024
31 followers · starred Feb 2025
假如肉眼看到的画面能直接反映在调度上,也就是说以把调度器放在观看者的角度来决定性能,是否就能实现完美的性能控制和最大化体验?
FAS (Frame Aware Scheduling)就是这种调度概念,通过监视画面渲染来尽量控制性能以在保证渲染时间的同时实现最小化开销
fas-rs?fas-rs是运行在用户态的FAS(Frame Aware Scheduling)实现,对比核心思路一致但是在内核态的MI FEAS有着近乎在任何设备通用的兼容性和灵活性方面的优势fas-rs有自己的一套插件系统,开发说明详见插件的模板仓库/sdcard/Android/fas-rs/games.tomlconfig)说明:keep_std
booltrue: 永远在配置合并时保持标准配置的 profile,保留本地配置的应用列表,其它地方和 false 相同 *false: 见配置合并的默认行为scene_game_list
booltrue: 使用 scene 游戏列表 *false: 不使用 scene 游戏列表*: 默认配置
game_list)说明:"package" = target_fps
package: 字符串,应用包名target_fps: 一个数组(如[30,60,120,144])或者单个整数,表示游戏会渲染到的目标帧率,fas-rs会在运行时动态匹配powersave / balance / performance / fast)说明:fas-rs还没有官方的切换模式的管理器,而是接入了scene的配置接口,如果你不用 scene 则默认使用balance的配置/dev/fas_rs/mode节点写入 4 模式中的任意一个即可切换到对应模式,同时读取它也可以知道现在fas-rs所处的模式margin_fps:
margin_fps = { base = <float>, <target_fps margin override> = <float>(可多项) }margin_fps = <float>,等效margin_fps = { base = <float> }target_fps margin override强制指定margin_fps值,否则会根据公式(target_fps / 60 * base)缩放core_temp_thresh:
整数或者"disabled"整数: 让fas-rs触发温控的核心温度(单位0.001℃)"disabled": 关闭fas-rs内置温控games.toml配置标准例:[config]
keep_std = true
scene_game_list = true
[game_list]
"com.hypergryph.arknights" = [30, 60]
"com.miHoYo.Yuanshen" = [30, 60]
"com.miHoYo.enterprise.NGHSoD" = [30, 60, 90]
"com.miHoYo.hkrpg" = [30, 60]
"com.kurogame.mingchao" = [24, 30, 45, 60]
"com.pwrd.hotta.laohu" = [25, 30, 45, 60, 90]
"com.mojang.minecraftpe" = [60, 90, 120]
"com.netease.party" = [30, 60]
"com.shangyoo.neon" = 60
"com.tencent.tmgp.pubgmhd" = [60, 90, 120]
"com.tencent.tmgp.sgame" = [30, 60, 90, 120]
[powersave]
margin_fps = 3
core_temp_thresh = 80000
[balance]
margin_fps = 1
core_temp_thresh = 90000
[performance]
margin_fps = 0
core_temp_thresh = 95000
[fast]
margin_fps = 0
core_temp_thresh = 95000
fas-rs内置配置合并系统,来解决未来的配置功能变动问题。它的行为如下模块每次安装都会自动调用一次
手动例
fas-rs merge /path/to/std/profile
# Ubuntu (NDK is required)
apt install gcc-multilib git-lfs
# Rust (Nightly version is required)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
rustup default nightly
rustup target add aarch64-linux-android armv7-linux-androideabi x86_64-linux-android i686-linux-android
rustup component add rust-src
# Cargo-ndk
cargo install cargo-ndk
# Clone
git clone https://github.com/shadow3aaa/fas-rs
cd fas-rs
# Compile
cargo xtask build -r
🐷🐷的爱发电,你的捐赠可以增加🐷🐷维护开发此项目的动力。
2,227 followers · starred Mar 2024
230 followers · starred Jun 2026
234 followers · starred Apr 2024
31 followers · starred Feb 2025