¿Qué es FCAT? Análisis de captura de fotogramas

Hace ya muchos años en el mundo de la informática empezó la era de los videojuegos en el ordenador. Ya con la era de los videojuegos la gente empezó a jugar y muchos juegos iban lentos ya que los fps (fotogramas por segundo) que daba eran muy pocos porque no había tanto avance tecnológico. Con el tiempo la tecnología avanzo muy rápido y hace unos años empezaron a aparecer software que median los fps que daban cada juego, que sirve para hacerte con una referencia de que ordenador daba más fps y saber el rendimiento gracias a la única unidad de medida los fps.

Introducción

El año pasado el stuttering y micro-stuttering una prueba de referencia de intervalo de marco se convirtió en un negocio muy grande en el mundo de la GPU y con una muy buena razón. Con un trabajo duro del técnico Scott Wasson y otros asuntos descubrieron la participación de las tarjetas gráficas de AMD rompiendo la percepción de muchos años en el stuttering en donde los problemas se encontraron. El resultado final de las investigaciones, AMD se avergonzó y con razón ya que el stuttering era mucho peor de lo que ellos se pensaban y aún más importante, mucho peor que NVIDIA.

AMD se puso a trabajar en arreglar los  problemas de stuttering que tenían ya que el informe de Scott Wasson informaba de que tenía problemas. Esto tiene la ventaja de poner más los ojos en el problema y ayudar a AMD a encontrar sus problemas de stuttering, pero resulta que también creo otros problemas. AMD en una de sus conversaciones expuso un argumento a favor de un cambio de evaluación comparativa, una razón de porque la evaluación comparativa debería pasar de utilizar la herramienta como FRAPS que pueden ver el comiendo del canal de renderizado y  hacia otras herramientas y métodos que pueden ver el final de la canalización de representación.

AMD en esto no estaba solo sino que NVIDIA también mostró su preocupación por herramientas como FRAPS y se ha querido ver metodologías de pruebas evolucionando. La evolución es recomendable dejarla que evolucione naturalmente pero en otras ocasiones la evolución necesita una patada en el trasero para evolucionar más rápido y así se hizo. Nvidia se decidió y quería esa evolución rápida así que se solo necesito una patada en el trasero y presento la herramienta FCAT.

FCAT es una herramienta de análisis que captura los fotogramas al igual FRAPS pero es diferente ya que al mover las mediciones de intervalos de la trama desde el principio de la canalización de presentación hasta el final de la tubería. FCAT mejora el estado de la evaluación comparativa dando oportunidad a los evaluadores y consumidores una nueva manera de medir intervalos de la trama. Hace un año y medio, el uso de la herramienta FRAPS trajo una revolución en el tema de benchmarking, juegos en 3D y en día de hoy NVIDIA quiere lograr que esa revolución que paso hace un año y medio atrás pase de nuevo a día de hoy.

La herramienta FCAT no es tan simple como parece, es una poderosa herramienta, profunda y dadas estas razones vamos a separar FCAT en dos partes para ir organizándonos. En la primera parte de FCAT vamos a ver porque esta herramienta es diferente de FRAPS y tomar una visión general del alto nivel de FCAT de como funciona. En la segunda partes de FCAT vamos a ver resultados con mas detallas utilizando FCAT en toda su extensión para ver donde FCAT ve el stuttering y en que condiciones. Así que dicho esto vamos a ponernos manos a la obra y vamos a profundizar más sobre FCAT.

Introducción a FRAPS

Vamos con la primera parte de la herramienta FRAPS. ¿Qué es FRAPS? FRAPS (nombre derivado del inglés frames per second) es un programa de benchmark para aplicaciones 3D o videojuegos teniendo la posibilidad de hacer capturas (tanto de videos como de fotos). Se ejecuta en segundo plano y es configurable para que se inicie a la par con el sistema operativo, además de consumir pocos recursos del equipo. Como todos los programas de captura este al igual que la mayoría se usa para capturar videos, pero una vez que se usa la función de grabación, los FPS disminuyen drásticamente del juego o aplicación y sufre un aumento de lag (si se tiene una maquina potente esto no sucederá). La herramienta da un mejor rendimiento al grabar con la función VSYNC desactivado.

Después de una pequeña introducción al FRAPS vamos a ver un resumen de como mide intervalos de la trama y porque a veces esto puede ser insuficiente.

Vamos a explicar un poco el funcionamiento de este dibujo. Direct3D y OpenGL utiliza un canal de renderizado complejo que se expande por varios mecanismos y las etapas diferentes. Cuando un cuadro es generado por una aplicación, debe viajar a través de la tubería de Direct3D, los controladores de video, la cola de contexto, un programador de GPU, los controladores de video de nuevo, la GPU y finalmente después de que una trama se mostrara. La analogía tubería se utiliza porque eso es exactamente lo que es  con la complejidad añadida de la cola de contexto que se sienta en el medio de esa tubería. FRAPS existe en el principio de esta tubería, que interactúa con las aplicaciones e intercepta individuales las presentes convocatorias hechas para Direct3D que marcan el final de cada trama. Si contamos las llamadas actuales FRAPS puede decidir fácilmente cuantos cuadros se han ido a la tubería, por lo que destacamos que es una herramienta sencilla y eficaz para medir una tasa promedia de fotogramas.

¿Qué es FCAT? Análisis de captura de fotogramas
¿Qué es FCAT? Análisis de captura de fotogramas

FRAPS por su parte existe en casi el principio de esta tubería. Que interactúa con las aplicaciones e intercepta individuales Las presentes convocatorias hechas para Direct3D que marcan el final de cada trama. Al contar las llamadas actuales FRAPS puede decir fácilmente cuántos cuadros se han ido a la tubería, por lo que es una herramienta sencilla y eficaz para medir la tasa de fotogramas promedio. Vamos a ver el problema de FRAPS que tiene. FRAPS también puede ser usado para medir intervalos entre las tramas pero solo puede hacerlo en el inicio de la canalización de representación, contando el tiempo entre las llamadas actuales. Así que FRAPS se retira muy lejos del final de la tubería y en última instancia se elimina por igual de la experiencia del usuario final. Al fin y al cabo FRAPS es hasta ahora el canal de renderizado que es aislado de lo que pasa en otros lugar y la cola de contexto en particular puede tener hasta 3 fotogramas, lo que significa que la velocidad de flujo en la cola de contexto puede ser muy diferente de la tasa de flujo de fuera de la cola de contexto.

Finalmente como resultado FRAPS lo podemos describir mejor como una herramienta basta. Se puede ver situaciones de stuttering como lo que AMD ha experimentado en los últimos tiempos pero claro no se puede ver todo.

Ya vimos en general el stuttering y FRAPS ahora vamos a proceder con la introducción del FCAT. Lo ideal sería que pudiéramos ser capaces de etiquetar un fotograma del inicio del canal de renderizado hasta al final, la comparación de los marcos que entran y salen del canal del renderizado y luego comparar los intervalos de las marcas de tiempo de los intervalos entre los marcos en el extremo de la canalización. Lo más ideal sería que los dos intervalos coincidan con el tiempo de simulación entre cuadros que viene a un ritmo constante y el intervalo de trama en si viene a un ritmo constante. Pero claro lo ideal no siempre se puede así que esto en el mundo real no es imposible si no que es muy poco práctico debido al hecho de que se requiere la participación y ayuda de la propia aplicación para escribir las marcas de tiempo.

En pocas palabras lo ideal sería ver el final de la canalización de representación ya que sería una ventaja importante. Si la herramienta FRAPS no es suficiente ya que solo se puede ver el inicio del canal de renderizado, el paso siguiente es buscar el otro extremo de la tubería.

Como hemos mencionado anteriormente los dos fabricantes NVIDIA y AMD están de acuerdo con el problema principal para analizar a intervalos desde el inicio hasta el final del canal de renderizado. Durante un par de años NVIDIA ha estado trabajando en una herramienta alternativa para medir la latencia de marco al final del canal de renderizado y por fin esta herramienta llamada FCAT se lanzara a los colaboradores y al público.

 

Introducción FCAT

FCAT  es una colección de herramienta simple pero ingeniosa para medir la latencia de marco al final del canal de renderizado. Ahora es más simple en lugar de usar los controladores de video (un proceso lleno de problemas) se puede hacer de una manera independiente de todas las marcas de tarjetas gráficas con FCAT. En el siguiente apartado vamos a ver un poco el funcionamiento de la herramienta FCAT que NVIDIA nos presenta.

¿Qué es FCAT? Análisis de captura de fotogramas
¿Qué es FCAT? Análisis de captura de fotogramas

¿Cómo funciona el FCAT? En resumen el funcionamiento interno de las tarjetas gráficas, monitores y tarjeta de captura de PC, ambos monitores y la tarjeta de captura de PC trabaja a intervalos fijos. Con indiferencia de la velocidad de fotogramas, se ejecuta una aplicación en la mayoría de los monitores LCD para ordenadores que funcionan en un intervalo de refresco de 60Hz. En el caso de VSYNC se sincroniza con el intervalo de actualización pero cuando VSYNC se desactiva se puede producir un búfer de swaps en el medio de renovación. Finalmente el resultado de cualquier intervalo de actualización puede estar compuesto de múltiples tramas. Gracias a esto se hace posible la visualización de más de 60fps en un monitor de 60Hz.

El resultado final es que mientras que una tarjeta de capturadora de PC no puede ver más de 60 marcos enteros se puede ver partes de los marcos y es capaz de ver partes de tras que es una noticia muy buena. Con FCAT es posible saber cuántos fotogramas se entregaron en un intervalo de actualización y calcular cuánto tiempo fue en el intervalo de trama y cuánto tiempo un fotograma era visible.

¿Qué es FCAT?

FCAT es una herramienta de superposición que utiliza códigos de colores para cada trama que entra en el canal de renderizado. Ahora gracias a las barras de colores, es posible diferencia los marcos individuales mirando las barras de color. Indiferente de la acción en la pantalla las barras de color van cambiando con cada cuadro sucesivo haciendo que cada marco quede claro. La herramienta de superposición FCAT trabaja de manera casi idéntica a la superposición de videojuegos como en las herramientas FRAPS, Msi Afterburner y otras herramientas. Estas herramientas que acabamos de mencionar se atribuyen al inicio del canal de renderizado, intercepta la llamada actual añadiendo sus propios comandos de dibujo para su superposición. Como resultado final al igual que FRAPS es capaz de monitorizar de manera rápida y simple tasa de fotogramas y dibujar superposiciones, la herramienta de superposición FCAT es capaz de mostrar rápidamente las barras de colores necesarios y hacerlo funcionar sin tener que tocar los controladores de video o depender de ellos.

¿Qué es FCAT? Análisis de captura de fotogramas

Gracias a los marcos etiquetados, la otra mitad que soluciona el problema de FCAT entra en juego llamada la herramienta extractora. Mediante el uso de una tarjeta capturadora de PC toda la tirada de un punto de referencia se puede capturar y grabar para un análisis. La herramienta extractora es la responsable de ver las barras de color. Su codificación es fácil, la herramienta carga un marco, analiza en cada línea de la barra de color, busca de los puntos en los que la barra cambia de color y finalmente graba. Como resultado final es un archivo de valores separados por una ficha que contiene una lista de fotogramas que ahí nos indica: cuando se produjo, la barra de colores que se unen.

Como resultado final de este proceso es que a través del uso de marcos que delimitan la captura de la salida de una tarjeta gráfica es posible medir la salida de la GPU como un usuario final. Estamos ya al final de la segunda parte de FCAT. Junto con la superposición y extractor de herramienta, FCAT también incluye una herramienta para analizar la salida de la herramienta extractora, desde el cual puede generar gráficos, identificar los llamados marcos (runt) y más cosas.

¿Qué es FCAT? Análisis de captura de fotogramas

¿Y ahora que, habrá más por venir?

Si habrá más por venir, ya que nuestro trabajo con FCAT de NVIDIA aún no está por terminar ya que no tenemos más información y más datos para el artículo y habrá que esperar a nuevas noticias e informaciones. En conclusión FCAT puede será la nueva evolución del mercado de la evaluación comparativa. La herramienta FRAPS no es suficiente ya que FCAT ofrece una imagen clara de lo que ocurre al final de la canalización y que nos da por primera vez una mirada en intervalos de la trama el stuttering y mucho más. Como la mayoría de gente sabemos en el mundo no hay ninguna herramienta perfecta, pero FCAT nos muestra el final de canalización que es más significativo para un profundo análisis para los usuarios. Finalmente FCAT es la herramienta de intervalo de fotogramas que todos hemos deseado durante hace ya tiempo. Es la herramienta que nos permitirá analizar el stuttering, micro-stuttering y muchas más cosas.

Articulo referencia sobre el original de Ryan SmithFCAT: The Evolution of Frame Interval Benchmarking

¿Qué es FCAT? Análisis de captura de fotogramas