> ## 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 (famille XBOX One)

> D3D12XBOX_GRAPHICS_SHADER_LIMITS_DESC (consoles de la famille XBOX One) — Définit les limites d'un nuanceur graphique. Référence de l'API graphique Direct3D 12 pour le développement 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;  
    D3D12XBOX_SHADER_UNIT_DISABLE_FLAGS DSDisableFlags;  
    D3D12XBOX_SHADER_UNIT_DISABLE_FLAGS GSDisableFlags;  
    D3D12XBOX_SHADER_UNIT_DISABLE_FLAGS PSDisableFlags;  
    UINT VSMaxWaves;  
    UINT HSMaxWaves;  
    UINT DSMaxWaves;  
    UINT GSMaxWaves;  
    UINT PSMaxWaves;  
    UINT VSMaxWavesForCuLocking;  
    UINT HSMaxWavesForCuLocking;  
    UINT DSMaxWavesForCuLocking;  
    UINT GSMaxWavesForCuLocking;  
    UINT PSMaxWavesForCuLocking;  
} D3D12XBOX_GRAPHICS_SHADER_LIMITS_DESC  
```

### Membres

*MaxWavesWithLateAllocParameterCache*\
Type : UINT

Indique 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 l'exécution d'un plus grand nombre de vagues, mais peuvent provoquer 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 vagues, 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 éviter 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 performances obtenus en définissant **MaxWavesWithLateAllocParameterCache**, l'impact sur les performances de l'opération de masquage est négligeable.

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

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

*DSDisableFlags*\
Type : [D3D12XBOX\_SHADER\_UNIT\_DISABLE\_FLAGS](/fr-CA/reference/graphics/d3d12_x/enums/d3d12xbox_shader_unit_disable_flags)

Champ de bits qui indique les unités de calcul à désactiver pour le nuanceur de domaine.

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

Champ de bits qui indique 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_x/enums/d3d12xbox_shader_unit_disable_flags)

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

*VSMaxWaves*\
Type : UINT

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

*HSMaxWaves*\
Type : UINT

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

*DSMaxWaves*\
Type : UINT

Indique le nombre maximal de vagues DS autorisées à s'exécuter simultanément sur le GPU.

*GSMaxWaves*\
Type : UINT

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

*PSMaxWaves*\
Type : UINT

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

*VSMaxWavesForCuLocking*\
Type : UINT

Indique le nombre maximal de vagues VS permettant le verrouillage des CU.

*HSMaxWavesForCuLocking*\
Type : UINT

Indique le nombre maximal de vagues HS permettant le verrouillage des CU.

*DSMaxWavesForCuLocking*\
Type : UINT

Indique le nombre maximal de vagues DS permettant le verrouillage des CU.

*GSMaxWavesForCuLocking*\
Type : UINT

Indique le nombre maximal de vagues GS permettant le verrouillage des CU.

*PSMaxWavesForCuLocking*\
Type : UINT

Indique le nombre maximal de vagues PS permettant 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 qu'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 canaux) 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.

Les méthodes et structures suivantes utilisent cette structure :

* [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\_x.h

**Plateformes prises en charge :** famille XBOX One

## Voir aussi

[d3d12\_x](/fr-CA/reference/graphics/d3d12_x/d3d12_x_members)


## Related topics

- [Répertoire des rubriques NDA : liens actifs vers Microsoft Learn](/fr/nda/nda-topic-directory.md)
- [NDA topic directory - live Microsoft Learn links](/nda/nda-topic-directory.md)
- [Diretório de tópicos NDA: links ativos do Microsoft Learn](/pt-BR/nda/nda-topic-directory.md)
- [Directorio de temas NDA: enlaces activos a Microsoft Learn](/es/nda/nda-topic-directory.md)
- [NDA 主题目录 - Microsoft Learn 在线链接](/zh-CN/nda/nda-topic-directory.md)
