
Sombreadores de malla
Los sombreadores de malla (MS) son esencialmente sombreadores de proceso con funciones intrínsecas específicas de la fase para exportar vértices, índices y datos de primitivas al ensamblador de primitivas. Todos los datos deben recuperarse explícitamente desde vistas de búfer de constantes (CBV) y vistas de recursos de sombreador (SRV) en el código del sombreador. Esto significa que los desarrolladores tendrán que reajustar su visión de las llamadas de dibujo para que se acerque más al flujo de trabajo de los sombreadores de proceso. El autor del sombreador determina el tamaño del grupo de subprocesos y cómo se usa cada subproceso para completar la carga de trabajo. Tendrán acceso a las funciones intrínsecas de wave del sombreador y a la memoria groupshared para compartir datos y crear de forma eficaz una lista de primitivas para la rasterización. Figura 2. Visualización del trabajo de GPU distribuido desde una llamada DispatchMesh(4, 1, 1) con una canalización de solo sombreador de malla enlazada. Al igual que los sombreadores de proceso, DispatchMesh requiere recuentos de grupos de subprocesos en las dimensiones x, y y z. Esto distribuye el número especificado de grupos de subprocesos de sombreador de malla para su ejecución.
Sombreadores de amplificación
El sombreador de amplificación (AS) es una fase opcional que precede a la fase de sombreador de malla. Esta fase también es similar a la de proceso, con la capacidad de distribuir dinámicamente un clúster de grupos de subprocesos de sombreador de malla. Cada grupo de subprocesos calcula su propio número de grupos de subprocesos de sombreador de malla que va a distribuir. Cada grupo de subprocesos también consta de hasta 16 KB de datos de carga compartidos y personalizados que se pasan a los grupos de subprocesos de sombreador de malla que genera. Estos datos pueden exportarse directamente desde la memoria groupshared. La funcionalidad de los sombreadores de amplificación permite a los programas de sombreador reducir o amplificar dinámicamente su carga de trabajo según criterios personalizados. Esto desbloquea la posibilidad de una selección eficaz de menor granularidad o de una teselación personalizada. Figura 3. Visualización de la distribución de un objeto de estado de canalización (PS) AS-MS. Algunos grupos de subprocesos de AS optarán por distribuir grupos de subprocesos de MS. Otros podrían no distribuir ninguno.
