Buenas gente.
@pspskulls con respecto a lo q dices de los bundles...o sabes de q va el tema y descaradamente confundes al personal a propósito o bien no sabes muy bien por donde van los tiros. En un frame hay cosas q renderizas siempre, y las cuales tienes q enviar una y otra vez a la GPU, si hubiera alguna forma de generar/grabar los comandos una vez y luego simplemente con una llamada ejecutarlos conseguirías reducir el overhead de tener que hacer varias llamadas que cambien el estado, seleccionen lo q hay q dibujar... Los bundles hacen precisamente eso, son pequeñas listas de comandos donde grabas todos estos estados, cambios y llamadas de render una vez pero q puedes ejecutar las veces q quieras. Son similares a las Display List que tenía OpenGL antes de la versión 3 y q quitaron (desgraciadamente). La ventaja q tienen con respecto a estas es q son más flexibles puesto q puedes cambiar parametros , no son fijas.
Como se q no me vais a creer, os dejo un enlace al q supongo le haréis mas caso q a mi, en él incluso se puede ver el código para crear, grabar y ejecutar un bundle:
https://software.intel.com/en-us/blogs/ ... -5-bundlesBundles are a small list of commands that are recorded once, yet reused multiple times. They can be reused across frames or in a single frame, there are no restrictions on reuse. Bundles can be created on any thread and used an unlimited amount of times. But the bundles are not tied to the PSO state. Meaning the PSO can update the descriptor table then when the bundle is run again with the different bindings the game gets a different result. Like a formula in an Excel spreadsheet, the math is always the same, but the result is different based on the source data. To ensure the driver can implement bundles efficiently certain restrictions exist. Specifically no commands that change the render target, but that still leaves quite a lot of commands that can be recorded and played back.
Con respecto a lo que dices refiriendote a mi directamente:
1.- No digo q no se me haya pasado pero...donde lo pone exactamente?.
2.- Lo q te he dicho de las ROPs no es exclusivo de XboxOne, no he puesto en entredicho su potencia. Esto le pasa a XboxOne, Ps4, una
970 de Nvidia y dos Titan en SLI...
3.- Es curioso pq FH2 no usa exactamente un Forward+, usa lo q se conoce como un Cluster Forward+ que es una variante, donde no se usa un Z-prepass pq lo q hace es dividir el frustum en pedacitos y ver q luces hay en cada uno. Lo de la latencia no me lo invento yo, incluso los arquitectos de XboxOne lo dicen en la famosa entrevista de Digital Foundry, y lo dicen pq una GPU está diseñada para maximizar el trabajo por unidad de tiempo y ocultar las latencias o crees q todos contextos dentro de una CU, todos los wavefront, planificadores, todo el entrelazamiento de tareas dentro de una GPU los ponen por gusto?.
4.- Este hilo es del interior de XboxOne y no suelo hablar de Ps4, y menos para compararlas, abre un hilo en multi y hablamos allí.
@darksch lo primero lo de "no te inventes las cosas" sobra, siempre he sido muy respetuoso con todo el mundo y ese tipo de expresiones a mi no me gustan ni un pelo. Y no me invento nada. Por otra parte las ROPs no se usan para texturizar de eso se encargan las TexUnit las cuales hay 4 por CU si no recuerdo mal. En las ROPs se rasteriza, se hace el blending, el z-culling, z-fighting, el antialiasing, escribir en diferentes render target...
@Pada si te das cuenta no hablo de 10% hablo de 2 o 3% que es en lo q se quedó el sistema como reserva despues de la última actualización.
Un saludo.