Microsoft detalla DirectX Raytracing Tier 1.1, nuevas funciones de DirectX 12

0

Microsoft detalla adiciones de funciones a la API de gráficos 3D de DirectX 12 y una expansión de su API para Raytracing DirectX (DXR) al Nivel 1.1. Las API actualizadas se incluirán con la actualización principal de Windows 10 que está programada para la primera mitad de 2020; las funciones ya están disponibles para los desarrolladores en las compilaciones de vista previa de Windows Insider.

DXR 1.1 es la primera actualización importante de la API desde su lanzamiento en el cuarto trimestre de 2018, y agrega tres características principales. Primero, brinda soporte para shaders adicionales a un PSO, para la versión de Raytracing existente, lo que aumenta la eficiencia de las adiciones de PSO dinámicas. Lo siguiente es el ExecuteIndirect para el soporte de Raytracing, descrito por Microsoft como «habilitar algoritmos adaptativos donde el número de rayos se decide en la línea de tiempo de ejecución de la GPU». Esto podría ser una pista de lo que se puede esperar que las GPU’s de NVIDIA de próxima generación en el próximo año. Por último, la API presenta soporte para Inline Raytracing, lo que brinda a los desarrolladores más control sobre el recorrido y la programación de rayos.

En la API principal de DirectX 12, Microsoft está introduciendo soporte para Mesh Shaders, lo que provoca cambios sistémicos en la canalización de gráficos. «Los shaders de malla y los shaders de amplificación son la próxima generación de capacidad de procesamiento de geometría de GPU, reemplazando el ensamblador de entrada actual, el shader de vértices, el sombreador de casco, el teselador, el shader de dominio y las etapas del shader de geometría», escribe Microsoft en su publicación de blog. DirectX Sampler Feedback contribuye a la gestión de la memoria al permitir que los juegos comprendan mejor a qué activos de textura se accede con más frecuencia y deben permanecer residentes.

Microsoft describe el impacto en el rendimiento de DirectX Sampler Feedback en dos características clave de la API: texturas transmitidas y sombreado de espacio de textura, de la siguiente manera:

Streaming de texturas: muchos juegos de próxima generación tienen el mismo problema: al renderizar mundos cada vez más grandes con texturas cada vez más grandes, los juegos sufren un mayor tiempo de carga, mayor presión de memoria o ambos. Los desarrolladores de juegos tienen que recortar la calidad de sus activos o cargar texturas en tiempo de ejecución más de lo necesario. Al apuntar a una resolución de 4K, ¡todo el MIP 0 de una textura de alta calidad ocupa mucho espacio! Es muy deseable poder cargar solo las partes necesarias de los niveles de MIP más detallados.

Una solución a este problema es la transmisión de texturas como se describe a continuación, donde Sampler Feedback mejora en gran medida la precisión con la que se pueden cargar los datos correctos en los momentos correctos.

  • Renderice la escena y registre los mosaicos de textura deseados usando Sampler Feedback.
  • Si los mosaicos de textura en los niveles de MIP deseados aún no son residentes:
    • o renderice el marco actual usando un nivel de MIP más bajo.
    • o envíe la solicitud de E/S de disco para cargar los mosaicos de textura deseados.
  • (Asincrónicamente) Asigne mosaicos de textura deseados a recursos reservados cuando se carguen.


Sombreado de espacio de textura: otro escenario interesante es el sombreado de espacio de textura, donde los juegos calculan y almacenan dinámicamente valores de sombreado intermedios en una textura, reduciendo la redundancia de renderizado espacial y temporal. El flujo de trabajo se parece al siguiente, donde nuevamente, Sampler Feedback mejora en gran medida la eficiencia al evitar el trabajo redundante de computación de partes de una textura que en realidad no eran necesarias.

  • Dibuja geometría con sombreadores simples que registran la retroalimentación del muestreador para determinar qué partes de una textura son necesarias.
  • Envíe el trabajo de cálculo para rellenar las texturas necesarias.
  • Dibuja geometría nuevamente, esta vez con sombreadores reales que aplican los datos de textura generados.

Otras características son:

  • Soporte DRED para marcadores PIX
  • Nuevas API para interactuar con la capa de mapeo D3D9on12
  • Formato R11G11B10_FLOAT compatible con recursos compartidos
  • Nuevos indicadores de asignación de recursos que permiten crear recursos D3D12 sin hacerlos también residentes en la memoria de la GPU, o sin inicializarlos en cero, lo que puede mejorar el rendimiento de la creación de recursos.
  • D3DConfig: una nueva herramienta para administrar la configuración del Panel de control de DirectX

Compatibilidad conPIX: la compatibilidad con PIX para estas nuevas funciones de DirectX 12 llegará en los próximos meses. Proporcionaremos más detalles cuando profundicemos en cada función en las próximas semanas.