Syntaxe
typedef enum D3D12_ROOT_SIGNATURE_FLAGS
{
D3D12_ROOT_SIGNATURE_FLAG_NONE = 0x0,
D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT = 0x1,
D3D12_ROOT_SIGNATURE_FLAG_DENY_VERTEX_SHADER_ROOT_ACCESS = 0x2,
D3D12_ROOT_SIGNATURE_FLAG_DENY_HULL_SHADER_ROOT_ACCESS = 0x4,
D3D12_ROOT_SIGNATURE_FLAG_DENY_DOMAIN_SHADER_ROOT_ACCESS = 0x8,
D3D12_ROOT_SIGNATURE_FLAG_DENY_GEOMETRY_SHADER_ROOT_ACCESS = 0x10,
D3D12_ROOT_SIGNATURE_FLAG_DENY_PIXEL_SHADER_ROOT_ACCESS = 0x20,
D3D12_ROOT_SIGNATURE_FLAG_ALLOW_STREAM_OUTPUT = 0x40,
D3D12_ROOT_SIGNATURE_FLAG_LOCAL_ROOT_SIGNATURE = 0x80,
D3D12_ROOT_SIGNATURE_FLAG_DENY_AMPLIFICATION_SHADER_ROOT_ACCESS = 0x100,
D3D12_ROOT_SIGNATURE_FLAG_DENY_MESH_SHADER_ROOT_ACCESS = 0x200,
D3D12_ROOT_SIGNATURE_FLAG_CBV_SRV_UAV_HEAP_DIRECTLY_INDEXED = 0x400,
D3D12_ROOT_SIGNATURE_FLAG_SAMPLER_HEAP_DIRECTLY_INDEXED = 0x800,
D3D12XBOX_ROOT_SIGNATURE_FLAG_FORCE_MEMORY_BASED_ABI = 0x01000000,
D3D12XBOX_ROOT_SIGNATURE_FLAG_FORCE_COMPUTE_2_SPILL_AREA = 0x02000000,
D3D12XBOX_ROOT_SIGNATURE_FLAG_RAYTRACING = D3D12XBOX_ROOT_SIGNATURE_FLAG_FORCE_MEMORY_BASED_ABI,
D3D12XBOX_ROOT_SIGNATURE_FLAG_INTERNAL_XDXR = D3D12XBOX_ROOT_SIGNATURE_FLAG_FORCE_MEMORY_BASED_ABI | D3D12XBOX_ROOT_SIGNATURE_FLAG_FORCE_COMPUTE_2_SPILL_AREA
} D3D12_ROOT_SIGNATURE_FLAGS
Constantes
| Constante | Description |
|---|---|
| D3D12_ROOT_SIGNATURE_FLAG_NONE | Indique le comportement par défaut. |
| D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT | L’application choisit d’utiliser l’assembleur d’entrée (Input Assembler), ce qui nécessite une disposition d’entrée définissant un ensemble de liaisons de tampons de sommets. L’omission de cet indicateur peut permettre d’économiser un espace d’argument racine sur certains matériels. Omettez cet indicateur si l’assembleur d’entrée n’est pas nécessaire, bien que l’optimisation soit mineure. |
| D3D12_ROOT_SIGNATURE_FLAG_DENY_VERTEX_SHADER_ROOT_ACCESS | Refuse au nuanceur de sommets l’accès à la signature racine. |
| D3D12_ROOT_SIGNATURE_FLAG_DENY_HULL_SHADER_ROOT_ACCESS | Refuse au nuanceur de coque l’accès à la signature racine. |
| D3D12_ROOT_SIGNATURE_FLAG_DENY_DOMAIN_SHADER_ROOT_ACCESS | Refuse au nuanceur de domaine l’accès à la signature racine. |
| D3D12_ROOT_SIGNATURE_FLAG_DENY_GEOMETRY_SHADER_ROOT_ACCESS | Refuse au nuanceur de géométrie l’accès à la signature racine. |
| D3D12_ROOT_SIGNATURE_FLAG_DENY_PIXEL_SHADER_ROOT_ACCESS | Refuse au nuanceur de pixels l’accès à la signature racine. |
| D3D12_ROOT_SIGNATURE_FLAG_ALLOW_STREAM_OUTPUT | L’application choisit d’utiliser la sortie de flux (Stream Output). L’omission de cet indicateur peut permettre d’économiser un espace d’argument racine sur certains matériels. Omettez cet indicateur si la sortie de flux n’est pas nécessaire, bien que l’optimisation soit mineure. |
| D3D12_ROOT_SIGNATURE_FLAG_LOCAL_ROOT_SIGNATURE | La signature racine doit être utilisée avec des nuanceurs de lancer de rayons pour définir des liaisons de ressources provenant d’enregistrements de nuanceur dans des tables de nuanceurs. Cet indicateur ne peut être combiné avec aucun autre indicateur de signature racine, ceux-ci étant tous liés au pipeline graphique. L’absence de cet indicateur signifie que la signature racine peut être utilisée pour le graphisme ou le calcul, la version de calcul étant également partagée avec la signature racine globale du lancer de rayons. |
| D3D12_ROOT_SIGNATURE_FLAG_DENY_AMPLIFICATION_SHADER_ROOT_ACCESS | Refuse au nuanceur d’amplification l’accès à la signature racine. |
| D3D12_ROOT_SIGNATURE_FLAG_DENY_MESH_SHADER_ROOT_ACCESS | Refuse au nuanceur de maillage l’accès à la signature racine. |
| D3D12_ROOT_SIGNATURE_FLAG_CBV_SRV_UAV_HEAP_DIRECTLY_INDEXED | Les nuanceurs sont autorisés à indexer directement le tas de descripteurs CBV/SRV/UAV, à l’aide de la variable intégrée ResourceDescriptorHeap. |
| D3D12_ROOT_SIGNATURE_FLAG_SAMPLER_HEAP_DIRECTLY_INDEXED | Les nuanceurs sont autorisés à indexer directement le tas de descripteurs d’échantillonneurs, à l’aide de la variable intégrée SamplerDescriptorHeap. |
| D3D12XBOX_ROOT_SIGNATURE_FLAG_FORCE_MEMORY_BASED_ABI | Force tous les paramètres de la signature racine à entrer dans le nuanceur via la mémoire, c’est-à-dire « shmem » ; aucun registre de données utilisateur n’est donc utilisé dans ce cas. Optimisation potentielle pour les sections limitées par le processeur de commandes (Command Processor). Le CE gère la mémoire automatiquement. |
| D3D12XBOX_ROOT_SIGNATURE_FLAG_FORCE_COMPUTE_2_SPILL_AREA | Force la signature racine à utiliser la « zone de débordement alternative » pour les nuanceurs de calcul. Utilisé en interne pour DXR afin de préserver les paramètres racine définis par le titre. |
| D3D12XBOX_ROOT_SIGNATURE_FLAG_RAYTRACING | Obligatoire sur XBOX pour toute signature racine qui sera utilisée avec DispatchRays ou d’autres API d’extension DXR. Force en interne D3D12XBOX_ROOT_SIGNATURE_FLAG_FORCE_MEMORY_BASED_ABI, ce qui peut entraîner un ralentissement minime pour les nuanceurs non DXR qui partagent la même signature racine. Pour de meilleurs résultats, utilisez une signature racine dédiée aux opérations de lancer de rayons. |
| D3D12XBOX_ROOT_SIGNATURE_FLAG_INTERNAL_XDXR | Indicateur à usage interne uniquement. |
