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
Où 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
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 |