Glosario de Direct3D 12

Estos términos son distintivos de Direct3D 12.

Vinculante

Proceso de adjuntar memoria a la canalización de gráficos. El enlace de recursos, por ejemplo, implica el enlace de un recurso, como una textura a la canalización, para su uso en la representación de un objeto.

Búfer

Tipo de recurso D3D que es sinónimo de una asignación de memoria contigua.

Paquete

Un búfer de comandos que la unidad de procesamiento de gráficos (GPU) solo puede ejecutarse directamente a través de una lista de comandos directo. Un lote hereda todo el estado de GPU (excepto el objeto de estado de canalización establecido actualmente y la topología primitiva).

asignador de comandos

Asignaciones de memoria subyacentes en las que se almacenan los comandos de GPU. El objeto de asignador de comandos se aplica tanto a listas de comandos directas como a agrupaciones.

lista de comandos

Una lista de comandos corresponde a un conjunto de comandos que ejecuta la GPU. Estos incluyen comandos como para establecer el estado, dibujar, borrar y copiar. La interfaz de lista de comandos D3D12 es significativamente diferente de la interfaz de lista de comandos D3D11. La interfaz de lista de comandos D3D12 contiene API similares a las API de representación del contexto de dispositivo D3D11.

Una lista de comandos D3D12 no asigna ni desasigna recursos, cambia las asignaciones de iconos, cambia el tamaño de los grupos de iconos, obtiene datos de consulta ni envía comandos implícitamente a la GPU para su ejecución.

A diferencia de los contextos diferidos D3D11, los comandos D3D12 solo admiten dos niveles de direccionamiento indirecto. Una lista de comandos directos corresponde a un búfer de comandos que la GPU puede ejecutar. Una agrupación solo se puede ejecutar directamente a través de una lista de comandos directos.

Una lista de comandos directos no hereda ningún estado de GPU. Un lote hereda todo el estado de GPU (excepto el objeto de estado de canalización establecido actualmente y la topología primitiva).

El asignador de comandos establece la memoria de una lista de comandos. El propósito de las listas de comandos es que se pueden enviar a una GPU como una única solicitud de representación.

cola de comandos

Una cola de comandos muestra que la GPU se ejecuta en sucesión. Las aplicaciones deben enviar explícitamente listas de comandos a una cola de comandos para su ejecución. Normalmente hay tres colas de comandos: gráficos 3D, proceso y copia, correspondientes a la canalización de gráficos 3D, el motor de proceso y uno o varios motores de copia, en la GPU.

rasterización conservadora

La rasterización conservadora es un modo de operación para la fase de rasterizador de la canalización de gráficos de Direct3D. Deshabilita la rasterización estándar basada en muestras y, en su lugar, rasteriza un píxel cubierto por cualquier cantidad por un primitivo. Una distinción importante es que, aunque cualquier cobertura en absoluto genera un píxel rasterizado, esa cobertura no se puede caracterizar por el hardware, por lo que la cobertura siempre aparece binaria a un sombreador de píxeles: totalmente cubierto o no cubierto. Se deja en el código del sombreador de píxeles para determinar analíticamente la cobertura real.

La rasterización conservadora puede ayudar con problemas como la detección de colisiones y golpes, la discretización y la selección de oclusión, donde el color de un píxel es más seguro y se pueden eliminar los casos perimetrales. Consulte Rasterización conservadora.

Vista de búfer de constantes (CBV)

Los búferes de constantes contienen datos constantes del sombreador, como una vista de cámara, matrices de proyección y matrices de mundo. Una "vista de búfer de constantes" es la vista específica del formato del búfer tal como la ve la canalización de gráficos.

montón predeterminado

Un montón en modo de usuario que se centra en admitir tipos de recursos de GPU persistentes, incluidos los recursos escritos por GPU.

Descriptor

Los descriptores son la unidad principal de enlace para un único recurso en D3D12. Un descriptor es un bloque de datos relativamente pequeño que describe completamente un objeto a la GPU, en un formato específico de GPU. Hay muchos tipos diferentes de descriptores: Vistas de recursos de sombreador (SRV), Vistas de acceso sin ordenar (UAV), Vistas de búfer de constantes (CBV) y Samplers son algunos ejemplos.

montón de descriptores

Un montón de descriptores es una colección de asignaciones contiguas de descriptores, una asignación para cada descriptor. El punto principal de un montón de descriptores consiste en abarcar la mayor parte de la asignación de memoria necesaria para almacenar las especificaciones de descriptor de tipos de objeto a las que hacen referencia los sombreadores para una ventana de representación lo más posible (idealmente un marco completo de representación o más).

tabla descriptor

Una tabla descriptor es lógicamente una matriz de descriptores. Cada tabla de descriptores almacena descriptores de uno o varios tipos, incluidos SRVs, UAVe, CBV y Samplers. Una tabla descriptor no es una asignación de memoria, es simplemente un desplazamiento y una longitud en un montón de descriptores.

lista de comandos directos

Búfer de comandos que la GPU puede ejecutar. Una lista de comandos directos no hereda ningún estado de GPU.

Cerca

Mecanismo para sincronizar la GPU y la CPU. Tanto la GPU como la CPU se pueden indicar para que esperen a una barrera, esperando en vigor para que el otro procesador se ponga al día. Consulte Sincronización de varios motores.

peligro, seguimiento de riesgos

Un riesgo se produce cuando se ha utilizado un recurso para un propósito y la aplicación pretende reutilizarlo para otro propósito. Para volver a usar el recurso, las memorias caché intermedias deberán vaciarse o invalidarse, los requisitos de compresión deberán ser coherentes con el segundo uso y el recurso debe estar en el estado necesario para evitar leer el recurso después de que se haya escrito y invalidado para el propósito previsto.

El proceso de mantenimiento de recursos y evitar estos problemas de sincronización se conoce como seguimiento de riesgos. Si el conductor no realiza un seguimiento de peligros, la aplicación es responsable de esto. En la mayoría de las versiones anteriores de DirectX, el controlador controló el seguimiento de peligros. Para mejorar el rendimiento, los métodos sin seguimiento de riesgos están disponibles en DirectX 12.

Lenguaje de sombreador de alto nivel (HLSL)

Un lenguaje informático, similar pero distinto de muchas maneras de C, que se usa para escribir código de sombreador. Todos los sombreadores de vértices, píxeles, geometría, proceso, dominio y casco se escriben mediante HLSL. Un compilador convierte el origen HLSL en un formato binario para que la GPU lo consuma.

multiengine

Las diferentes instancias y tipos de motores en una sola GPU. Los tipos de motores incluyen: gráficos, proceso y copia.

MultiGPU

Una configuración de hardware donde hay más de un adaptador de gráficos. Los adaptadores independientes a veces se conocen como nodos. Tener varias GPU puede hacer que la tarea de sincronizarlas con la CPU, y entre sí, sea considerablemente más compleja que con una sola GPU.

Objeto Estado de canalización (NULL)

Una parte significativa del estado de la GPU. Este estado incluye todos los sombreadores establecidos actualmente y determinados objetos de estado de función fija. La única manera de cambiar los estados contenidos en el objeto de canalización es cambiar el objeto de canalización enlazado actualmente.

Predicación

Predicación es una característica que permite que la GPU en lugar de la CPU determine que no se debe dibujar, copiar o enviar un objeto. Por ejemplo, si un rectángulo de límite de un objeto está totalmente ocluido por otro objeto o perspectiva ha reducido el objeto a menos del tamaño de un píxel, puede que no haya ningún punto en intentar dibujar el objeto oculto en absoluto. Consulte Predicación.

Vista orden de rasterizador (ROV)

Las canalizaciones de gráficos estándar pueden tener problemas para componer correctamente varias texturas que contienen transparencia. Objetos como barreras de alambre, humo, fuego, vegetación y vidrio coloreado usan transparencia para obtener el efecto deseado. Los problemas surgen cuando varias texturas que contienen transparencia están en línea entre sí (humo delante de una valla delante de un edificio de vidrio que contiene vegetación, como ejemplo). Las vistas ordenadas por rasterizador (ROV) permiten que los algoritmos subyacentes de transparencia independiente del orden (OIT) usen características del hardware para intentar resolver correctamente el orden de transparencia. El sombreador de píxeles controla la transparencia.

Las vistas ordenadas de rasterizador (ROV) permiten que el código del sombreador de píxeles marque los enlaces de vista de acceso desordenado (UAV) con una declaración que modifica los requisitos normales para el orden de los resultados de la canalización de gráficos para UAV.

montón de lectura diferida

Un montón en modo de usuario que se centra en la transferencia de datos desde la GPU a la CPU.

Recursos

Una entidad que proporciona datos a la canalización y define lo que se representa durante la escena. Los recursos se pueden cargar desde el medio del juego o crearse dinámicamente en tiempo de ejecución. Normalmente, los recursos incluyen datos de textura, datos de vértices y datos del sombreador. La mayoría de las aplicaciones de Direct3D crean y destruyen recursos ampliamente a lo largo de su vida útil.

barrera de recursos

Una barrera de recursos notifica al controlador que la sincronización de varios accesos a un único recurso puede ser necesaria, por ejemplo, leer y escribir en la misma textura.

enlace de recursos

El enlace de recursos es el proceso de vincular recursos (texturas, búferes de vértices, búferes de índice, etc.), a la canalización de gráficos, lo que permite a los sombreadores de la canalización procesar el recurso correcto.

montones de recursos

Los montones de recursos son un término genérico para los montones que son búferes de memoria que se reservan para almacenar los recursos a medida que se transfieren a y desde la GPU. Una transferencia a la GPU requiere un montón de carga, desde la GPU a la CPU requiere un montón de lectura diferida y un montón persistente para que la GPU mantenga a través de varios fotogramas de representación se denomina Montón predeterminado.

firma raíz

Las firmas raíz definen todos los recursos que se van a enlazar a los gráficos, o a las canalizaciones de proceso. La aplicación configura una firma raíz y vincula las listas de comandos a los recursos que los sombreadores requieren normalmente, hay un gráfico y una firma raíz de proceso por aplicación.

Sampler

Un sampler es código que lee de una textura.

Vista de recursos del sombreador (SRV)

Una manera específica del formato para examinar los datos de un recurso de sombreador, como una textura.

montón estático

Un montón en modo de usuario que se centra en varios recursos de solo lectura de GPU que normalmente se usan al mismo tiempo y que no se cambian con frecuencia.

cadena de intercambio

Las cadenas de intercambio controlan la rotación del búfer de reserva, formando la base de la animación de gráficos. Las cadenas de intercambio se controlan mediante el conjunto de API de bajo nivel DXGI (consulte Información general de DXGI).

Swizzle

Técnica de buscar datos multidimensionales en memoria de modo que los datos de dimensionalidad cercana suelen tener direcciones cercanas. En concreto, todos los datos de una fila no se encuentran contiguamente antes de los datos de la fila siguiente. Un "Swizzle con parámetros" describe una manera estandarizada de describir patrones de swizzle.

Textura

Un tipo de recurso D3D que es multidimensional y tiene un diseño de memoria optimizado para el acceso multidimensional desde la GPU. Las texturas suelen contener la imagen sin procesar necesaria para representarse en una superficie, antes de que se produzca la iluminación y la mezcla, pero pueden contener otras formas de datos, como degradados de color y colores de referencia. Direct3D 12 admite una, dos y texturas tridimensionales.

Azulejo

Página de memoria de vídeo, similar a una página cpu o sistema de memoria. La notación de mosaico ayuda a distinguir el subsistema de memoria virtual de GPU del subsistema de memoria virtual de CPU. Las GPU proporcionan funcionalidades de memoria virtual similares como memoria virtual del sistema. Algunas GPU tienen funcionalidades de memoria virtual compartidas, lo que permite compartir algunas páginas del subsistema de memoria virtual con la CPU y la GPU.

recursos en mosaico

Se necesitan recursos en mosaico, por lo que se desperdicia menos memoria de GPU y se almacenan regiones de superficies a las que la aplicación sabe que no se accederá, y el hardware puede comprender cómo filtrar entre iconos adyacentes. Los recursos en mosaico son recursos lógicos grandes, pero requieren pequeñas cantidades de memoria física.

Vista de acceso sin ordenar (UAV)

Una vista de acceso desordenada en un recurso (que incluye búferes, texturas y matrices de texturas, sin muestreo múltiple), permite el acceso temporal de lectura y escritura desordenado desde varios subprocesos. Esto significa que este tipo de recurso se puede leer y escribir simultáneamente en varios subprocesos sin generar conflictos de memoria.

cargar montón

Un montón en modo de usuario que se centra en la transferencia de datos desde la CPU a la GPU.

montón en modo usuario

Colección de asignaciones de memoria grandes y contiguas que se reciclan sin reconocimiento de ningún componente del kernel: los métodos de asignación y destrucción no llaman a los métodos de asignación y destrucción del kernel durante el estado estable. Los montones de carga, lectura diferida y predeterminado son variantes de montones de modo de usuario.

recursos en mosaico de volumen

Recursos en mosaico tridimensionales.