Partager via


ID3D12StateObjectProperties::GetShaderStackSize, méthode (d3d12.h)

Obtient la quantité de mémoire de pile nécessaire pour appeler un nuanceur de raytracing dans HLSL.

Syntaxe

UINT64 GetShaderStackSize(
  LPCWSTR pExportName
);

Paramètres

pExportName

Point d’entrée du nuanceur dans l’objet d’état pour lequel récupérer la taille de la pile. Pour les groupes de correspondances, un nuanceur individuel au sein du groupe de correspondances doit être spécifié à l’aide de la syntaxe :

hitGroupName::shaderType

hitGroupName est le nom du point d’entrée pour le groupe d’accès et shaderType est l’un des éléments suivants :

  • intersection
  • anyhit
  • closesthit
Ces valeurs respectent toutes la casse.

Un exemple de valeur est : « myTreeLeafHitGroup::anyhit ».

Valeur retournée

Quantité de mémoire de pile, en octets, nécessaire pour appeler le nuanceur. Si le nuanceur n’est pas entièrement résolu dans l’objet d’état, ou si le nuanceur est inconnu ou d’un type pour lequel une taille de pile n’est pas pertinente, tel qu’un groupe de correspondances, la valeur de retour est 0xffffffff. La valeur de 0xffffffff 32 bits est utilisée pour la valeur de retour UINT64 afin de s’assurer que les valeurs de retour incorrectes ne sont pas perdues lorsqu’elles sont additionnées à d’autres valeurs dans le cadre du calcul d’une taille de pile de pipeline globale.

Notes

Cette méthode doit être appelée uniquement si l’application souhaite configurer la taille de la pile en appelant SetPipelineStackSize, au lieu de s’appuyer sur la taille de pile par défaut conservatrice. Cette méthode est uniquement valide pour les nuanceurs de génération de rayons, les groupes de correspondances, les nuanceurs manquants et les nuanceurs pouvant être appelé. Même les nuanceurs de génération de rayons peuvent retourner une valeur différente de zéro, même s’ils se trouvent au bas de la pile.

Pour les groupes de correspondances, la taille de la pile doit être interrogée pour les nuanceurs individuels qui la composent (nuanceurs d’intersection, nuanceurs d’accès, nuanceurs de correspondance les plus proches), car chacun a probablement une exigence de taille de pile différente. La taille de la pile ne peut pas être interrogée directement sur ces nuanceurs individuels, car la façon dont ils sont compilés peut être influencée par le groupe de correspondances global qui les contient. Le paramètre pExportName inclut la syntaxe permettant d’identifier des nuanceurs individuels au sein d’un groupe de correspondances.

Cette API peut être appelée sur des objets d’état de collection ou des objets d’état de pipeline de raytracing.

Spécifications

   
Plateforme cible Windows
En-tête d3d12.h
Bibliothèque D3D12.lib
DLL D3D12.dll

Voir aussi

ID3D12StateObjectProperties