Canalizaciones para Direct3D versión 11

Esta sección solo se aplica a Windows 7 y versiones posteriores, y Windows Server 2008 R2 y versiones posteriores del sistema operativo Windows.

La canalización de representación de gráficos para Direct3D versión 11 se expande desde la canalización de representación de gráficos para la versión 10 de Direct3D. Además de los núcleos de sombreador programables compartidos compatibles con Direct3D versión 10, Direct3D versión 11 también admite núcleos de casco, dominio y sombreador de proceso.

La versión 11 de Direct3D admite realmente dos canalizaciones independientes: la canalización de dibujo (canalización de representación de gráficos) y la canalización de distribución (canalización de sombreador de proceso). Las canalizaciones de dibujo y distribución están conectadas técnicamente de forma flexible en el sentido de que no puede tener el mismo subrecurso enlazado para escribir en ambas canalizaciones simultáneamente, o enlazados para escribir en una canalización y para leer en la otra canalización.

En la ilustración siguiente se muestran los bloques funcionales de la canalización draw para direct3D versión 11.

Diagrama que ilustra los bloques funcionales de la canalización de dibujo de la versión 11 de Direct3D.

En la ilustración siguiente se muestran los bloques funcionales de la canalización de distribución para direct3D versión 11.

Diagrama que ilustra los bloques funcionales de la canalización de distribución de Direct3D versión 11.

En las secciones siguientes se describen los bloques new-for-Direct3D 11 que se muestran en las figuras anteriores.

Sombreador de casco

El sombreador de casco funciona una vez por parche. Puede usar el sombreador de casco con revisiones del ensamblador de entrada. El sombreador de casco puede transformar los puntos de control de entrada que componen una revisión en puntos de control de salida. El sombreador de casco puede realizar otra configuración para la fase de teselador de función fija. Por ejemplo, el sombreador de casco puede generar factores de tess, que son números que indican cuánto teselar.

El tiempo de ejecución de Direct3D llama a las siguientes funciones de controlador para crear, configurar y destruir el sombreador de casco:

Teselador

El teselador es una unidad de función fija cuya operación se define mediante declaraciones en el sombreador de casco. El teselador funciona una vez por revisión que genera el sombreador del casco. El sombreador de casco genera factores de tess, que son números que notifican al teselador cuánto se debe teselar (generar geometría y conectividad) a través del dominio de la revisión.

El tiempo de ejecución de Direct3D llama a la función CalcPrivateTessellationShaderSize del controlador para calcular el tamaño de la región de memoria de un sombreador de dominio o casco.

Sombreador de dominios

El sombreador de dominio se invoca una vez por vértice, que genera el teselador. Cada invocación se identifica mediante su coordenada en un dominio genérico. El rol del sombreador de dominio es convertir esa coordenada en algo tangible (por ejemplo, un punto en el espacio 3D) para usar el flujo inactivo del sombreador de dominio. Cada invocación de sombreador de dominio para una revisión también tiene acceso a la entrada compartida de toda la salida del sombreador de casco (por ejemplo, puntos de control de salida).

El tiempo de ejecución de Direct3D llama a las siguientes funciones de controlador para crear, configurar y destruir el sombreador de dominio:

Sombreador de cálculo

El sombreador de proceso permite que la GPU se vea como una cuadrícula genérica de procesadores paralelos de datos, sin obstáculos de gráficos de la canalización de dibujo. El sombreador de proceso tiene acceso explícito a memoria compartida rápida para facilitar la comunicación entre grupos de invocaciones del sombreador. El sombreador de proceso también tiene la capacidad de realizar lecturas dispersas y escrituras en memoria. La disponibilidad de las operaciones atómicas permite el acceso único a las direcciones de memoria compartida. El sombreador de proceso no forma parte de la canalización de dibujo. El sombreador de proceso existe por sí mismo. Sin embargo, el sombreador de proceso existe en el mismo dispositivo que todas las demás fases del sombreador. El tiempo de ejecución de Direct3D llama a las funciones DispatchXxx del controlador en lugar de a las funciones DrawXxx del controlador para invocar el sombreador de proceso.

El tiempo de ejecución de Direct3D llama a las siguientes funciones de controlador para crear, configurar y destruir el sombreador de proceso:

Vistas de recursos de acceso sin ordenar

Las vistas de recursos de acceso sin ordenar son recursos de lectura y escritura que se pueden enlazar al sombreador de proceso o al sombreador de píxeles. El enlace de vistas de recursos de acceso desordenado es similar a cómo se pueden enlazar vistas de recursos del sombreador, que son recursos de solo lectura, a cualquier fase del sombreador.

El tiempo de ejecución de Direct3D llama a las siguientes funciones de controlador para crear, configurar y destruir vistas de recursos de acceso sin ordenar: