D3D es todo lo que consume la CPU? Y la vez solo funciona en un core ahora mismo. Entonces la IA, los game mechanics, las IAs, la maquina de estado, el control de los inputs etc no existen o como va el tema?
darksch escribió:Si lo mejor es que ya es así, en las API de computación no existen núcleos ni CUs, existen unidades de computación (dependiendo de tu hardware). La idea de M$ es que sobre XOne se programe con un modelo de computación desde el principio, así que su API original, DX12, está pensada para eso.
I think most current devices map a single ALU to a processing element, and an ALU is a single SIMD core. Indeed, CPUs that don't support SIMD are not OpenCL compatible.
The thing about OpenCL is that you don't need to be concerned about the exact underlying architecture unless you are writing a kernel for very specific hardware. Devices in the future could use as many schedulers/ALUs/memory controllers/etc as the manufacturer chooses to implement the SIMD architecture.
DirectCompute Applications
...
Typical use cases include:
•Game physics and artificial intelligence
...
Zokormazo escribió:Claro. Y en teoria una cpu tambien puede hacer todo lo que haga un juego, pero no es eficiente.
A las gpus les pasa lo mismo. Podrian computar cualquier cosa que les des de comer. Con algunos computos es mucho mas eficiente que una cpu, en otras mucho peor.
El programador debe ver que es lo que manda a donde.
"We’ve got to the stage where very high-end PC graphics are really getting impressively close to photo-real," he told PCR.
"Not that they actually fool you all of the time, but they are astonishing compared to where they were four years ago. We’ll close that gap.
"So probably in five years time we’ll be able to produce games that are photo-real, probably in limited scenarios. And that’s nice, because historically whenever I’ve been asked about photorealism and where it’s going to be, I’ve always said it’d be a bit more than ten years. I think that’s coming down now quite nicely."
"I think one of the interesting things we’ve seen over the last ten years has been the introduction of multi-core CPUs," he added. "As we got to the early 2000s there were ambitions to produce 10GHz processors. And here we are in 2014 and still the fastest processors stock speeds around 4GHz or so. We don’t go much faster, but we do go wider.
"Game developers over the last 10 years have had to tackle the transition from one core to two, and then to four. They struggled with using up six or eight cores on a PC typically, but I do think the artificial breaks that were there in the way, and things like the single core dependency of Open GL and DX 11, having that out of the way is great news for game developers. It means that they really can open up their CPU cores more.
"So I think not only does [AMD's API] Mantle deliver better capabilities on the graphics side, clearly unleashing some of the power being held back there, but perhaps most surprisingly the benefit for Mantle and the new low level APIs will be more CPU horse power available to games.
"So instead of the artificial bottlenecks and trying to unload the CPU as much as possible, it turns out that if the software is well designed, you’ve actually got a lot of CPU use as well. So we also expect the interesting use of that to increase over the next handful of years."
Nuhar escribió:La CPU para todo?
Dudo que alguien haya dicho eso... Lo que habran dicho es que un uso mucho mas eficiente de la CPU puede mejorar el rendimiento.
Nuhar escribió:La CPU para todo?
Dudo que alguien haya dicho eso... Lo que habran dicho es que un uso mucho mas eficiente de la CPU puede mejorar el rendimiento.
Zokormazo escribió:Mas bien un sistema de transparencia total que me parece utopico, tanto ahora como dentro de 10 años
mitardo escribió:Zokormazo escribió:Mas bien un sistema de transparencia total que me parece utopico, tanto ahora como dentro de 10 años
Algo así debió pensar la gente cuando se hablaba de hacer un teléfono móvil.
The results of the program indicate that C++ AMP typically computes the result of the multiplication of single precision floating point of input matrices A[450 rows, 640 cols] and B[640 rows, 960 cols] in 58 ms. In comparison, the OpenCL implementation solves the problem at best in 600 ms on the GPU. A CPU OpenCL device is enumerated in the program, and does surprisingly better than the GPU, running in 240 ms.
On another machine which has an NVIDIA card, there is neglible difference between OpenCL and C++ AMP, and CUDA (both runtime and driver implementations) for the NVIDIA GPU. However, that machine also has an AMD graphics card, which exhibits the same problem there as on the Llano machine: OpenCL for AMD GPU targets perform poorly compared to C++ AMP implementations that target the GPU.
I suspect that the reason for the poor performance is because C++ AMP targets DirectX11 which is implemented by the card itself, whereas OpenCL is translated into VLIW code. But, I don't know any details of how OpenCL is implemented for AMD GPU's. Or, it could be something simple that I've overlooked in the installation of the AMD APP SDK. I just don't know.
Zokormazo escribió:Seria si se hablase de que el telefono movil lo diseñase y crease un ente artificial sin interaccion humana.
Simplificando mucho y como he dicho ya en más de una ocasión por aquí, DirectX11 introdujo la posibilidad de paralelizar el render entre varios núcleos mediante los deferred context. DirectX12 llevará este concepto más allá, de forma similar a como se maneja esto en las APIs de las consolas (y lo pongo en plural). A parte traerá mejoras para poder acceder a los distintos recursos de forma más directa para el programador ahorrando sobrecargas a nivel de driver/SO y eliminado el overhead. Obviamente esto trae consigo un ligero inconveniente, ahora es el programador el q tiene q gestionarlo (bendito problema).
Otra cosa muy distinta es la sobrecarga q puede provocar una API de alto nivel como es DirectX11. Esto no tiene nada que ver con la parelilización, simplemente y por ciertos motivos puede haber funciones y tareas que tarden mucho tiempo en ser despachadas a la GPU pq tengan un alto nivel de sobrecarga a nivel de driver.
Si quieres ir del punto A al punto B, la distancia mas corta es la línea recta, pero puedes empezar a dar vueltas y tardar mas tiempo. En este caso el driver no va en linea recta sino que suele "dar vueltas", consumiendo tiempo de CPU. Todo esto te puede llevar a tener una aplicación CPU-bound, esto es, una aplicación que está limitada por CPU y por tanto su GPU estará parada esperando comandos. Si tu eliminas ese cuello de botella puedes tener a la GPU menos tiempo parada y por tanto más aprovechada, peroooo (si todo tiene un pero) puede que te encuentres en el caso contrario, la CPU puede estar parada esperando a q la GPU termine (GPU-bound). Es un equilibrio complicado de alcanzar y siempre hay esperas.
Este overhead existe en TODAS las APIs y con sucesivas iteraciones se va mejorando poco a poco, por lo q hablar en terminos absolutos de qué porcentaje mejora una versión con respecto a la anterior es un poco equivocado.
Por otro lado siempre tendrás un límite de draw-calls que puedas emitir, pero por suerte hay formas (en las propias APIs) q te permiten reducir el número de drawcalls o cambios de estado, incluso hay formas de q la CPU no envie ningún comando a la GPU para dibujar, es la propia GPU la que se "retroalimenta".
No obstante y como bien dijo el programador de 4A Games, XboxOne ya tiene una API de bajo nivel asiq...no se muy bien a que viene toda esta discusión xD.
will run your code on the CPU, taking advantage of multi-core and SSE2 (depending on the CPU capabilities WARP also uses SSE3 and SSE 4.1
eloskuro escribió:¿Y como es posible que Xbox One con 32 MB de eSRAM consiga meter 1080p 4xMSAA ?
eloskuro escribió:¿Y como es posible que Xbox One con 32 MB de eSRAM consiga meter 1080p 4xMSAA ?
eloskuro escribió:¿Y como es posible que Xbox One con 32 MB de eSRAM consiga meter 1080p 4xMSAA ?
Lo dije cuando salieron las informaciones q para un deferred era escaso pq no cogía a 1080p, hay mas opciones para tener muchas luces simultáneas como por ejemplo un Forward+ que me da a mi en la nariz q lo veremos bastante y tb sacarán nuevas formas q ahora mismo ni imaginamos.
darksch escribió: @eloskuro escribió:¿Y como es posible que Xbox One con 32 MB de eSRAM consiga meter 1080p 4xMSAA ?
BRUJERÍA
Nuhar escribió:@Polyteres , tu si que has estado mas o menos en medio, no todo lo que se escribe es una puya contra ti
Sabes que se ha dicho de todo, al igual que hay gente que ha exagerado hacia un lado, ha habido otros que han exagerado al contrario y ha habido medios "reputados" que se han hecho eco.
Poco a poco ira empezando a verse cosas nuevas.
Nuhar escribió:eloskuro escribió:¿Y como es posible que Xbox One con 32 MB de eSRAM consiga meter 1080p 4xMSAA ?
Ahora que @Zokormazo me ha enseñado a dar avisos sin quotear, podemos preguntarselo a @Polyteres o a @papatuelo.
Que guay es esto de mencionar jajaja
Q. I remember there was something on the GPU 14 event that mentioned anti-aliasing support with deferred rendering / lighting. Does this include super sampling anti-aliasing as well?
A. You're referring to Forward+. I want to give some background on Forward+ so other people know what it is:
Forward+ not only allows for the efficient utilization of thousands of light sources, but also performs an accurate simulation of their interactions with objects in the world. Forward+ also resolves the developer’s choice between a “forward” or “deferred” rendering engine for their game, which can have serious implications for the look, feel and features of a title.
For example, a “forward” rendering engine supports anti-aliasing, texture transparencies (like leaves and chainlink fences), and a wide variety of texture types (e.g. cloth and metal). Meanwhile, a “deferred” engine supports a large number of light sources, efficient rendering effects (“shaders”), and works well on game consoles. Thanks to Forward+, all of these technologies can efficiently coexist.
Forward+ further extends its leadership over forward and deferred engines by substantially increasing the diversity in the material types that a game may render. Whereas lighting on cloth and metal textures might look very similar on a game with a deferred engine (e.g. old gen consoles or console ports), Forward+ can render the distinct and realistic lighting differences between them. Because of the way Forward+ is designed, it's suitable for use with both MSAA and SSAA.
darksch escribió:Debo añadir que era previsible, hace ya mucho John Carmack pedía algo similar, vamos que se veía que los motores pasarían por usar menos memoria en buffers y usarlos de forma más dinámica.
Pada escribió:No tiene que ver directamente con xbox, pero si indirectamente.
http://www.anandtech.com/show/8544/micr ... w-features
jose1024 escribió:¿Aseguras que el hardware de Xbox One es 100% directx 12?
¿Lo asegura alguien de Microsoft?
Seria algo bueno de ser asi, pero que sea con fuentes y no actos de fe y esperanzas.
Polyteres escribió:Buenas gente. El problema que veo es q empezáis bien pero luego poco a poco se van tergiversando cosas y al final se llegan a conclusiones equivocadas o erróneas. @jose1024 lo ha expuesto muy bien en su mensaje anterior.
Forward Rendering, Deferred Rendering, Light Prepass, Tile-based deferred rendering, Forward+...no son mas que formas diferentes de sacar un render. Unas pueden partir de la misma raíz pero tener pequeños cambios, otras son aproximaciones híbridas...y por supuesto cada una tiene sus ventajas y sus inconvenientes. La elección de una u otra viene dada por las necesidades artísticas del juego que se está desarrollando y obviamente por las "limitaciones" (todas las máquinas lo tienen) que tenga el hardware objetivo (hasta hace poco no podía meter un deferred rendering en un smathphone pero ahora si ). No se debe hablar de técnicas de render antiguas u obsoletos sino de técnicas más apropiadas para un juego determinado.
Forward+ no es un "motor" nuevo y que demuestra la potencia de XboxOne. Forward+ es una técnica de render q tiene ya su tiempo, q tiene una serie de ventajas e inconvenientes y q funciona igual de bien en un PC, en una Ps4 o en una XboxOne.
XboxOne no es ni más ni menos que hace 2 días, 1 semana o 1 año. Es la misma máquina con sus puntos fuertes y con sus carencias, pero los ingenieros estamos para eso, para solucionar los problemas que se nos van presentando.
El tamaño de la eSRAM sigue siendo el mismo, y tienes q buscar formas de saltarte esa limitación. Sabes que como mucho puedes meter 4 buffers a 1080p de 4 bytes (por ejemplo RGBA8 q es lo estándar). Forward+ es una técnica q se hace en 3 pasos, y cuyo primer y segundo pase puede residir perfectamente en DDR3. En el primer pase renderizas solo el Z-Buffer, por lo que debido a la simpleza del shader q estás usando, sabes que vas a estar limitado por las ROPs y no por el ancho de banda, por lo que puedes renderizar perfectamente a la DDR3 este pase sin que el "escaso" ancho de banda sea un problema demasiado grave. Luego usas un Compute Shader para calcular las luces que afectan a cada pixel y metes esa información en un buffer. El tercer paso es un forward normal y corriente usando como información los pases 1º y 2º.
Con respecto a las nuevas características de DirectX12, en la línea de anunciado, nada demasiado significativo...lo q se espera.
Un saludo.