PDA

Ver la versión completa : Duda sobre frame-pacing



The_Breaker
23/04/2014, 03:39
Buenas!

En el foro de realovirtual me han comentado que para realidad virtual se suelen desaconsejar los sli's y crossfireX.. esto es debido al aumento de latencia.. se está haciendo todo lo posible por reducir latencia y los sli y crossfire tienen el defecto del micro-stuttering y si esto ya es algo molesto en un monitor, (yo solo lo he sufrido en metro 2033 y batman AC y me resultó super molesto) en la RV me comentan que aún mas y los de Oculus aconsejan de momento una única GPU..

Entonces, a mi me gusta bastante montar 2 tarjetas gráficas en vez de 1, y seguramente querré montar un crossfire de AMD.. (no creo que vuelva a repetir con nvidia aunque me guste mucho) probablemente quiera comprarme 2 r9 390.

He escuchado que el microstuttering en las nvidia está solucionado o casi, pero y en las AMD? Que es eso del frame pacing?
Consigue solucionarlo de verdad?
Por otra parte.. esto del frame pacing limita los fps a 60?
No activaría para nada el V-Sync.

Alguien con experiencia en esto?
Gracias y saludos!

Sergio
23/04/2014, 13:22
El frame pacing es una técnica que se usa para hacer que la diferencia de tiempo entre cada fotograma (frame), al mostrarlo en pantalla, sea lo más estable posible y así la imagen se vea sin "saltos" (microstuttering) y la animación sea lo más suave posible. Como no importa tanto la diferencia en ns entre cada fotograma como la diferencia entre "cada diferencia" (es decir, que la diferencia entre los fotogramas 1 y 2 sea lo más parecida posible a la diferencia entre los fotogramas 2 y 3, etc) el método de tomshardware de medirla me gusta bastante.

En la práctica, en el caso de nVidia, lo tienen bastante solucionado. Quizás se note cuando las gráficas no tengan potencia suficiente para mover el juego con fluidez. Bueno, en realidad no es un problema de frame pacing sino de baja tasa de FPS. En el caso de sistemas SLI el principal problema será que las gráficas se queden cortas de memoria ya que se dobla la potencia de cálculo (con lo que se aumenta la resolución o la calidad) pero no la memoria disponible para procesar la imagen.

AMD si que ha tenido serios problemas con ello. Antes no se tenía en cuenta porque no se media. Había gente que lo notaba pero como la tasa de FPS era alta se achacaba a otras cosas. Actualmente lo tienen bastante solucionado pero no del todo. Las nuevas gráficas basadas en GCN 1.1 ya no tienen ese problema porque usan un nuevo algoritmo de frame pacing. En el caso de las anteriores (hasta serie 7 y las R7/9 basadas en estas) tienen problemas con resoluciones de 4k y sistemas multimonitor (que sería lo mismo que realidad virtual, oculus, etc). Es de esperar que esto también este solucionado en no mucho tiempo pero, en cualquier caso, con las nuevas AMD no deberías tener ningún problema de microstuttering. Todo este párrafo es para sistemas crossfire, con una sola gráfica el problema es: 0 patatero.

El frame pacing no limita los FPS a 60, eso es el v-sync (en monitores de 60Hz), aunque quizás reduzca los FPS máximos para conseguir una diferencia entre fotogramas más estable. Pero sin apreciarse, en la práctica, en la media de FPS.

El v-sync hace coincidir el refresco de la imagen con el refresco del monitor (hz) con lo que se evita que en la pantalla se parte de dos imágemes (tearing) que también puede ser muy molesto, pero no microstuttering y no depende de los drivers ni el hardware, sino de la casualidad (los FPS y tu sensibilidad a él).

Un saludo.

The_Breaker
23/04/2014, 17:13
Muchas gracias por contestar :)

A 4k la verdad que no me importa mucho.. como dije quiero el cfx para jugar en Oculus Rift y seguramente la resolución sea de 1440/1600p, a esta resolucion está solucionado?
A partir de las R200 entonces no debo preocuparme?
Lo del Vsync lo digo porque para jugar en el Rift seria importante mantener una tasa superior a 60fps, lo ideal serian 90.

Saludos!

Sergio
24/04/2014, 12:55
El v-sync no te lo capa a la 60HZ necesariamente, sino a la velocidad de refrescto de la pantalla en que se muestre. De todas formas, falta aún para que salga de forma comercial el oculus así que te recomendaría no comprar en función de lo que va a pasar dentro de unos meses. La informática cambia rápidamente y, aunque ya han dicho que los 20nm no los esperemos hasta el año que viene, supongo que nVidia sacara más Maxwell en 28 y seguramente AMD tenga algo para responder (porque con GCN 1.1 está claro que no se van a comer un colín si nVidia saca cosas más potentes que la 750Ti y se empiezan a ajustar precios).

Un saludo.

DCO
25/04/2014, 12:04
Hasta que puedas catar esa realidad virtual va a pasar mucho tiempo y en la informatica eso significa muchos cambios. Para entonces igual tienes funcionalidad tipo g-sync o free-sync por lo que no haria falta vsync, juegos dx12 o con mantle que hagan mejor uso de 2 graficas, quiza con una tarjeta ya te valga de sobra por potencia, etc.

El framepacing sirve para distanciar los frames en el tiempo, con una sola tarjeta cuando acaba de renderizar uno comienza el siguiente, no hay problema, con 2 tarjetas igual segun acaba la primera uno te acaba la segunda otra y luego hay un lapso de tiempo grande hasta que acaban los siguientes dando casi el mismo efecto que al tener una sola tarjeta, con el framepacing lo que se suele hacer es ralentizar el segundo para que los frames se rendericen de manera mas equidistante en el tiempo.
Seria pasar por ejemplo de algo asi: 10ms 12ms 20ms 21ms 31ms 33ms --> 10ms 15ms 21ms 26ms 30ms

Esto lo arreglan por drivers y en algunas tarjetas con ayuda de cierto hardware, por ejemplo las R9 290 son mejores que las 280, 270, 260, 250 y todas las tarjetas anteriores por tener hardware dedicado para ello. Dependiendo de como lo hagan los drivers no debiera aumentar la latencia aunque no se exactamente a que latencia te refieres. Con Mantle y posiblemente en un futuro con Dx12 todo esto estara en manos del juego y de sus programadores en vez de los drivers.

Para limitar los fps a 60 necesitas un programa que te limite los fps o aplicar vsync si el monitor es de 60Hz. El vsync si te va a dar latencia a la hora de mostrar los fps porque guarda en un buffer un frame completo hasta que le monitor refresque la imagen, sin vsync lo que ves cuando refresca el monitor es una imagen que consiste en varios frames, por decirlo de alguna forma en el buffer tiene un frame pero comienza a renderizar otro y a media copia refresca la imagen el monitor y coge lo que tiene, a esto se le llama tearing, ocurre porque la grafica renderiza mas rapido de lo que tarda el monitor en refrescar la imagen.
Otra forma de paliar este problema es g-sync y posiblemente free-sync si sale, que con el tiempo se haran mucho mas prominentes, digamos que ahora el monitor tiene una frecuencia y cada cierto periodo de tiempo (con 60HZ 1/60 de segundo) transmite un frame, con estas tecnologias los monitores tendrian una tasa de refresco variable hasta cierto punto, cuando la grafica termina de renderizar un frame se la pasa al monitor y este la muestra, ya no hace falta vsync y hay mucha mas fluidez.


En definitiva, no merecen la pena los quebraderos de cabeza por los posibles problemas de la realidad virtual porque aun pueden cambiar muchas cosas, y cuando salga esperaria un poco, ser de los primeros en adoptar la tecnologia puede tener inconvenientes. Mejor mira el mercado cuando puedas comprar el producto y espera a ver las experiencias de otra gente.