Syntaxe
typedef enum D3D12_STATE_OBJECT_FLAGS
{
D3D12_STATE_OBJECT_FLAG_NONE = 0,
D3D12_STATE_OBJECT_FLAG_ALLOW_LOCAL_DEPENDENCIES_ON_EXTERNAL_DEFINITIONS = 1,
D3D12_STATE_OBJECT_FLAG_ALLOW_EXTERNAL_DEPENDENCIES_ON_LOCAL_DEFINITIONS = 2
} D3D12_STATE_OBJECT_FLAGS
Constantes
| Constante | Description |
|---|---|
| D3D12_STATE_OBJECT_FLAG_NONE | Aucune contrainte d’objet d’état. |
| D3D12_STATE_OBJECT_FLAG_ALLOW_LOCAL_DEPENDENCIES_ON_EXTERNAL_DEFINITIONS | Cet indicateur s’applique uniquement aux objets d’état de type collection. Sinon, cet indicateur est ignoré. Les exportations de cette collection peuvent avoir des références non résolues (dépendances) qui devraient être résolues (définies) lorsque la collection est incluse dans un objet d’état conteneur, tel qu’un objet d’état de pipeline de lancer de rayons (RTPSO). Cela inclut la dépendance à des associations de sous-objets définies en externe pour associer un sous-objet externe (p. ex., une signature racine) à une exportation locale. En l’absence de cet indicateur, toutes les exportations de cette collection doivent avoir leurs dépendances entièrement résolues localement, y compris toutes les associations de sous-objets nécessaires définies localement. Les implémentations et pilotes avancés disposeront de suffisamment d’informations pour compiler le code de la collection sans avoir à conserver de code non compilé (sauf si l’indicateur D3D12_STATE_OBJECT_FLAG_ALLOW_EXTERNAL_DEPENDENCIES_ON_LOCAL_DEFINITIONS est défini), de sorte que lorsque la collection est utilisée dans un objet d’état conteneur (p. ex., RTPSO), le pilote n’a qu’un travail minimal à effectuer, idéalement une liaison « peu coûteuse » tout au plus. |
| D3D12_STATE_OBJECT_FLAG_ALLOW_EXTERNAL_DEPENDENCIES_ON_LOCAL_DEFINITIONS | Cet indicateur s’applique uniquement aux objets d’état de type collection. Sinon, cet indicateur est ignoré. Si cette collection est incluse dans un autre objet d’état (p. ex., RTPSO), les nuanceurs ou fonctions dans le reste de l’objet d’état conteneur peuvent dépendre (p. ex., appeler) des exportations de cette collection. En l’absence de cet indicateur (par défaut), les exportations de cette collection ne peuvent pas être référencées directement par d’autres parties des objets d’état conteneurs (p. ex., RTPSO). Cela peut réduire légèrement l’empreinte mémoire de la collection, puisque les pilotes n’ont pas besoin de conserver du code non compilé dans la collection au cas où il serait appelé par une fonction externe qui compilerait alors tout le code ensemble. Cela dit, si toutes les associations de sous-objets nécessaires n’ont pas été définies localement pour le code de cette collection, le pilote pourrait ne pas encore être en mesure de compiler le code de nuanceur et pourrait quand même devoir conserver du code non compilé. Une association de sous-objet définie en externe qui associe un sous-objet externe à une exportation locale ne compte pas comme une dépendance externe sur une définition locale; la présence ou l’absence de cet indicateur n’a donc aucune incidence sur l’autorisation de l’association. En revanche, si la collection actuelle définit une association de sous-objet pour un sous-objet défini localement vers une exportation externe (p. ex., un nuanceur), cela compte comme une dépendance externe sur une définition locale et cet indicateur doit être défini. Indépendamment de la présence ou de l’absence de cet indicateur, les points d’entrée de nuanceur (tels que les groupes d’impact ou les nuanceurs d’échec) de la collection sont visibles en tant que points d’entrée pour un objet d’état conteneur (p. ex., RTPSO) s’ils sont exportés par celui-ci. Dans le cas d’un RTPSO, les points d’entrée exportés peuvent être utilisés dans les tables de nuanceurs pour le lancer de rayons. |
Configuration requise
En-tête : d3d12_xs.h ou d3d12_x.hBibliothèque : d3d12_xs.lib ou d3d12_x.lib
Plateformes prises en charge : consoles XBOX Series et famille XBOX One
