Pular para o conteúdo principal

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

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.

Consulte também

Visão geral da resolução personalizada
Última modificação em 6 de outubro de 2026