Essa é mais uma pergunta em aberto, mas espero ter uma boa idéia de como evitar o problema.
Ao jogar jogos no Windows, talvez eu queira ALT-TAB. Alguns jogos não têm problemas, outros não são tão fáceis: eles podem levar o AGES para trocar e voltar. Alguns são propensos a bater ou a comportamentos estranhos, como distorção gráfica ou som gaguejante.
Eu só me pergunto o que causa esse comportamento? Isso é mais uma coisa do DirectX ou do OpenGL? É causado pelo fato de os jogos serem 'inteligentes' e fazer cache / limpar o cache sempre que as configurações da tela são alteradas? (Presumo que eles recebam algum tipo de sinal quando ALT-TAB?)
Não tenho nenhum problema, mas gostaria de saber o que evitar e que truque 'inteligente' pode causar esse tipo de experiência horrível para o cliente?
fonte
Respostas:
Em algumas situações, o ALT-TAB fará com que o dispositivo DirectX seja perdido. Quando o dispositivo é perdido, todos os recursos da GPU (vértices, texturas, shaders etc.) devem ser considerados inválidos e não podem ser usados novamente. Referência do MSDN aqui .
Esses recursos perdidos devem ser liberados e, em seguida, recriados quando o dispositivo é restaurado. No caso da maioria dos jogos, a restauração desses recursos exige que muitos dados sejam carregados do disco novamente - geralmente o mesmo procedimento de carregamento feito no início do jogo / nível.
O que pode ser feito para evitar isso?
fonte
No Direct3D, um dispositivo pode se perder quando você ALT-TAB sai da janela de tela cheia. Se isso acontecer, você deve liberar e restaurar os recursos e redefinir o dispositivo. Isso pode ser difícil de fazer corretamente, dependendo da complexidade do jogo ou da preguiça dos desenvolvedores (oi Valve!). Eu não acho que o OpenGL sofra do mesmo problema porque o driver é responsável por manter o contexto do OpenGL para você, mas não tenho certeza.
Há uma pergunta no StackOverflow sobre as práticas recomendadas para suporte ao ALT-TAB em um aplicativo DirectX que inclui links úteis do MSDN e de outras fontes.
fonte
Pode ser a quantidade disponível de ram livre. Se estiver muito baixo, quando o jogo é executado, o Windows oculta a maioria dos serviços na área de troca (ou seja, pega a maioria dos dados carregados na RAM e os coloca em uma área especial do disco rígido) para o seu jogo para ter o máximo de espaço disponível em RAM possível.
Então, quando você pressiona a tecla Alt + Tab do jogo para o Windows, ele precisa que esses serviços sejam carregados na RAM para funcionar, para que ele retire os dados do jogo da RAM, armazene-os no swap e retire os dados do Windows. a troca para a RAM.
E, como você sabe, gravar no disco rígido pode levar AGES em comparação à RAM. A mesma coisa também acontece quando você sai de um jogo pesado. É por isso que ter espaço suficiente em RAM para um jogo e janelas pode ser realmente mais confortável.
fonte