Изучение игрового режима macOS Sonoma дает дополнительную информацию о том, что он делает, в том числе о том, как он влияет на ядра процессора Apple Silicon во время использования.
Apple представила игровой режим как способ максимально раскрыть потенциал игр на Mac. По словам Apple, он отдает приоритет играм на процессоре и графическом процессоре, снижает влияние фоновых задач, уменьшает задержку звука и уменьшает задержку ввода с игровыми контроллерами за счет удвоения частоты дискретизации Bluetooth.
По данным компании Eclectic Light, более подробный анализ того, что происходит с процессором в игровом режиме, показывает, какое влияние на самом деле оказывает эта программная функция. Поскольку Apple не предоставила подробной информации о том, как работает игровой режим, в отчете хотелось раскрыть часть этой информации для себя.
Глядя на загрузку ЦП на Mac Studio M1 Max под управлением Asphalt 9, в отчете сообщается, что на двух ядрах эффективности была нагрузка примерно 50%, а на ядра производительности в игровом режиме нагрузка была примерно 50%. При выходе из игрового режима ядра производительности получали меньше работы.
Apple упоминает, что существующие фоновые потоки подавляются в игровом режиме, чтобы освободить место для игровых потоков. «Обычно этого можно достичь за счет повышения качества обслуживания (QoS) игровых потоков и снижения качества фоновых задач», — говорится в отчете, — «хотя последние уже должны работать с низким QoS и на ядрах эффективности».
Хотя мало что известно о том, как на самом деле работает игровой режим в macOS, еще меньше известно о том, как распределяются ресурсы графического процессора.
Поскольку Apple сообщила, что игровой режим активируется, когда идентифицированная игра переводится в полноэкранный режим, в отчете указано, что больше ресурсов графического процессора будет использоваться только в полноэкранном режиме.
Используя CPUSetter для тестирования, игра в игровом режиме использовала более 80% ресурсов графического процессора. При выходе из полноэкранного режима и работе в окне вне игрового режима загрузка графического процессора была ниже 50%.
Игровой режим — операции
В отчете говорится, что при включении игрового режима с использованием распознанной игры, которая переходит в полноэкранный режим, для управления игровым режимом запускается gamepolicyd. Он работает с RunningBoard, чтобы обозначить игровую консоль и другие службы как «Критические службы игрового режима».
В этот момент bluetoothd переходит в игровой режим, который также меняет режим «SystemSettingsModel::systemMonitor game console» и заставляет Bluetooth использовать настройки низкой задержки для игровых контроллеров и задержки звука.
После этого macOS отправляет пользователю уведомление о том, что игровой режим включен. Затем GamePolicyAgent записывает «Игровой режим включен, с 1 пользовательским игровым процессом», прежде чем RunningBoard меняет роли для многих управляемых задач, чтобы уменьшить их влияние.
Таким образом, в отчете указано, что не существует альтернативного способа включения игрового режима, кроме запуска распознанной игры в полноэкранном режиме, и что отключение игрового режима происходит автоматически, как только окно перестает быть полноэкранным. Это также заставляет RunningBoard подавлять фоновые службы, чтобы улучшить доступ игры к ядрам ЦП.
Игровой режим также увеличивает нагрузку на графический процессор в игре, «хотя неясно, значительно ли это больше, чем можно было бы достичь только в полноэкранном режиме», — говорится в отчете.
Компания Eclectic Light может подготовить дополнительные отчеты об этой функции, поскольку она намерена «более подробно изучить производительность процессора и графического процессора».