DX12 suma en preview Shader Model 6.10 y AgilitySDK 1.720, dos piezas que empujan la API hacia cargas de trabajo más cercanas a la IA y al renderizado neuronal. La novedad no se queda en una mejora aislada: Microsoft añade APIs de álgebra lineal, nuevas intrínsecas para ray tracing, memoria compartida variable y comandos asíncronos por lotes. Sobre el papel, es una actualización con bastante más fondo que una simple revisión incremental.

La parte más visible llega con DX12 Linear Algebra, o LinAlg, que agrupa APIs de matrices bajo Shader Model 6.10. Microsoft lo plantea como una vía para ejecutar técnicas de neural rendering desde hilos individuales de shader en tiempo real, además de operaciones MMA de mayor ancho de banda para ML y procesamiento de imagen. También llegan GetGroupWaveIndex() y GetGroupWaveCount(), intrínsecas que dan a compute, mesh, amplification y node shaders información directa sobre la estructura de wave dentro de un thread group.

DX12 añade Matrix y wave indexing para shaders más conscientes del hardware

La idea aquí es clara: menos atajos frágiles y más control explícito. Hasta ahora, ciertas implementaciones dependían de dividir SV_GroupIndex por WaveGetLaneCount(), una fórmula que no garantiza el mismo resultado en todo el hardware. Con estas nuevas intrínsecas, un mismo camino de código puede funcionar de forma portátil entre distintos tamaños de wave. Esto importa bastante cuando el soporte ya se mueve entre NVIDIA, AMD e Intel.

En paralelo, Shader Model 6.10 abre la puerta a un uso más directo de la matriz de cálculo para ML e imagen. No hablamos todavía de una característica pensada para cambiar por sí sola el rendimiento de un juego. Sí de una base más amplia para que los motores empiecen a mezclar renderizado y técnicas neuronales con menos fricción. La actualización llega tras Shader Model 6.9, DXR 1.2 y el paquete de AgilitySDK 1.619, así que Microsoft sigue engordando la capa DX12 con piezas bastante específicas.

Más memoria compartida y comandos asíncronos para evitar cuellos de botella

DX12 imagen 1

La otra novedad relevante es Variable Group Shared Memory. Shader Model 6.10 elimina el techo fijo de 32 KB —28 KB en mesh shaders— y lo sustituye por una consulta al límite real del hardware mediante MaxGroupSharedMemoryPerGroup. Los desarrolladores pueden declarar ese máximo con el atributo [GroupSharedLimit(<bytes>)], y el compilador valida la portabilidad antes de tiempo. En la práctica, esto abre espacio para tile culling, bins de software rasterization y cargas de matrices grandes que antes chocaban con el límite del estándar.

También llegan los Batched Asynchronous Command List APIs. Aquí el objetivo es evitar que comandos como CopyBufferRegion, ClearUnorderedAccessViewFloat/Uint o ResolveSubresource se ejecuten estrictamente en serie. Microsoft dice que el modelo antiguo metía paradas entre operaciones independientes, aunque tocaran memorias distintas. Con el nuevo enfoque, el driver y el hardware pueden solapar trabajo dentro del mismo lote. Las barreras mejoradas quedan para los casos donde sí existe dependencia real. Es un cambio más técnico que vistoso, pero en cargas con mucho copiado o limpieza puede marcar diferencias.

El soporte ya llega a NVIDIA, AMD e Intel, pero no al mismo ritmo

La preview ya tiene apoyo de los tres grandes. AMD ofrece soporte con AMD Software: AgilitySDK Developer Preview Edition 25.30.41.02, Intel lo hace a través de Intel Arc Graphics en Windows y NVIDIA pide acceso mediante su representación de relaciones con desarrolladores. La compatibilidad, eso sí, no avanza igual para todos. NVIDIA cubre la mayoría de funciones en toda su gama RTX, mientras que AMD e Intel limitan algunas piezas a hardware más reciente, como Arc B-Series y RDNA 4, es decir, la familia Radeon RX 9000.

Hay otro matiz importante: Group Wave Index ya funciona en RX 7000 y RX 9000, pero en NVIDIA está previsto para una próxima versión. Intel también añadirá el soporte de Linear Algebra en una futura actualización. La foto final de esta preview es bastante clara: DX12 sigue creciendo como API para gráficos, pero cada vez se acerca más a cargas mixtas de render, IA y procesamiento matricial. Para el desarrollo, eso supone más herramientas. Para el usuario, más presión sobre los motores para aprovecharlas de verdad.

Puedes seguir a HardwarePremium en Facebook, Twitter (X), Instagram, Threads, BlueSky o Youtube. También puedes consultar nuestro canal de Telegram para estar al día con las últimas noticias de tecnología.

FAQ

¿Qué añade Shader Model 6.10 a DX12?

Añade APIs de matrices bajo LinAlg, nuevas intrínsecas como GetGroupWaveIndex() y GetGroupWaveCount(), memoria compartida variable y soporte para intrínsecas de ray tracing como TriangleObjectPositions. También incorpora comandos asíncronos por lotes en D3D12.

¿Qué cambia en la memoria compartida de los shaders?

Desaparece el límite fijo de 32 KB, o 28 KB en mesh shaders, y se sustituye por una consulta al límite real del hardware. Microsoft añade el atributo [GroupSharedLimit(<bytes>)] para que el compilador valide esa capacidad.

¿Qué GPUs tienen soporte para esta preview?

La fuente cita soporte de NVIDIA, AMD e Intel. NVIDIA cubre la mayoría de funciones en su gama RTX, mientras que AMD e Intel restringen algunas a hardware reciente como Arc B-Series y RDNA 4.

¿Qué significa Group Wave Index para RX 7000 y RX 9000?

Group Wave Index ya está soportado en RX 7000 y RX 9000, lo que permite a esos shaders conocer la estructura de wave dentro del thread group. NVIDIA lo tiene previsto para una próxima versión.

Comments are closed.