Compartir a través de


Canalizaciones y sombreadores con Direct3D 12

La canalización programable direct3D 12 aumenta significativamente el rendimiento de representación en comparación con las interfaces de programación de gráficos de generación anterior.

Canalización de gráficos de Direct3D 12

En el diagrama siguiente se muestra la canalización y el estado de gráficos de Direct3D 12.

diagrama que ilustra la canalización y el estado de direct3d 12

Una canalización de gráficos es el flujo secuencial de entradas y salidas de datos a medida que la GPU representa fotogramas. Dado el estado y las entradas de la canalización, la GPU realiza una serie de operaciones para crear las imágenes resultantes. Una canalización de gráficos contiene sombreadores, que realizan cálculos y efectos de representación programables, y operaciones de función fijas.

Tenga en cuenta lo siguiente al hacer referencia al diagrama de estado de la canalización:

  • Las tablas y montones de descriptores se pueden organizar arbitrariamente: se puede hacer referencia a los SMV, los CBV y los UAV en cualquier orden.
  • Algunas operaciones de la canalización son configurables. Por ejemplo, la fusión de salida normalmente funciona en una base de lectura-modificación-escritura con las vistas de destino de representación y galería de símbolos de profundidad. Sin embargo, la canalización se puede configurar para que cualquiera de estas vistas sea de solo lectura o de solo escritura.
  • Los muestreadores estáticos no forman parte de los argumentos raíz, ya que son estáticos.

Objetos de estado de canalización

Direct3D 12 presenta el objeto de estado de la canalización (%). En lugar de almacenar y representar el estado de canalización en un gran número de objetos de alto nivel, los estados de los componentes de canalización, como el ensamblador de entrada, el rasterizador, el sombreador de píxeles y la fusión de salida se almacenan en un ARCHIVO. UN OBJETO DE ESTADO de canalización unificado que es inmutable después de la creación. El ARCHIVO SELECCIONADO actualmente se puede cambiar de forma rápida y dinámica, y el hardware y los controladores pueden convertir directamente un ARCHIVO en instrucciones y estado nativos de hardware, preparando la GPU para el procesamiento de gráficos. Para aplicar un ARCHIVO, el hardware copia una cantidad mínima de estado preprocesado directamente en los registros de hardware. Esto elimina la sobrecarga causada por el controlador de gráficos que vuelve a calcular continuamente el estado de hardware en función de todas las configuraciones de canalización y representación aplicables actualmente. El resultado se reduce significativamente la sobrecarga de llamadas de dibujo, aumenta el rendimiento y más llamadas de dibujo por fotograma.

Actualmente, EL FORMATO aplicado define y conecta todos los sombreadores que se usan en la canalización de representación. Microsoft High Level Shader Language (HLSL) está precompilado en objetos de sombreador, que luego se usan en tiempo de ejecución como entrada para los objetos de estado de canalización. Para obtener más información sobre cómo funciona ELX dentro de la canalización de gráficos, consulta Administrar el estado de la canalización de gráficos en Direct3D 12.

Canalización de proceso de Direct3D 12

En el diagrama siguiente se muestra el estado y la canalización de proceso de Direct3D 12.

Diagrama que muestra la canalización de proceso de Direct3D 12.

No hay unidades de función fijas en esta canalización, pero los montones de descriptores, los montones de ejemplo y los muestreadores estáticos siguen estando disponibles en proceso.

Envío de trabajo en Direct3D 12