> ## 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

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 d'exécuter davantage de vagues, mais peuvent provoquer des conflits 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** sur 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/reference/graphics/d3d12_x/enums/d3d12xbox_shader_unit_disable_flags)

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

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

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

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

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/reference/graphics/d3d12_x/enums/d3d12xbox_shader_unit_disable_flags)

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.

*DSMaxWaves*\
Type : UINT

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

*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.

*DSMaxWavesForCuLocking*\
Type : UINT

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

*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 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 pipes) ne puisse l'utiliser jusqu'à ce que la nouvelle vague de cette étape soit enfin lancée. Cela permet de contrôler la « famine ».

Utilisez la fonction d'assistance inline [D3D12XboxInitializeDefaultGraphicsShaderLimits](/fr/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/reference/graphics/d3d12_x/functions/d3d12xboxinitializedefaultgraphicsshaderlimits)
* [SetGraphicsShaderLimitsX](/fr/reference/graphics/d3d12_x/interfaces/id3d12graphicscommandlist/methods/id3d12graphicscommandlist_setgraphicsshaderlimitsx)
* [XboxSetGraphicsShaderLimits](/fr/reference/graphics/d3d12_x/interfaces/cd3dx12xbox_pipeline_state_stream_parse_helper/methods/cd3dx12xbox_pipeline_state_stream_parse_helper_xboxsetgraphicsshaderlimits)
* [XboxSetGraphicsShaderLimits](/fr/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/reference/graphics/d3d12_x/structs/d3d12xbox_derived_graphics_state_desc)
* [D3D12XBOX\_EXTENDED\_GRAPHICS\_PIPELINE\_STATE\_DESC](/fr/reference/graphics/d3d12_x/structs/d3d12xbox_extended_graphics_pipeline_state_desc)
* [D3D12XBOX\_EXTENDED\_GRAPHICS\_PIPELINE\_STATE\_DESC](/fr/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/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)
- [D3D12_SHADER_CACHE_SESSION_DESC](/fr/reference/graphics/d3d12/structs/d3d12_shader_cache_session_desc_public.md)
- [D3D12_SHADER_RESOURCE_VIEW_DESC](/fr/reference/graphics/d3d12/structs/d3d12_shader_resource_view_desc_public.md)
- [ID3D12ShaderCacheSession::GetDesc](/fr/reference/graphics/d3d12/interfaces/id3d12shadercachesession/methods/id3d12shadercachesession_getdesc_public.md)
- [D3D12_SHADER_BYTECODE](/fr/reference/graphics/d3d12/structs/d3d12_shader_bytecode_public.md)
