Add XNN Pack toggle switch for ONNX inference acceleration (#155)

* Initial plan

* Add XNN Pack switch for ONNX inference acceleration

Co-authored-by: xkeyC <39891083+xkeyC@users.noreply.github.com>

* Refactor Rust ONNX session creation to reduce code duplication

Co-authored-by: xkeyC <39891083+xkeyC@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: xkeyC <39891083+xkeyC@users.noreply.github.com>
This commit is contained in:
Copilot
2025-11-28 21:23:31 +08:00
committed by GitHub
parent db024f19bd
commit db89100402
26 changed files with 197 additions and 74 deletions

View File

@@ -1410,6 +1410,12 @@ class MessageLookup extends MessageLookupByLibrary {
"settings_item_dns_info": MessageLookupByLibrary.simpleMessage(
"When enabled, may solve DNS pollution issues in some regions",
),
"settings_item_onnx_xnn_pack": MessageLookupByLibrary.simpleMessage(
"Use XNN to accelerate ONNX inference",
),
"settings_item_onnx_xnn_pack_info": MessageLookupByLibrary.simpleMessage(
"Disabling this option may solve some compatibility issues",
),
"settings_title_game": MessageLookupByLibrary.simpleMessage("Game"),
"settings_title_general": MessageLookupByLibrary.simpleMessage("General"),
"support_dev_alipay": MessageLookupByLibrary.simpleMessage("Alipay"),

View File

@@ -1249,6 +1249,12 @@ class MessageLookup extends MessageLookupByLibrary {
"settings_item_dns_info": MessageLookupByLibrary.simpleMessage(
"有効にすると、一部の地域でのDNS汚染問題を解決する可能性があります",
),
"settings_item_onnx_xnn_pack": MessageLookupByLibrary.simpleMessage(
"XNNを使用してONNX推論を高速化",
),
"settings_item_onnx_xnn_pack_info": MessageLookupByLibrary.simpleMessage(
"このオプションをオフにすると、一部の互換性問題が解決する場合があります",
),
"settings_title_game": MessageLookupByLibrary.simpleMessage("ゲーム"),
"settings_title_general": MessageLookupByLibrary.simpleMessage("一般"),
"support_dev_alipay": MessageLookupByLibrary.simpleMessage("Alipay"),

View File

@@ -1414,6 +1414,12 @@ class MessageLookup extends MessageLookupByLibrary {
"settings_item_dns_info": MessageLookupByLibrary.simpleMessage(
"При включении может решить проблемы с DNS-загрязнением в некоторых регионах",
),
"settings_item_onnx_xnn_pack": MessageLookupByLibrary.simpleMessage(
"Использовать XNN для ускорения ONNX",
),
"settings_item_onnx_xnn_pack_info": MessageLookupByLibrary.simpleMessage(
"Отключение этой опции может решить некоторые проблемы совместимости",
),
"settings_title_game": MessageLookupByLibrary.simpleMessage("Игра"),
"settings_title_general": MessageLookupByLibrary.simpleMessage("Общие"),
"support_dev_alipay": MessageLookupByLibrary.simpleMessage("Alipay"),

View File

@@ -1206,6 +1206,12 @@ class MessageLookup extends MessageLookupByLibrary {
"settings_item_dns_info": MessageLookupByLibrary.simpleMessage(
"开启后可能解决部分地区 DNS 污染的问题",
),
"settings_item_onnx_xnn_pack": MessageLookupByLibrary.simpleMessage(
"使用 XNN 加速 ONNX 推理",
),
"settings_item_onnx_xnn_pack_info": MessageLookupByLibrary.simpleMessage(
"关闭此选项或许可以解决一些兼容问题",
),
"settings_title_game": MessageLookupByLibrary.simpleMessage("游戏"),
"settings_title_general": MessageLookupByLibrary.simpleMessage("通用"),
"support_dev_alipay": MessageLookupByLibrary.simpleMessage("支付宝"),

View File

@@ -1200,6 +1200,12 @@ class MessageLookup extends MessageLookupByLibrary {
"settings_item_dns_info": MessageLookupByLibrary.simpleMessage(
"開啟後可能解決部分地區 DNS 污染的問題",
),
"settings_item_onnx_xnn_pack": MessageLookupByLibrary.simpleMessage(
"使用 XNN 加速 ONNX 推理",
),
"settings_item_onnx_xnn_pack_info": MessageLookupByLibrary.simpleMessage(
"關閉此選項或許可以解決一些相容性問題",
),
"settings_title_game": MessageLookupByLibrary.simpleMessage("遊戲"),
"settings_title_general": MessageLookupByLibrary.simpleMessage("通用"),
"support_dev_alipay": MessageLookupByLibrary.simpleMessage("支付寶"),

View File

@@ -28,10 +28,9 @@ class S {
static const AppLocalizationDelegate delegate = AppLocalizationDelegate();
static Future<S> load(Locale locale) {
final name =
(locale.countryCode?.isEmpty ?? false)
? locale.languageCode
: locale.toString();
final name = (locale.countryCode?.isEmpty ?? false)
? locale.languageCode
: locale.toString();
final localeName = Intl.canonicalizedLocale(name);
return initializeMessages(localeName).then((_) {
Intl.defaultLocale = localeName;
@@ -6057,6 +6056,26 @@ class S {
args: [],
);
}
/// `Use XNN to accelerate ONNX inference`
String get settings_item_onnx_xnn_pack {
return Intl.message(
'Use XNN to accelerate ONNX inference',
name: 'settings_item_onnx_xnn_pack',
desc: '',
args: [],
);
}
/// `Disabling this option may solve some compatibility issues`
String get settings_item_onnx_xnn_pack_info {
return Intl.message(
'Disabling this option may solve some compatibility issues',
name: 'settings_item_onnx_xnn_pack_info',
desc: '',
args: [],
);
}
}
class AppLocalizationDelegate extends LocalizationsDelegate<S> {