Anonim

Seamos realistas: DirectX 11 y OpenGL están un poco viejos. DirectX 11 se introdujo con Windows 7 en 2009, y OpenGL 4.0 siguió un año después. En los años de software, estas tecnologías ahora son antiguas, y la cosecha actual de hardware que están ejecutando ni siquiera estaba en el tablero de dibujo cuando se lanzaron estas API de gráficos. Dada esta obvia desconexión, ¿qué está haciendo la industria para llegar con los tiempos? Bueno, veremos el futuro cercano y veremos, pero para comenzar, primero expliquemos qué es una API y qué función sirve para los juegos.

¿Qué es una API?

Una API o interfaz de programación de aplicaciones es un conjunto de protocolos y herramientas utilizados para construir software. Las API de gráficos son realmente solo una API especializada creada para facilitar la generación de gráficos 3D. Las API de gráficos facilitan la creación de imágenes en 3D, pero también le permiten indicarle a la API que haga algo (por ejemplo, dibujar un rectángulo) y, a su vez, permiten que la API se comunique con el hardware sobre cómo completar esta tarea. Esta es la razón principal por la que tantas GPU diferentes con hardware especializado pueden ejecutar los mismos juegos. Sin la existencia de una API, el mismo juego tendría que escribirse de diferentes maneras para comunicarse con cada conjunto específico de hardware. Esto limitaría severamente los fabricantes de hardware y aumentaría en gran medida el costo de construir juegos, un costo que finalmente se traspasaría al consumidor final.

Para que la explicación anterior sea un poco más fácil de entender, usaré una analogía: piense en una API como gerente de un sitio de construcción. Su trabajo es tomar la idea del arquitecto y desglosarla, programar qué equipos deben estar dónde y cuándo, y asegurarse de que todos estén en la misma página sobre lo que hay que hacer.

Figura 1: Representación gráfica de cómo funciona una API

API de gráficos utilizados actualmente

Ahora que entendemos el trabajo de una API de gráficos, echemos un vistazo más de cerca a la alineación actual. El jugador principal en el mercado hoy es DirectX de Microsoft, que se introdujo en 1995. Se ha actualizado varias veces desde su lanzamiento y está incluido en el sistema operativo Windows de Microsoft. DirectX es la API de gráficos que casi todos los juegos lanzados para PC admitirán. De hecho, es tan común que realmente es el estándar para los juegos de PC en la actualidad. DirectX es exclusivo de los productos de Windows y Microsoft, que desafortunadamente lo convierte en un sistema muy cerrado. El siguiente en la línea es OpenGL, la única API principal de gráficos de código abierto. OpenGL se lanzó en 1992 y es multiplataforma, lo que significa que funciona con varios sistemas operativos, incluidos Windows, Linux y Mac OS. Finalmente, tenemos la nueva API de gráficos, Mantle. Mantle se desarrolló en 2013 a través de una asociación entre AMD y Dice. Mantle está disponible en Windows y solo para GPU de AMD.

Figura 2: Comparación de DirectX 12 con DirectX 11
Fuente de imagen; Crédito de imágenes: Intel

DirectX 12

DirectX 12 se lanzará con Windows 10 este otoño y se están promocionando muchas mejoras nuevas. Una de las grandes mejoras es mucho mejor soporte multihilo. La mayor parte del trabajo se extiende sobre múltiples núcleos en la CPU, lo que permite una utilización de la CPU mucho mejor y más eficiente. Muchas veces, DirectX 11 tendrá un solo núcleo de la CPU completamente lleno mientras que otros núcleos están inactivos. DirectX 12 promete distribuir esta carga de trabajo en los núcleos de la CPU de manera más uniforme, lo que le da a los juegos mucha más potencia de CPU para trabajar. La próxima gran mejora prometida por DirectX 12 es la capacidad de manejar muchas más llamadas de extracción. Una llamada de sorteo ocurre cada vez que el motor del juego quiere dibujar algo en la pantalla. El requisito de muchas llamadas de extracción generalmente es muy exigente para la CPU. Se supone que DirectX 12 puede manejar hasta 600, 000 llamadas de extracción. Para poner esto en perspectiva, DirectX 9 solo podía manejar 6, 000 llamadas de extracción o 1/100 de lo que DirectX 12 podrá.

Durante años, ha sido posible ejecutar múltiples GPU en modo SLI / Crossfire. Sin embargo, una de las grandes limitaciones era que el VRAM integrado en las tarjetas no se apilaba para formar un grupo grande y continuo. Por ejemplo, si tiene dos GPU, cada una con 2 GB de VRAM, solo tendrá efectivamente 2 GB de VRAM porque cada tarjeta debe tener la misma información almacenada. DirectX 12 espera resolver este problema mediante el uso de AFR o representación de fotogramas alternativos. En lugar de que cada GPU represente parte de cada cuadro, las GPU ahora representarán un cuadro completo cada una. Esto permitirá que la VRAM de cada tarjeta se use de forma independiente y, con suerte, permitirá que las tarjetas con cantidades más pequeñas de VRAM sean viables para jugar durante un buen tiempo. Se supone que hay muchas otras características nuevas incluidas en DirectX 12 para impulsar los gráficos de juegos más que nunca. Sin embargo, Microsoft sigue siendo bastante silencioso acerca de cuáles son estas nuevas características. Esperamos saber más sobre ellos pronto a medida que se acerque el lanzamiento de la API.

Figura 3: DirectX 12 API Overhead se reduce cuando se utilizan CPU de varios núcleos.
Fuente de imagen; Crédito de imagen: nVidia GeForce

Vulkan

No se sabe tanto sobre Vulkan como sobre DirectX 12, como se acaba de anunciar en GDC 2015. Lo que sí sabemos es que los creadores de OpenGL, Khronos Group, abandonaron el nombre glNext a favor de Vulkan. Vulkan parece derivarse de Mantle, que mencioné anteriormente en el artículo. Además, parece que AMD está trayendo las mejores partes de Mantle a la mesa para Vulkan en una asociación con Khronos Group. Se supone que Vulkan tiene muchas de las mismas ventajas de DirectX 12, pero no está vinculado a una sola plataforma como Windows. En cambio, estará disponible en muchas plataformas diferentes, incluidos Linux e incluso dispositivos móviles. Los controladores Vulkan para Windows y Linux serán completamente de código abierto a diferencia de DirectX. Vulkan mejorará el subprocesamiento múltiple y, por lo tanto, hará un uso mucho mejor de la potencia de CPU disponible hoy en día al distribuir la carga de trabajo en múltiples núcleos de CPU. Como se mencionó anteriormente, la reducción de la carga en la CPU permitirá que las GPU no se bloqueen tan fácilmente como ahora. Esto debería proporcionar un impulso de velocidad de fotogramas bastante sustancial durante los juegos. Source 2, que fue recientemente anunciado por Valve, será el primer nuevo motor de juegos que admita Vulkan, aunque estoy seguro de que se anunciarán muchos más en el futuro cercano. Dota 2, un juego conocido por ser intensivo en CPU, se mostró ejecutándose en Source 2 con la nueva API Vulkan usando los gráficos integrados de Intel en la CPU. Esto es algo que ciertamente no hubiera sido deseable en DirectX 11, pero con Vulkan el juego parecía mantener una velocidad de cuadro razonable en todo momento. Dan Baker, desarrollador de juegos de Oxide, incluso llegó a decir que "hasta que los fabricantes de GPU actúen juntos y hagan las GPU diez veces más rápido de lo que tenemos ahora, no podemos maximizar la CPU". Esta es una buena noticia para las personas que ejecutan CPU más lentas o que tienen mucha potencia de GPU actualmente porque significará que se puede obtener un rendimiento mucho mejor en el mismo conjunto de hardware.

Figura 4: Diagrama que muestra los beneficios de Vulkan (cuello de botella reducido a GPU).
Fuente de imagen; Haber de imagen: Khronos

¿Qué significa esto para el futuro de los juegos?

Bueno, durante mucho tiempo ahora la potencia de la GPU ha aumentado a un ritmo mucho más rápido que la potencia de la CPU. Hace cinco años, Intel incluso declaró que algunas GPU eran 14 veces más rápidas que sus propias CPU. Esas pruebas se realizaron utilizando una nVidia GTX 280 frente a una CPU Intel i7 960, ahora considerada hardware relativamente obsoleto. La brecha entre un nVidia GTX Titan X (o incluso un nVidia GTX 980) y la potencia actual de la CPU convencional, la CPU Intel i7-4790k, debería ser mucho mayor. El punto que estoy tratando de aclarar es que estamos comenzando a ver que más y más juegos chocan contra el rendimiento debido a la CPU. Pregúntele a cualquiera con un monitor de alta frecuencia de actualización qué tan difícil es mantener más de 100 fps con las CPU actuales en algunos juegos. Francamente, solo sería más difícil sin estas nuevas API y su capacidad para utilizar la potencia de la CPU de manera más eficiente. La introducción de estas nuevas API podría significar un gran avance en el rendimiento para la mayoría de las personas. Además, también permitiría a los desarrolladores construir mucho más juegos intensivos de CPU que los que tenemos ahora. Por ejemplo, imagina un juego como Assasins Creed que tiene miles de NPC en pantalla al mismo tiempo, todos interactuando entre sí y con tu personaje mientras recorres una ciudad. O juegos como Star Citizen, donde necesita una CPU muy fuerte para obtener cualquier tipo de velocidad de fotogramas estable y aceptable, podría requerir en el futuro cercano una CPU promedio en el mejor de los casos y una GPU fuerte para mantener un buen 60fps sólido.

En última instancia, este es un momento muy emocionante para ser un jugador. Cuando se lanzan estas nuevas API de gráficos, podríamos ver el mayor salto en la tecnología de juegos en mucho tiempo. Esperemos que estas API puedan estar a la altura de las exageraciones que ya han creado para sí mismas.

Nuevas API de gráficos y el futuro de los juegos de PC