Os jogos podem ser hibernados com segurança – sem travar – dentro do sistema operacional?

Os jogos podem ser hibernados com segurança – sem travar – dentro do sistema operacional?

É possível salvar o estado atual do jogo usando a hibernação sem travar após inicializar a partir do arquivo de hibernação? Ou depende do jogo e/ou DRM? E quanto aos emuladores/máquinas virtuais? Eu tentei comSimulador de caminhão europeu 2agora mesmo e travou depois de maximizá-lo.

Responder1

Hibernação (S4)remove a energia, portanto a GPU e sua RAM também são desligadas. Não há menção de RAM de vídeo nesta página.

Estado de hibernação (S4)

O Windows usa a hibernação para fornecer uma experiência de inicialização rápida. Quando disponível, também é usado em dispositivos móveis para prolongar a vida útil da bateria de um sistema, fornecendo um mecanismo para salvar todo o estado do usuário antes de desligar o sistema. Em uma transição de hibernação, todo o conteúdo da memória é gravado em um arquivo na unidade principal do sistema, o arquivo de hibernação. Isso preserva o estado do sistema operacional, dos aplicativos e dos dispositivos. No caso em que o espaço de memória combinado consome toda a memória física, o arquivo de hibernação deve ser grande o suficiente para garantir que haverá espaço para salvar todo o conteúdo da memória física. Como os dados são gravados em armazenamento não volátil, a DRAM não precisa manter a atualização automática e pode ser desligada, o que significa que o consumo de energia da hibernação é muito baixo, quase o mesmo que o desligamento.

Entrando em hibernação

Quando uma solicitação de hibernação é feita, as seguintes etapas ocorrem quando o sistema entra em hibernação:

  1. Aplicativos e serviços são notificados
  2. Motoristas são notificados
  3. O estado do usuário e do sistema é salvo no disco em um formato compactado
  4. Firmware é notificado

Retomando da hibernação

Quando um sistema é ligado, as etapas a seguir ocorrem quando o sistema sai da hibernação.

  1. POSTAGEM do sistema
  2. A memória do sistema é descompactada e restaurada do arquivo de hibernação
  3. Inicialização do dispositivo
  4. Os drivers são restaurados ao estado em que estavam antes da hibernação
  5. Os serviços são restaurados ao estado em que estavam antes da hibernação
  6. Sistema fica disponível para login

Dado que (AFAIK) o Windows não despeja/restaura a RAM de vídeo, eu não ficaria surpreso se os jogos travassem quando o sistema fosse reiniciado.

Se estiver correto que o Windows não lida com RAM de vídeo, então a GPU provavelmente será reinicializada pelos drivers da mesma forma que uma nova inicialização - ou seja: todas as texturas e código do mecanismo de jogo em execução na GPU aparecerão "de repente"não estar presente (desde antes da hibernação até depois da retomada).

Isso deixará o mecanismo de jogo/aplicativo em execução na CPU (queérestaurado) conversando com "nada" - ou pelo menos uma coisa que não existe mais.

O aplicativo do jogo teria que lidar com isso com muito cuidado e não há uma boa razão para isso.

Para agravar ainda mais a questão, épossívelque o dispositivo PCIe irá enumerar e obter um espaço de endereço diferente alocado, o que significa que A) a GPU não está fazendo o que pensávamos que estava fazendo e B) a GPU não está mais onde pensávamos que estava, nos dando umerro de ônibusou pior (ou seja: falando com algo que não é uma GPU).

Istopoderseria possível para o driver de vídeo lidar com isso... mas não acho que isso aconteça.

Veja esta pergunta para mais discussão: "Os VRAM/registros são salvos durante a hibernação?"

informação relacionada