Можно ли безопасно переводить игры в спящий режим без сбоев в ОС?

Можно ли безопасно переводить игры в спящий режим без сбоев в ОС?

Можно ли сохранить текущее состояние игры с помощью гибернации без сбоя после загрузки из файла гибернации? Или это зависит от игры и/или DRM? А как насчет эмуляторов/виртуальных машин? Я пробовал сЕвро Трак Симулятор 2только что и он вылетел после того, как я его развернул.

решение1

Спячка (S4)отключает питание, поэтому графический процессор и его оперативная память также отключаются. На этой странице нет упоминания о видеопамяти.

Состояние гибернации (S4)

Windows использует спящий режим для обеспечения быстрого запуска. Когда он доступен, он также используется на мобильных устройствах для продления срока службы батареи системы, предоставляя механизм для сохранения всего состояния пользователя до выключения системы. При переходе в спящий режим все содержимое памяти записывается в файл на основном системном диске, файл спящего режима. Это сохраняет состояние операционной системы, приложений и устройств. В случае, когда объединенный объем памяти потребляет всю физическую память, файл спящего режима должен быть достаточно большим, чтобы гарантировать наличие места для сохранения всего содержимого физической памяти. Поскольку данные записываются в энергонезависимое хранилище, DRAM не нужно поддерживать самообновление, и его можно отключить, что означает, что энергопотребление спящего режима очень низкое, почти такое же, как при выключенном питании.

Вхождение в спячку

При запросе на переход в режим гибернации система выполняет следующие шаги:

  1. Приложения и службы уведомлены
  2. Водители уведомлены
  3. Состояние пользователя и системы сохраняется на диске в сжатом формате.
  4. Прошивка уведомлена

Выход из спящего режима

При включении системы и выходе ее из режима гибернации происходят следующие шаги.

  1. Система POST
  2. Системная память распаковывается и восстанавливается из файла гибернации.
  3. Инициализация устройства
  4. Драйверы восстанавливаются до состояния, в котором они были до перехода в спящий режим.
  5. Службы восстанавливаются до состояния, в котором они были до перехода в спящий режим.
  6. Система становится доступной для входа

Учитывая, что (насколько мне известно) Windows не сбрасывает/не восстанавливает видеопамять, я бы не удивился, если бы игры вылетали при возобновлении работы системы.

Если верно, что Windows не работает с видеопамятью, то графический процессор, скорее всего, будет повторно инициализирован драйверами так же, как и при новой загрузке, то есть: все текстуры и код игрового движка, работающие на графическом процессоре, будут отображаться как "внезапно" не будет там (от момента до перехода в спящий режим до момента выхода из спящего режима).

Это оставит игровой движок/приложение работающими на CPU (которыйявляетсявосстановлен) разговаривает с "ничего" - или, по крайней мере, то, чего больше нет.

Игровому приложению придется обращаться с этим очень осторожно, и для этого нет никаких веских причин.

Чтобы еще больше усугубить проблему,возможныйчто устройство PCIe выполнит перечисление и получит другое выделенное адресное пространство, что означает, что A) графический процессор не делает то, что мы думали, и B) графический процессор больше не находится там, где мы думали, что он находится, что дает намошибка шиныили хуже (например: взаимодействие с чем-то, что не является графическим процессором).

Этомощьвозможно, видеодрайвер справится с этим... но я не думаю, что они это делают.

Для более подробного обсуждения смотрите этот вопрос: "Сохраняются ли VRAM/регистры при переходе в режим гибернации?"

Связанный контент