Método ID3D12StateObjectProperties::GetShaderStackSize (d3d12.h)
Obtiene la cantidad de memoria de pila necesaria para invocar un sombreador de raytracing en HLSL.
Sintaxis
UINT64 GetShaderStackSize(
LPCWSTR pExportName
);
Parámetros
pExportName
Punto de entrada del sombreador en el objeto de estado para el que se va a recuperar el tamaño de la pila. Para los grupos de aciertos, se debe especificar un sombreador individual dentro del grupo de aciertos mediante la sintaxis :
hitGroupName::shaderType
Donde hitGroupName es el nombre de punto de entrada del grupo de aciertos y shaderType es uno de los siguientes:
- intersección
- anyhit
- closesthit
Un valor de ejemplo es: "myTreeLeafHitGroup::anyhit".
Valor devuelto
Cantidad de memoria de pila, en bytes, necesaria para invocar el sombreador. Si el sombreador no se resuelve completamente en el objeto de estado, o el sombreador es desconocido o de un tipo para el que un tamaño de pila no es relevante, como un grupo de aciertos, se 0xffffffff el valor devuelto. El valor de 0xffffffff de 32 bits se usa para el valor devuelto UINT64 para asegurarse de que los valores devueltos incorrectos no se pierden cuando se suman con otros valores como parte del cálculo de un tamaño general de pila de canalización.
Comentarios
Solo es necesario llamar a este método si la aplicación quiere configurar el tamaño de pila mediante una llamada a SetPipelineStackSize, en lugar de confiar en el tamaño de pila predeterminado conservador. Este método solo es válido para sombreadores de generación de rayos, grupos de llamadas, sombreadores de errores y sombreadores invocables. Incluso los sombreadores de generación de rayos pueden devolver un valor distinto de cero a pesar de estar en la parte inferior de la pila.
Para los grupos de aciertos, se debe consultar el tamaño de la pila para los sombreadores individuales que lo componen (sombreadores de intersección, sombreadores de aciertos, sombreadores de aciertos más cercanos), ya que es probable que cada uno tenga un requisito de tamaño de pila diferente. El tamaño de la pila no se puede consultar directamente en estos sombreadores individuales, ya que la forma en que se compilan puede influir en el grupo de aciertos general que los contiene. El parámetro pExportName incluye sintaxis para identificar sombreadores individuales dentro de un grupo de aciertos.
Se puede llamar a esta API en objetos de estado de colección o en objetos de estado de canalización de raytracing.
Requisitos
Plataforma de destino | Windows |
Encabezado | d3d12.h |
Library | D3D12.lib |
Archivo DLL | D3D12.dll |