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

# Visão geral do DirectCapture

> O DirectCapture reduz a latência do servidor do XBOX Game Streaming em até 72 ms ao capturar quadros compatíveis por software, em vez de usar o hardware de exibição.

## DirectCapture

O DirectCapture é um recurso da plataforma XBOX Game Streaming que minimiza automaticamente a latência do servidor para quadros compatíveis. A API [XGameStreamingGetDisplayDetails](/pt-BR/reference/system/xgamestreaming/functions/xgamestreaminggetdisplaydetails) permite consultar os requisitos de quadros compatíveis para que você possa garantir que seu jogo aproveite o DirectCapture. Os requisitos de um quadro compatível são explicados abaixo.

O XBOX Game Streaming faz streaming de jogos capturando (copiando) os quadros apresentados e, em seguida, codificando esses quadros para streaming. Sem o DirectCapture, os quadros são convertidos dos parâmetros de apresentação de entrada para um formato de codificação usando o hardware de exibição. O quadro tem de 0 a 66 ms de latência em uma Fila de Apresentação e, em seguida, mais 8,3 ms de latência ao passar pelo Display Writeback (DWB) para a captura do quadro. O tempo na Fila de Apresentação depende de fatores como a taxa de quadros do jogo e o uso de buffer duplo ou triplo. O tempo de Display Writeback é fixo em 8,3 ms porque está vinculado a um relógio HDMI.

No entanto, não há nenhuma tela HDMI conectada aos servidores do XBOX Game Streaming; por isso, o DirectCapture elimina esse tempo com uma implementação de software, em vez de usar o hardware de exibição. O DirectCapture captura quadros para codificação em cerca de 2 a 12 ms, eliminando etapas como a espera pelo VSync e a espera pela troca do buffer duplo ou triplo. Isso reduz a latência em até 72 ms.

Para obter uma latência menor, um jogo deve fazer a apresentação com parâmetros compatíveis com o DirectCapture.

* Modos de console com suporte
  * Modo de Criação de Perfil Lockhart
* Resoluções de renderização de jogo com suporte
  * Qualquer uma, incluindo a [Resolução personalizada](/pt-BR/build/core-features/common/game-streaming/game-streaming-custom-resolution-overview)
* Formatos de cadeia de troca com suporte
  * DXGI\_FORMAT\_R8G8B8A8\_UNORM
  * DXGI\_FORMAT\_B8G8R8A8\_UNORM
  * DXGI\_FORMAT\_R8G8B8A8\_UNORM\_SRGB
  * DXGI\_FORMAT\_B8G8R8A8\_UNORM\_SRGB
  * DXGI\_FORMAT\_R10G10B10A2\_UNORM
  * DXGI\_FORMAT\_R9G9B9E5\_SHAREDEXP
* Espaços de cores com suporte
  * DXGI\_COLOR\_SPACE\_RGB\_FULL\_G22\_NONE\_P709

Os parâmetros de apresentação não listados acima atualmente não têm suporte no DirectCapture.  Por exemplo, os seguintes não têm suporte:

* Resolução de renderização do jogo: 3840x2160 para jogos XDK
* HDR
* Vários planos de apresentação

A [XGameStreamingGetDisplayDetails](/pt-BR/reference/system/xgamestreaming/functions/xgamestreaminggetdisplaydetails) está disponível para ajudar a determinar o que apresentar para ser compatível com o DirectCapture, e o suporte ao PIX está planejado para ser lançado no futuro.

## Validando se o seu título está fazendo streaming com o DirectCapture

Você pode validar se o seu título está sendo executado com o DirectCapture verificando os arquivos de log de streaming.

### Coletando arquivos de log

Para coletar os arquivos de log de streaming:

1. Comece a executar o jogo
2. Inicie o streaming e conecte-se com um dos Aplicativos de Teste de Conteúdo (CTA)
3. Jogue um trecho curto do seu jogo
4. Encerre o jogo
5. Desconecte o CTA
6. Aguarde 30 segundos até que os logs terminem de ser gravados
7. Copie os logs para um diretório local, como C:\temp
   1. `xbcp xt:\XStreamLogs\XStreamManagementService.etl c:\temp`
   2. `xbcp xt:\XStreamLogs\nanotrace.etl c:\temp`

### Exibindo mensagens de transição

1. Abra XStreamManagementService.etl com o [Windows Performance Analyzer](https://apps.microsoft.com/store/detail/windows-performance-analyzer/9N0W1B2BXGNZ)
2. Clique com o botão direito do mouse em System Activity no painel esquerdo e escolha "Add graph to Analysis View"
3. No painel inferior, expanda Microsoft.Xbox.StreamManagementService
4. Procure o provedor Microsoft.Xbox.HostStreamingAgent e expanda-o, se necessário. Se ele estiver ausente, repita as etapas de Coletando arquivos de log acima.
5. Selecione a tarefa DirectCaptureLog e, se necessário, expanda o Unknown Process
6. Role para a direita e procure as colunas chamadas 0\_Message, 1\_Message etc. Cada uma é uma mensagem do DirectCapture em sequência. Se houver várias linhas, elas são classificadas por tempo.
7. Consulte a tabela abaixo para saber o significado de cada mensagem. Essas mensagens fornecerão a sequência de transições do DirectCapture, com os motivos de todos os casos em que o DirectCapture estiver desabilitado.

| ID da mensagem | Mensagem |
| - | - |
| 1 | Alternar para o DirectCapture |
| 2 | Alternar para o DWB (o DirectCapture está desabilitado) |
| 3 | Configuração de plano de renderização sem suporte. Isso pode ocorrer devido a planos de renderização do jogo ou porque o sistema renderiza uma sobreposição sobre o título (por exemplo, uma notificação do sistema) |
| 4 | Formato de pixel sem suporte. Consulte o PixelFormat associado para ver o formato de pixel do jogo naquele momento |
| 5 | Modo de bloco sem suporte. Consulte o TileMode associado para ver o modo de bloco do jogo naquele momento |
| 6 | Resolução de jogo sem suporte. Consulte os GameResolutionWidth e GameResolutionHeight associados para ver em qual resolução o jogo estava renderizando naquele momento. |
| 8 | Um quadro que não é do jogo está na tela |
| 12 | DirectCapture não habilitado (provavelmente devido a um modo de console sem suporte) |
| 18 | Tamanho de retângulo de origem sem suporte |
| 19 | Sinalizadores de parâmetro de Present sem suporte |
| 21 | Tamanho de retângulo de destino sem suporte |

### Informações detalhadas dos quadros

1. Abra nanotrace.etl com o Windows Performance Analyzer
2. Navegue até o provedor "Microsoft.Xbox.CloudStreaming" e selecione a tarefa "VideoFrameCaptureSourceChanged"; em seguida, expanda o processo "ApplicationClipService.exe" para ver todos os eventos "VideoFrameCaptureSourceChanged".
3. Verifique o campo "NewCaptureSource"
   * Seu título está fazendo streaming com a latência menor do DirectCapture a partir do momento em que o valor é "DCap"
   * Valores "DWB" significam que o DirectCapture não está sendo usado e que o mecanismo de captura padrão está em uso.  Isso acontecerá quando:
     * O título gerar um quadro incompatível com o DirectCapture
     * O sistema renderizar uma sobreposição sobre o título (por exemplo, uma notificação do sistema)

## Observações

* O nanotrace.etl tem histórico limitado; portanto, se você não vir "VideoFrameCaptureSourceChanged", sua sessão pode ter sido longa demais. Para validar, execute uma sessão mais curta e verifique o ETL.
* O suporte ao DirectCapture em kits de desenvolvimento é limitado ao XBOX Series X Dev Kit
* Para obter mais informações, assista a [XBOX Game Streaming: Reducing Latency and Optimizing for the Best Mobile Experiences](https://www.youtube.com/watch?v=-WIXftoHCl4).

## Consulte também

[Visão geral da resolução personalizada](/pt-BR/build/core-features/common/game-streaming/game-streaming-custom-resolution-overview)


## Related topics

- [Práticas recomendadas para resolução personalizada no game streaming](/pt-BR/build/core-features/common/game-streaming/game-streaming-custom-resolution-best-practices.md)
- [Otimizando seu jogo para o XBOX Game Streaming](/pt-BR/build/core-features/common/game-streaming/game-streaming-optimizing-your-game.md)
- [Visão geral do DirectStorage](/pt-BR/build/console-features/storage/directstorage/directstorage-overview.md)
- [Visão geral da resolução personalizada](/pt-BR/build/core-features/common/game-streaming/game-streaming-custom-resolution-overview.md)
- [Visão geral do Multiplayer Session Directory](/pt-BR/services/xbox-services/multiplayer/mpsd/live-mpsd-overview.md)
