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

> Dicas passadas para uma lista de comandos para alterar o comportamento interno do driver

Dicas passadas para uma lista de comandos para alterar o comportamento interno do driver. Devem ser usadas com a API de lista de comandos [DriverHintX](/pt-BR/reference/graphics/d3d12_xs/interfaces/ID3D12GraphicsCommandList/methods/id3d12graphicscommandlist_driverhintx).

## Sintaxe

```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 | Descrição |
| - | - |
| D3D12XBOX\_CMDLIST\_DRIVER\_HINT\_BEGIN\_ALTERNATIVE\_COMPUTE\_PSO\_RENDERING | Somente para uso interno |
| D3D12XBOX\_CMDLIST\_DRIVER\_HINT\_END\_ALTERNATIVE\_COMPUTE\_PSO\_RENDERING | Somente para uso interno |
| D3D12XBOX\_CMDLIST\_DRIVER\_HINT\_DONT\_SYNC\_ON\_CLEAR | Se aplicada, o driver não inserirá nenhuma sincronização de pipeline nem liberação de cache durante operações de limpeza |
| D3D12XBOX\_CMDLIST\_DRIVER\_HINT\_DONT\_SYNC\_ON\_COPY | Se aplicada, o driver não inserirá nenhuma sincronização de pipeline nem liberação de cache durante operações de cópia |
| D3D12XBOX\_CMDLIST\_DRIVER\_HINT\_DONT\_SYNC\_ON\_CLEAR\_OR\_COPY | A combinação das duas dicas acima |

## Comentários

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

As chamadas da API D3D12 para limpar ou copiar recursos exigem internamente sincronização para garantir a correção, devido a riscos de leitura após gravação (RAW). Por exemplo, o driver pode optar por executar a limpeza de um destino de renderização usando uma operação Dispatch por questões de eficiência; nesse caso, qualquer trabalho pendente do sombreador de pixel precisa ser liberado, pois o driver não sabe se há desenhos em andamento gravando no destino de renderização em questão. O resultado final é que todo o trabalho de limpeza/cópia será serializado na GPU. O impacto no desempenho de o driver precisar ser conservador pode ser grande, especialmente quando o aplicativo deseja limpar/copiar muitos recursos em sequência.

Em muitos casos, a sincronização pode ser omitida com segurança, porque o desenvolvedor do aplicativo sabe que o risco RAW não está presente em seu cenário específico. Nesse caso, o aplicativo pode usar as dicas acima para colocar a lista de comandos em um modo no qual a sincronização não será inserida no fluxo de comandos pelo driver. Chamar a API de dica com um desses sinalizadores no campo feature e um valor diferente de zero no campo value colocará a lista de comandos no 'modo sem sincronização' e, inversamente, um valor 0 retornará a lista de comandos à operação normal. As listas de comandos também retornarão à operação normal durante as chamadas a Reset.

O driver inserirá a sincronização que normalmente inseriria durante a chamada de limpeza/cópia durante a chamada a [DriverHintX](/pt-BR/reference/graphics/d3d12_xs/interfaces/ID3D12GraphicsCommandList/methods/id3d12graphicscommandlist_driverhintx), para permitir que o custo seja amortizado em longas sequências de limpezas/cópias.

O uso esperado é o seguinte:

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

## Requisitos

**Cabeçalho:** d3d12\_xs.h\
**Plataformas compatíveis**: consoles XBOX Series

## Confira também

[d3d12\_xs](/pt-BR/reference/graphics/d3d12_xs/d3d12_xs_members)


## Related topics

- [D3D12_SHADER_CACHE_KIND_FLAGS (XBOX Series consoles)](/reference/graphics/d3d12/enums/d3d12_shader_cache_kind_flags_public.md)
- [D3D12_BACKGROUND_PROCESSING_MODE (XBOX Series consoles)](/reference/graphics/d3d12/enums/d3d12_background_processing_mode_public.md)
- [D3D12_SERIALIZED_DATA_TYPE (XBOX Series consoles)](/reference/graphics/d3d12/enums/d3d12_serialized_data_type_public.md)
- [D3D12_RAYTRACING_SHADER_CONFIG (XBOX Series consoles)](/reference/graphics/d3d12/structs/d3d12_raytracing_shader_config_public.md)
- [D3D12_RAYTRACING_PIPELINE_CONFIG (XBOX Series consoles)](/reference/graphics/d3d12/structs/d3d12_raytracing_pipeline_config_public.md)
