Esta es más una pregunta abierta, pero espero obtener una buena idea de cómo evitar el problema.
Al jugar juegos en Windows, es posible que desee ALT-TAB fuera de él. Algunos juegos no tienen problemas, otros no son tan fáciles: pueden tomar EDADES para cambiar y volver a entrar. Algunos incluso son propensos a fallar o a comportamientos extraños como distorsión gráfica o tartamudeo.
Me pregunto qué causa este comportamiento. ¿Es esto más una cosa de DirectX o de OpenGL? ¿Se debe a que los Juegos son "inteligentes" y almacenan en caché / borran el caché cada vez que cambia la configuración de la pantalla? (¿Asumo que reciben algún tipo de señal cuando ALT-TAB?)
No tengo ningún problema, pero me gustaría saber qué evitar y qué truco 'inteligente' puede causar este tipo de experiencia horrible para el cliente.
fuente
Respuestas:
En algunas situaciones, ALT-TAB hará que se pierda el dispositivo DirectX. Cuando el dispositivo se pierde, todos los recursos de la GPU (vértices, texturas, sombreadores, etc.) deben considerarse no válidos y no se pueden volver a usar. Referencia de MSDN aquí .
Estos recursos perdidos deben liberarse y luego recrearse cuando se restaura el dispositivo. En el caso de la mayoría de los juegos, la restauración de estos recursos requiere que se carguen muchos datos desde el disco nuevamente, a menudo el mismo procedimiento de carga que al inicio del juego / nivel.
¿Qué se puede hacer para evitar esto?
fuente
En Direct3D, un dispositivo puede perderse cuando ALT-TAB sale de la ventana de pantalla completa. Si eso sucede, debe liberar y restaurar los recursos y reiniciar el dispositivo. Esto puede ser difícil de hacer correctamente dependiendo de la complejidad del juego o la pereza de los desarrolladores (¡Hola Valve!). No creo que OpenGL sufra el mismo problema porque el controlador es responsable de mantener el contexto de OpenGL para usted, pero no estoy seguro.
Hay una pregunta en StackOverflow sobre las mejores prácticas para el apoyo ALT-TAB en una aplicación de DirectX que incluye enlaces útiles a partir de MSDN y otras fuentes.
fuente
Puede ser la cantidad disponible de ram gratis. Si es demasiado bajo, cuando su juego se ejecuta, Windows oculta la mayoría de sus servicios en el área de intercambio (es decir, toma la mayoría de los datos cargados en la RAM y los coloca en un área especial de su disco duro) para su juego. tener el máximo espacio de RAM disponible como sea posible.
Luego, cuando alt + tab del juego a Windows, necesita que estos servicios se carguen en la RAM para que funcione, por lo que tomará los datos del juego de la RAM, los almacenará en el intercambio y extraerá los datos de Windows de El intercambio a la RAM.
Y como sabes, escribir en el disco duro puede tomar EDADES en comparación con la RAM. Lo mismo sucede en realidad cuando sales de un juego pesado. Es por eso que tener suficiente espacio RAM tanto para un juego como para Windows puede ser realmente más cómodo.
fuente