Compartir a través de


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
Estos valores distinguen mayúsculas de minúsculas.

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

Consulte también

ID3D12StateObjectProperties