From f5ff9602530a4bbe5f1016a60f066461d5e07a5f Mon Sep 17 00:00:00 2001 From: Jonah Williams Date: Mon, 25 Sep 2023 12:06:09 -0700 Subject: [PATCH] [Engine] use QoS classes in iOS engine. (flutter/engine#46265) Hint to the CPU scheduler which of our threads are more important. This change should result in more stable rendering times on CI, but likely doesn't have any other observable effects. --- .../platform/darwin/ios/framework/Source/FlutterEngine.mm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/engine/src/flutter/shell/platform/darwin/ios/framework/Source/FlutterEngine.mm b/engine/src/flutter/shell/platform/darwin/ios/framework/Source/FlutterEngine.mm index df4bd038036..e6c81339ef7 100644 --- a/engine/src/flutter/shell/platform/darwin/ios/framework/Source/FlutterEngine.mm +++ b/engine/src/flutter/shell/platform/darwin/ios/framework/Source/FlutterEngine.mm @@ -49,15 +49,18 @@ static void IOSPlatformThreadConfigSetter(const fml::Thread::ThreadConfig& confi // set thread priority switch (config.priority) { case fml::Thread::ThreadPriority::BACKGROUND: { + pthread_set_qos_class_self_np(QOS_CLASS_BACKGROUND, 0); [[NSThread currentThread] setThreadPriority:0]; break; } case fml::Thread::ThreadPriority::NORMAL: { + pthread_set_qos_class_self_np(QOS_CLASS_DEFAULT, 0); [[NSThread currentThread] setThreadPriority:0.5]; break; } case fml::Thread::ThreadPriority::RASTER: case fml::Thread::ThreadPriority::DISPLAY: { + pthread_set_qos_class_self_np(QOS_CLASS_USER_INTERACTIVE, 0); [[NSThread currentThread] setThreadPriority:1.0]; sched_param param; int policy;