> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# D3D12XBOX_GRAPHICS_SHADER_LIMITS_DESC (consoles XBOX Series)

> D3D12XBOX_GRAPHICS_SHADER_LIMITS_DESC (consoles XBOX Series) — Définit les limites d'un nuanceur graphique. Référence de l'API graphique Direct3D 12 pour le développement de jeux XBOX.

Définit les limites d'un nuanceur graphique.

## Syntaxe

```cpp theme={null}
typedef struct D3D12XBOX_GRAPHICS_SHADER_LIMITS_DESC {  
    UINT MaxWavesWithLateAllocParameterCache;  
    D3D12XBOX_SHADER_UNIT_DISABLE_FLAGS VSDisableFlags;  
    UINT reserved0;  
    D3D12XBOX_SHADER_UNIT_DISABLE_FLAGS GSDisableFlags;  
    D3D12XBOX_SHADER_UNIT_DISABLE_FLAGS PSDisableFlags;  
    UINT VSMaxWaves;  
    UINT HSMaxWaves;  
    UINT reserved1;  
    UINT GSMaxWaves;  
    UINT PSMaxWaves;  
    UINT VSMaxWavesForCuLocking;  
    UINT HSMaxWavesForCuLocking;  
    UINT reserved2;  
    UINT GSMaxWavesForCuLocking;  
    UINT PSMaxWavesForCuLocking;  
} D3D12XBOX_GRAPHICS_SHADER_LIMITS_DESC  
```

### Membres

*MaxWavesWithLateAllocParameterCache*\
Type : UINT

Spécifie le nombre maximal de vagues de dernière étape autorisées à s'exécuter sans allouer d'espace dans le cache de paramètres à allocation tardive. Des valeurs plus élevées permettent à davantage de vagues de s'exécuter, mais peuvent causer de la contention dans les unités SIMD (Single Instruction Multiple Data), car les nuanceurs se bloquent sur la première instruction *exp* jusqu'à ce que de l'espace soit disponible, ce qui peut monopoliser des emplacements de vague, des GPR et d'autres ressources partagées.

La « dernière étape » est l'étape qui précède le nuanceur de pixels : VS, DS ou GS. Pour GS, cela n'affecte que la partie pass-through du nuanceur.

Pour trouver les paramètres optimaux pour différentes parties d'une scène, envisagez d'utiliser les expériences Dr. PIX.

Définir **MaxWavesWithLateAllocParameterCache** à une valeur supérieure à 22 peut entraîner des interblocages du GPU. Si ces interblocages sont causés par une transition du pipeline GPU, ils peuvent être rares et difficiles à reproduire. Pour prévenir de tels interblocages avec des valeurs élevées du membre **MaxWavesWithLateAllocParameterCache**, assurez-vous que le membre **VSDisableCUMask** a une valeur non nulle, afin qu'au moins une unité de calcul (CU) n'exécute pas de nuanceurs de sommets, ce qui empêche les interblocages. En général, par rapport aux gains de performance obtenus en définissant **MaxWavesWithLateAllocParameterCache**, l'incidence de l'opération de masquage sur les performances est négligeable.

*VSDisableFlags*\
Type : [D3D12XBOX\_SHADER\_UNIT\_DISABLE\_FLAGS](/fr-CA/reference/graphics/d3d12_xs/enums/d3d12xbox_shader_unit_disable_flags_xs)

Champ de bits qui spécifie les unités de calcul à désactiver pour le nuanceur de sommets.

*reserved0*\
Type : UINT

Réservé.

*GSDisableFlags*\
Type : [D3D12XBOX\_SHADER\_UNIT\_DISABLE\_FLAGS](/fr-CA/reference/graphics/d3d12_xs/enums/d3d12xbox_shader_unit_disable_flags_xs)

Champ de bits qui spécifie les unités de calcul à désactiver pour le nuanceur de géométrie.

*PSDisableFlags*\
Type : [D3D12XBOX\_SHADER\_UNIT\_DISABLE\_FLAGS](/fr-CA/reference/graphics/d3d12_xs/enums/d3d12xbox_shader_unit_disable_flags_xs)

Champ de bits qui spécifie les unités de calcul à désactiver pour le nuanceur de pixels.

*VSMaxWaves*\
Type : UINT

Spécifie le nombre maximal de vagues VS autorisées à s'exécuter simultanément sur le GPU.

*HSMaxWaves*\
Type : UINT

Spécifie le nombre maximal de vagues HS autorisées à s'exécuter simultanément sur le GPU.

*reserved1*\
Type : UINT

Réservé.

*GSMaxWaves*\
Type : UINT

Spécifie le nombre maximal de vagues GS autorisées à s'exécuter simultanément sur le GPU.

*PSMaxWaves*\
Type : UINT

Spécifie le nombre maximal de vagues PS autorisées à s'exécuter simultanément sur le GPU.

*VSMaxWavesForCuLocking*\
Type : UINT

Spécifie le nombre maximal de vagues VS qui permettent le verrouillage des CU.

*HSMaxWavesForCuLocking*\
Type : UINT

Spécifie le nombre maximal de vagues HS qui permettent le verrouillage des CU.

*reserved2*\
Type : UINT

Réservé.

*GSMaxWavesForCuLocking*\
Type : UINT

Spécifie le nombre maximal de vagues GS qui permettent le verrouillage des CU.

*PSMaxWavesForCuLocking*\
Type : UINT

Spécifie le nombre maximal de vagues PS qui permettent le verrouillage des CU.

## Remarques

Avec les paramètres **MaxWavesForCuLocking**, si le nombre de vagues en cours d'exécution est inférieur à ce nombre maximal, et si une nouvelle vague est prête mais ne peut être planifiée nulle part, le GPU « verrouille » une unité de calcul (CU) de sorte qu'aucune nouvelle vague provenant d'autres étapes (ou pipes) ne puisse l'utiliser jusqu'à ce que la nouvelle vague de cette étape soit finalement lancée. Cela aide à contrôler la « famine ».

Utilisez la fonction d'assistance inline [D3D12XboxInitializeDefaultGraphicsShaderLimits](/fr-CA/reference/graphics/d3d12_x/functions/d3d12xboxinitializedefaultgraphicsshaderlimits) pour initialiser une structure **D3D12XBOX\_GRAPHICS\_SHADER\_LIMITS\_DESC** avec les valeurs par défaut.

* [D3D12XboxInitializeDefaultGraphicsShaderLimits](/fr-CA/reference/graphics/d3d12_x/functions/d3d12xboxinitializedefaultgraphicsshaderlimits)
* [SetGraphicsShaderLimitsX](/fr-CA/reference/graphics/d3d12_x/interfaces/id3d12graphicscommandlist/methods/id3d12graphicscommandlist_setgraphicsshaderlimitsx)
* [XboxSetGraphicsShaderLimits](/fr-CA/reference/graphics/d3d12_x/interfaces/cd3dx12xbox_pipeline_state_stream_parse_helper/methods/cd3dx12xbox_pipeline_state_stream_parse_helper_xboxsetgraphicsshaderlimits)
* [XboxSetGraphicsShaderLimits](/fr-CA/reference/graphics/d3d12_x/interfaces/cd3dx12xbox_pipeline_state_stream_parse_helper/methods/cd3dx12xbox_pipeline_state_stream_parse_helper_xboxsetgraphicsshaderlimits)
* [D3D12XBOX\_DERIVED\_GRAPHICS\_STATE\_DESC](/fr-CA/reference/graphics/d3d12_x/structs/d3d12xbox_derived_graphics_state_desc)
* [D3D12XBOX\_EXTENDED\_GRAPHICS\_PIPELINE\_STATE\_DESC](/fr-CA/reference/graphics/d3d12_x/structs/d3d12xbox_extended_graphics_pipeline_state_desc)
* [D3D12XBOX\_EXTENDED\_GRAPHICS\_PIPELINE\_STATE\_DESC](/fr-CA/reference/graphics/d3d12_x/enums/d3d12xbox_extended_graphics_pipeline_state_type)

## Configuration requise

**En-tête :** d3d12\_xs.h\
**Plateformes prises en charge** : consoles XBOX Series

## Voir aussi

[d3d12\_xs](/fr-CA/reference/graphics/d3d12_xs/d3d12_xs_members)


## Related topics

- [Répertoire des rubriques NDA : liens actifs vers Microsoft Learn](/fr/nda/nda-topic-directory.md)
- [Diretório de tópicos NDA: links ativos do Microsoft Learn](/pt-BR/nda/nda-topic-directory.md)
- [D3D12_DISPATCH_RAYS_DESC (XBOX Series consoles)](/reference/graphics/d3d12/structs/d3d12_dispatch_rays_desc_public.md)
- [D3D12_HIT_GROUP_DESC (XBOX Series consoles)](/reference/graphics/d3d12/structs/d3d12_hit_group_desc_public.md)
- [D3D12_RAYTRACING_INSTANCE_DESC (XBOX Series consoles)](/reference/graphics/d3d12/structs/d3d12_raytracing_instance_desc_public.md)
