> ## 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_CMDLIST_DRIVER_HINT (consoles XBOX Series)

> Indications passées à une liste de commandes afin de modifier le comportement interne du pilote

Indications passées à une liste de commandes afin de modifier le comportement interne du pilote. À utiliser avec l'API de liste de commandes [DriverHintX](/fr/reference/graphics/d3d12_xs/interfaces/ID3D12GraphicsCommandList/methods/id3d12graphicscommandlist_driverhintx).

## Syntaxe

```cpp theme={null}
enum D3D12XBOX_CMDLIST_DRIVER_HINT    
{  
    D3D12XBOX_CMDLIST_DRIVER_HINT_BEGIN_ALTERNATIVE_COMPUTE_PSO_RENDERING,  
    D3D12XBOX_CMDLIST_DRIVER_HINT_END_ALTERNATIVE_COMPUTE_PSO_RENDERING,
    D3D12XBOX_CMDLIST_DRIVER_HINT_DONT_SYNC_ON_CLEAR,
    D3D12XBOX_CMDLIST_DRIVER_HINT_DONT_SYNC_ON_COPY,
    D3D12XBOX_CMDLIST_DRIVER_HINT_DONT_SYNC_ON_CLEAR_OR_COPY  
}  
```

## Constantes

| Constante | Description |
| - | - |
| D3D12XBOX\_CMDLIST\_DRIVER\_HINT\_BEGIN\_ALTERNATIVE\_COMPUTE\_PSO\_RENDERING | Usage interne uniquement |
| D3D12XBOX\_CMDLIST\_DRIVER\_HINT\_END\_ALTERNATIVE\_COMPUTE\_PSO\_RENDERING | Usage interne uniquement |
| D3D12XBOX\_CMDLIST\_DRIVER\_HINT\_DONT\_SYNC\_ON\_CLEAR | Si elle est appliquée, le pilote n'insère aucune synchronisation de pipeline ni aucun vidage de cache pendant les opérations d'effacement |
| D3D12XBOX\_CMDLIST\_DRIVER\_HINT\_DONT\_SYNC\_ON\_COPY | Si elle est appliquée, le pilote n'insère aucune synchronisation de pipeline ni aucun vidage de cache pendant les opérations de copie |
| D3D12XBOX\_CMDLIST\_DRIVER\_HINT\_DONT\_SYNC\_ON\_CLEAR\_OR\_COPY | Combinaison des deux indications ci-dessus |

## Notes

```cpp theme={null}
D3D12XBOX_CMDLIST_DRIVER_HINT_DONT_SYNC_ON_CLEAR
D3D12XBOX_CMDLIST_DRIVER_HINT_DONT_SYNC_ON_COPY
D3D12XBOX_CMDLIST_DRIVER_HINT_DONT_SYNC_ON_CLEAR_OR_COPY
```

Les appels d'API D3D12 permettant d'effacer ou de copier des ressources nécessitent en interne une synchronisation pour garantir l'exactitude, en raison des risques de lecture après écriture (RAW, Read After Write). Par exemple, le pilote peut choisir d'effectuer l'effacement d'une cible de rendu à l'aide d'une opération Dispatch pour des raisons d'efficacité ; dans ce cas, tout travail de nuanceur de pixels en attente doit être vidé, car le pilote ne sait pas si des dessins en cours écrivent dans la cible de rendu en question. Le résultat final est que tout le travail d'effacement/copie est sérialisé sur le GPU. L'impact sur les performances de cette approche prudente du pilote peut être important, en particulier lorsque l'application souhaite effacer/copier de nombreuses ressources à la suite.

Dans de nombreux cas, la synchronisation peut être omise sans risque, car le développeur de l'application sait que le risque RAW n'est pas présent dans son scénario particulier. Dans ce cas, l'application peut utiliser les indications ci-dessus pour placer la liste de commandes dans un mode où le pilote n'insère pas la synchronisation dans le flux de commandes. L'appel de l'API d'indication avec l'un de ces indicateurs dans le champ feature et une valeur non nulle dans le champ value place la liste de commandes en « mode sans synchronisation » ; à l'inverse, une valeur de 0 rétablit le fonctionnement normal de la liste de commandes. Les listes de commandes reviennent également au fonctionnement normal lors des appels à Reset.

Le pilote insère la synchronisation qu'il insérerait habituellement lors de l'appel Clear/Copy pendant l'appel à [DriverHintX](/fr/reference/graphics/d3d12_xs/interfaces/ID3D12GraphicsCommandList/methods/id3d12graphicscommandlist_driverhintx), afin d'amortir le coût pour de longues séquences d'effacements/copies.

L'utilisation attendue est la suivante :

```cpp theme={null}
    pList->DriverHintX(D3D12XBOX_CMDLIST_DRIVER_HINT_DONT_SYNC_ON_CLEAR_OR_COPY, 1); // Driver will synchronize here
        pList->ClearRenderTargetView(...);
        pList->ClearRenderTargetView(...);
        pList->ClearDepthStencilView(...);
        pList->CopyResource(...);
        etc
    pList->DriverHintX(D3D12XBOX_CMDLIST_DRIVER_HINT_DONT_SYNC_ON_CLEAR_OR_COPY, 0); // Driver also synchronize here, safe to use clear/copied resources without hazard
```

## Configuration requise

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

## Voir aussi

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


## Related topics

- [D3D12_SERIALIZED_DATA_TYPE (consoles XBOX Series)](/fr/reference/graphics/d3d12/enums/d3d12_serialized_data_type_public.md)
- [D3D12_SHADER_CACHE_KIND_FLAGS (consoles XBOX Series)](/fr/reference/graphics/d3d12/enums/d3d12_shader_cache_kind_flags_public.md)
- [ID3D12Device10 (consoles XBOX Series)](/fr/reference/graphics/d3d12/interfaces/id3d12device10/id3d12device10_public.md)
- [ID3D12Device5 (consoles XBOX Series)](/fr/reference/graphics/d3d12/interfaces/id3d12device5/id3d12device5_public.md)
- [ID3D12Device9 (consoles XBOX Series)](/fr/reference/graphics/d3d12/interfaces/id3d12device9/id3d12device9_public.md)
