es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Por qué la GPU suele estar a menudo varios cuadros por detrás de la CPU?

En la documentación de Directx 11, vi una afirmación en este enlace MSDN que indicaba que la GPU suele estar varios frames detrás de la CPU.

Me resulta extraño, supongamos que estoy jugando un juego de disparos y hago un disparo perfecto a la cabeza, el juego puede considerarlo un fallo porque lo que estoy viendo es algunos frames antes del frame actual y cuando la aplicación comprueba dónde he disparado, las posiciones de los objetos pueden haber cambiado, lo que hace que el juego sea impreciso si no es una elección de diseño.

Mi pregunta es, ¿cuándo ocurre esta situación (es decir, la GPU se queda atrás de la CPU), es frecuente, cuántos frames puede estar detrás y hay alguna forma de garantizar que la GPU y la CPU trabajen en el mismo frame? (Estoy hablando de directx 11)

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Como experto en TI especializado en c++, gráficos, DirectX, motores de juegos y DirectX-11, puedo explicar que la afirmación en el enlace de MSDN sobre cómo la GPU a menudo está varios cuadros atrasada con respecto a la CPU es correcta. Esto sucede porque la GPU tarda más en procesar y renderizar los cuadros que la CPU en generarlos.

    En el caso del juego de disparos, es posible que la GPU esté renderizando un cuadro de hace algunos milisegundos cuando el jugador hizo un disparo perfecto en la cabeza. Por lo tanto, el juego puede considerarlo como un fallo. Esta situación puede ocurrir con frecuencia y la cantidad de cuadros que la GPU puede estar detrás de la CPU depende de factores como la complejidad del juego, la potencia de la GPU y la velocidad de comunicación entre la CPU y la GPU.

    Para reducir la brecha entre los cuadros de la GPU y la CPU, DirectX 11 proporciona varias características, como el renderizado multiproceso y las actualizaciones asíncronas, que permiten que la CPU envíe comandos a la GPU en paralelo. Sin embargo, la única forma de garantizar que la GPU y la CPU trabajen en el mismo cuadro es utilizar bloqueos de V-sync. Esta función sincroniza la GPU con la velocidad de actualización de la pantalla, lo que asegura que la GPU solo renderice cuando la CPU esté lista con el siguiente cuadro para que la GPU no se quede atrás. Sin embargo, esta función puede causar retraso en la entrada y una menor cantidad de FPS, dependiendo del hardware y la configuración.

Comments are closed.