Microsoft DX12 añade GPU Upload Heaps: un nuevo salto de FPS en tu PC

Los juegos han avanzado mucho a lo largo de los años, y en parte es gracias a las nuevas versiones de DirectX. Estas API se emplean en multitud de aplicaciones, pero principalmente las que más uso le dan son los videojuegos. Ha pasado bastante tiempo desde que DirectX 12 se lanzó, pero ahora Microsoft ha anunciado una nueva función que permitirá el acceso simultáneo a la VRAM por parte de la CPU y la GPU, lo que aumentará el rendimiento. Así es GPU Upload Heaps y Non-normalized Sampling.

El hecho de que tengamos los gráficos de los juegos actuales, es debido a varias razones, empezando por la potencia del hardware actual. A día de hoy, tanto las consolas PS5 y Xbox Series X como los PC ofrecen procesadores y tarjetas gráficas mucho más potentes que las había unos años atrás. Cada generación viene acompañada de un salto gráfico o de rendimiento, pero a su vez nada de esto sería posible si la API DirectX no se hubiese actualizado. Fue en 1995 cuando DirectX 1.0 salió, pero los jugadores no empezaron a ver su aplicación habitual en juegos 3D hasta DirectX 8 y más comúnmente la versión 9.0.

Microsoft anuncia dos nuevas funciones para DirectX 12: GPU Upload Heaps y Non-normalized Sampling

DirectX 12 Ultimate

Se podría decir que fue a partir de DirectX 9.0 y la llegada masiva de juegos 3D, lo que hizo que esta API se usase en muchísimos títulos. Seguramente recordaréis la típica ventana de actualización de DirectX que aparecía al instalarnos un juego. Desde entonces hemos tenido DirectX 10 en 2006, DirectX 11 en 2009 y DirectX 12 llegó con Windows 10 en 2015. Que su lanzamiento coincidiera con esa versión de Windows no significa que acabase todo ahí y es que, en 2017 se añadió MSAA programable y en 2018 hubo soporte para el conocido Ray Tracing.

Más adelante, en 2019, tuvimos compatibilidad con VRS y en 2020 llegó DirectX 12 Ultimate que englobaba todo esto y aún más mejoras. Puede que esta versión ya tenga sus años, pero Microsoft ahora ha presentado dos nuevas funciones. DirectX traerá "GPU Upload Heaps" y "Non-normalized Sampling", las cuales se han agregado con la última versión del SDK Agility 1.710.0. Esta es una versión para desarrolladores, pero Microsoft ya la ha puesto para descargar desde su web.

La CPU y la GPU podrán acceder a la VRAM y aumentar el rendimiento en juegos

GPU NVIDIA Memoria Resizable BAR

La VRAM de la GPU siempre ha sido inaccesible para la CPU, obligando a los programas y juegos a copiar grandes cantidades de datos en la GPU a través del bus PCI. Hace un tiempo, se implementó Resizable BAR en GPU NVIDIA y AMD, permitiendo que Windows pueda gestionar la memoria VRAM. Con la nueva función de DirectX 12 denominada GPU Upload Heaps, tanto la GPU como la CPU podrán acceder a la VRAM de forma simultánea. Esto elimina la necesidad de copiar datos desde el procesador a la gráfica, acabando con ese cuello de botella y aumentando el rendimiento.

Teniendo en cuenta que los juegos actuales piden cada vez más VRAM de la GPU, podría ser muy beneficiosa su aplicación. Además, Microsoft indica que eliminaría la obligación de mantener los datos duplicados en la RAM como en la VRAM.

DX12 GPU Upload Heaps

La segunda función que añade DirectX 12 se llama Non-normalized Sampling, que según Microsoft permitirá interpretar las coordenadas como absolutas.

Aquí la diferencia es que en lugar de ver las coordenadas de las texturas ocupando un espacio de 0 a 1, se determinará la ubicación absoluta en su lugar. Microsoft no ha dado información sobre cuál será el impacto de esta última, pero ha informado que los drivers de las GPU ya están implementando ambas funciones en sus últimos controladores.