Información general sobre las tablas de descriptores

Cada tabla de descriptores almacena descriptores de uno o varios tipos: SRVs, UAV, 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.

Hacer referencia a tablas de descriptores

La canalización de gráficos, a través de la firma raíz, obtiene acceso a los recursos haciendo referencia a tablas descriptor por índice.

En realidad, una tabla de descriptores es solo un sub rango de un montón de descriptores. Los montones de descriptores representan la asignación de memoria subyacente para una colección de descriptores. Puesto que la asignación de memoria es una propiedad de crear un montón de descriptores, se garantiza que definir una tabla de descriptores fuera de uno sea tan barato como identificar una región del montón en el hardware. Las tablas descriptores no necesitan crearse ni destruirse en el nivel de API: se identifican simplemente con controladores como desplazamiento y tamaño fuera de un montón siempre que se hace referencia.

Sin duda, es posible que una aplicación defina tablas de descriptores muy grandes cuando sus sombreadores quieren la libertad de seleccionar entre un amplio conjunto de descriptores disponibles (a menudo haciendo referencia a texturas) sobre la marcha (quizás impulsados por datos materiales).

La firma raíz hace referencia a la entrada de tabla descriptor con una referencia al montón, la ubicación inicial de la tabla (un desplazamiento desde el principio del montón) y la longitud (en entradas) de la tabla. En la imagen siguiente se muestran estos conceptos: los punteros de tabla descriptor de la firma raíz y los descriptores del montón de descriptores que hacen referencia a los datos de textura completa o de búfer en un montón (en el caso de una textura, el montón predeterminado).

tablas descriptores