Montones de descriptores no visibles por el sombreador

Algunos montones de descriptores no pueden hacer referencia a los sombreadores a través de tablas de descriptores, pero existen para ayudar a la aplicación a almacenar provisionalmente los descriptores antes de grabar una lista de comandos o porque no se requiere ningún montón visible para sombreador.

Vistas no visibles

Todos los montones de descriptores, incluidos los montones de descriptores accesibles del sombreador descritos anteriormente, se pueden manipular mediante las listas de CPU o comandos en función del grupo de memoria y las propiedades de acceso a la CPU que la aplicación selecciona para un montón de descriptores.

En el caso de los montones de descriptores visibles del sombreador, el motivo obvio para denegar el acceso del sombreador a estos montones de descriptores es mientras se almacenan provisionalmente. A continuación, estos montones son visibles para el sombreador y se accede a ellos a través de tablas descriptores en la ejecución de la lista de comandos. Sin embargo, no es necesario almacenar provisionalmente montones visibles para sombreador, que se pueden rellenar directamente.

Otros descriptores se enlazan a la canalización haciendo que su contenido se registre directamente en la lista de comandos. Estos descriptores solo sirven para traducir los parámetros de vista en tiempo de registro de lista de comandos. Estos montones siempre son visibles sin sombreador y contienen lo siguiente.

  • Representar vistas de destino (RTV)
  • Vistas de galería de símbolos de profundidad (DSV)

Las vistas de búfer de índice (IBV), las vistas de búfer de vértices (VBV) y las vistas de salida de flujo (SOV) se pasan directamente a métodos de API, no tienen tipos de montón específicos.

Después de grabar en la lista de comandos (con una llamada como OMSetRenderTargets, por ejemplo), la memoria usada para contener los descriptores de esta llamada está disponible inmediatamente para volver a usarla después de la llamada.

Incluso las tablas descriptores tienen opciones en las que una aplicación puede permitir que la implementación pueda grabar el contenido de la tabla en la grabación de la lista de comandos (en lugar de desreferenciar el puntero de tabla en ejecución).

Resumen

Sombreador visible, solo escritura de CPU No sombreador visible, lectura y escritura de CPU
CBV, SRV, UAV
SAMPLER
RTV no
DSV no

 

Montones de descriptores