keverson303 escribió:Jimmyhoo escribió:las comparativas de PC no pintan nada aqui, en PC existe el overhead de la API(las mismas dicen api overhead en el titulo incluso), ahi DX12, mantle, opengl y vulkan dan la ventaja en cuanto al overhead por que alivian sobretodo en cpu poco potentes esta latencia pero no son aumentos del doble de potencia real en un juego, las comparativas que traes son especificas para medir el overhead, un juego evita el overhead mandando muchas instrucciones(previamente definidas) a la GPU en la misma drawcall en lugar de hacer una a una, si me traes un demo donde deliberadamente hacen muchas drawcalls esta bien para medir la diferencia en overhead de las API pero me estas trayendo un escenario que no es aplicable a un juego comercial y si bien da un aumento de algunos fps, eso esta bastante bien, pero es hablando de PC
en consolas las API no tienen el overhead que existe en PC por que ya trabajan a bajo nivel en un hardware fijo, no es necesario algun codigo intermedio antes de dar la orden a la gpu, ya hay desarrolladores que han hablado al respecto como el de metro(entrevistado por eurogamer), por ejemplo menciono que el overhead de las drawcall en ps4 es casi inexistente(incluso no podian encontrarlas en la graficas de procesos), y en one ya estaban trabajando para disminuirlo también por que en un principio portearon DX11 tal cual, DX12 aporta algunas convenciones y varias mejoras aplicables en los sdk tanto de one como ps4(si incluso la ps4 se beneficia de DX12) pero no va a dar el doble de poder o va a aumentar la capacidad de procesamiento del hardware magicamente solo por que DX12 existe, ya tienen acceso a bajo nivel, incluso mas bajo de los que DX12 puede llegar, menos va a ser la "salsa secreta" de one
, puedes encontrar entrevistas a desarrolladores diciéndo textualmente que el impacto en one es bajo
por supuesto que un software mejor pensado y optimizado mejora el rendimiento pero dx12 es una herramienta en PC, no es un switch magico que aumenta los fps al doble, por eso la única comparativa esta en drawcalls por que es lo único que de entrada mejora automáticamente, tendrán que ser los desarrolladores los que hagan la optimización algunos mejores que otros de la misma forma en que se hace siempre, solo que ahora podran a bajo nivel como en consolas y eso siempre y cuando quieran
en las graficas que traes el aumento suena bestial medio millon de drawcalls por segundo en DX11 mientras que 7.5 millones con DX12 y de ahi sale la gente que no entendió lo que se estaba midiendo a decir que el framerate se aumenta doble, triple etc solo por usar DX12 y encima a fantasear que aumentaría el rendimiento en one por encima de ps4 cuando nada de eso es cierto, en un juego real con muchos npc(probablemente una drawcall por cada uno) y escenarios inmensos(probablemente con varias drawcalls tambien) como AC: unity sin estar optimizado a bajo nivel la diferencia es de alrededor de 10 fps que suena acorde considerando que cada drawcall es varias veces mas liviana en el overhead del driver(que no en la complejidad de cada una a la hora de dibujar)
https://www.youtube.com/watch?v=BivZkyEet_w
Una ganancia del 50% te parece poco?
10 frames mas no es una ganancia de 50%, si por ejemplo un juego va a 10 y gana 10 seria 50% en ese caso concreto pero si va a 50 fps y gana 10 no es 50% mas de performance, se puede hablar de un incremente significativo con las nuevas api, pero no de un 50% de incremente parejo por que depende del hardware y la optimizaron varios de los features de estas api incrementan determinadas areas pero estos permiten incrementos a futuro por medio de optimizacion y por el hardware de la gpu, no son switchs magicos aunque si exista un incremento solo por el hecho de usarlos no es todo lo que se puede o su maximo, los tests mostrados son para casos concretos y ciertas areas tambien
si crees que DX12 va a incrementar en 50% el performance de xbox one o que lo va a dejar igual a ps4 estas equivocado, muchos de sus features ya estaran implementados(aunque al principio algunos no) y lo estan en la competencia desde hace tiempo(y aquí ya se han usado), los 2 principales features de DX12, mantle, vulka, etc son el envio de drawcalls(mas livianas) en multiples cores de cpu y no desde solo uno(DX11) y los shaders asíncronos, y hasta ahora esos features ya se encuentran en juegos de consola incluso experimentando desde los primeros como battlefield4(el de ps4) y en otros como infamous second son y the order,
las drawcalls livianas son comunes en consolas por la naturaleza del hardware cerrado y sus SO a menos claro que portes DX11 tal cual como lo hizo MS en one en un principio
en one se puede hacer el envio de multiples comandos de video(no se de un juego concreto) la api permite enviar drawcalls desde multiples cores de la cpu y por supuesto tambien se puede usar shaders asincronos(igual no se de alguno que lo haga), pero el problema viene por que debido a que la esram ocupa mucho espacio de la GPU, MS redujo componentes, uno de estos es precisamente el fundamental en los shaders asincronos, los ACE(Asynchronous Compute Engine’s), en one existen 2 ACE(8 filas c/u), estos pueden mandar los shaders de forma asincrona, es decir intercalando los trabajos a fin de evitar las "burbujas" donde la gpu no hace nada mientras espera la siguiente orden, pero en ps4 hay 8 ACEs esto significa que puede optimizar mucho mejor los shaders asíncronos, y no solo eso sino que al haber mas CU hay mas poder de shading, cualquier optimizacion en shaders asincronos que use un juego se puede usar mejor y obtener mas performance en ps4 que en one aunado a mas potencia de shading, en terminos practicos significa que no solo la ps4 tiene mas potencia de gpu que one, sino que tambien tiene mucha mas capacidad de administrar sus shaders mejor cuando se trata de programar "como" DX12, mantle, vulkan, etc, en general a one le conviene el uso de DX 12 en PC, pero le conviene mas aun a PS4
en one su "DX12" es una version especial que ademas de usar los features antes mencionados tiene optimizaciones especificas de la consola como el uso de la eSRAM y su herramienta PIX(Performance Investigator for Xbox) el correcto uso de la eSRAM tienen mayor impacto en el futuro inmediato de la consola VS la ps4, pero no te confundas, este uso ya se podia hacer, solo que ahora ya es mas facil para los desarrolladores al haber metodos comunes para usarlos y herramientas para ver como se esta usando, por ejemplo MS intenta dividir el framebuffer para que este no ocupe tanto en la eSRAM a fin de poder llegar a 1080p
lo verde fue renderizado en esram y el resto en ddr3 de esta forma se puede conseguir 1080p nativos con MSAA 2X ahorrando casi 5 MB de eSRAM a costa de ancho de banda de la DDR3, la razón por la que pueden dividirlos es que la parte en verde requiere mas potencia y ancho de banda al ser mas compleja mientras la parte superior e inferior son mas sencillas por las cosas que se estan dibujando en esas areas y por ende no requiere tanto ancho de banda para esos segmentos concretos por lo que se puede hacer en DDR3 claro que esto consume ancho de banda de DDR3 no es una mejora "gratuita"
DX12 no cambia la forma en que trabajan las consolas explotando el hardware hasta lo maximo, DX12 y similares lo que hacen es permitir mejoras bajo nivel en PC, cuando estas se muevan a consolas pueden pasar mejor ya que algunas de esas optimizaciones se pueden portear tambien a consolas solo que en ese sentido PS4 gana mas al tener mas ACEs que One por eso MS va mas por el uso de eSRAM para que al menos la mayoría de juegos puedan ir a 1080p, probablemente debido a que es un tema recurrente en los medios