- Descarregando parte do processamento de High Dynamic Range (HDR) para o hardware de vídeo.
- Implementando oportunidades de taxa de quadros com telas de 120 Hertz (Hz).
- Usando recursos como Dolby Vision e Auto HDR.
Estas informações eram atuais em abril de 2022. Vários recursos podem ter sido alterados ou atualizados desde então.
Descarregar o trabalho da GPU para o hardware de vídeo
Esta seção descreve como mover parte do processamento da GPU para o hardware de vídeo.Renderização de cenas HDR
A maioria dos jogos renderiza valores HDR em seus buffers de fundo intermediários usando formatos de destino de renderização de alta precisão. Alguns jogos de PC usam formatos de 64 bits por pixel (bpp) ou 128 bpp. Nos consoles, ao renderizar cenas HDR, recomendamos minimizar o uso de destinos de renderização de 64 bpp e 128 bpp. Em vez disso, recomendamos que você use 32 bpp ou menos pelos motivos a seguir.- Você obterá exportação de cor com taxa dupla com o render backend plus (RB+) quando a mesclagem alfa estiver desabilitada.
- Menor pressão de memória, largura de banda e cache.
- Isso é particularmente importante no XBOX Series S.
- Maior precisão de cor, exceto para azuis muito brilhantes
- Leituras, gravações e mesclagens com taxa total

Buffers da cadeia de troca
Um dos padrões HDR com suporte no XBOX é o HDR10. Ele exige que os consoles enviem imagens para telas HDR10 usando o espaço de cores Rec.2020 e a curva gama ST.2084. O hardware de vídeo pode fazer conversões de cor e aplicar curvas gama, melhorando o desempenho. Com conversões de espaço de cores, há duas opções.- Processar a conversão na GPU
- Processar a conversão no hardware de vídeo.
Conversões de espaço de cores: opção 1
Os títulos podem usar a computação da GPU para fazer conversões de espaço de cores em uma passagem de renderização de pós-processamento. Figura 2. Conversões de espaço de cores usando a computação da GPU.
- O título renderiza a cena em Rec.709.
- O sombreador converte Rec.709 em Rec.2020 na GPU.
- Os valores de cor da cadeia de troca são Rec.2020.
- O hardware de vídeo passa os valores para a tela.
Present DXGI_COLOR_SPACE_RGB_FULL_*_NONE_P2020. Ele indica ao driver que sua cadeia de troca tem valores do espaço de cores Rec.2020.
Conversões de espaço de cores: opção 2
A conversão de espaço de cores também pode ser feita pelo hardware de vídeo.- Os valores da cadeia de troca são Rec.709 ou P3-D65.
Presentusa um dos seguintes sinalizadores.- DXGI_COLOR_SPACE_RGB_FULL_*_NONE_P709.
- DXGI_COLOR_SPACE_RGB_FULL_*_NONE_D65P3.

- O título renderiza a cena em Rec.709 ou P3-D65.
- O processamento não é feito na GPU. A cadeia de troca tem valores no espaço de cores Rec.709 ou no espaço de cores P3-D65.
- O hardware de vídeo converte o espaço de cores para o espaço de cores Rec.2020 exigido pela tela.
Presentusa um dos seguintes sinalizadores.
- DXGI_COLOR_SPACE_RGB_FULL_*_NONE_P709
- DXGI_COLOR_SPACE_RGB_FULL_*_NONE_D65P3
Exemplo: renderizar uma maçã vermelha em Rec.709
Figura 4. Exemplo: renderizar uma maçã vermelha em Rec.709.

Opções de processamento da curva gama
Duas opções de processamento da curva gama estão disponíveis.- Processar a curva gama na GPU
- Processar a curva gama no hardware de vídeo
Processamento da curva gama: opção 1
Figura 6. Processamento da curva gama que usa a computação da GPU.
- O título renderiza valores lineares.
- O título converte os valores lineares em valores gama ST.2084 usando o sombreador.
- O buffer da cadeia de troca agora contém valores normalizados não lineares com a curva gama ST.2084.
- O hardware de vídeo não faz nada porque a tela usa os valores ST.2084.
- Use o formato de destino de renderização R10G10B10A2_UNORM ou o formato de destino de renderização R9G9B9E5_SHAREDEXP para processar curvas gama.
Presentusa o sinalizadorDXGI_COLOR_SPACE_RGB_FULL_G2084_NONE_*.
Present inclui G2084. Isso indica ao driver do hardware de vídeo que a cadeia de troca contém valores com a curva gama ST.2084 já aplicada.
O título faz o processamento na GPU. O hardware de vídeo encaminha os dados.
Processamento da curva gama: opção 2
Figura 7. Processamento da curva gama que usa o hardware de vídeo.
- O título renderiza valores lineares.
- Os valores da cadeia de troca são normalizados linearmente, com 1.0 representando 10.000 nits.
- Você deve usar o formato de destino de renderização R9G9B9E5_SHAREDEXP.
Presentusa o sinalizador DXGI_COLOR_SPACE_RGB_FULL_G10_NONE_*.
Present inclui o valor G10, uma abreviação de gama 1.0. Isso indica ao driver do hardware de vídeo que a cadeia de troca contém valores lineares e que a curva gama ST.2084 ainda precisa ser aplicada.
Solução de imagem recomendada
Muitas combinações de formatos em que ocorrem conversões de cor estão disponíveis. A recomendação a seguir oferece imagens brilhantes e coloridas de alta precisão com processamento de GPU reduzido. Figura 8. O título renderiza Rec.709.


Present D65P3.
Figura 11. Conversão de cor e curva gama no hardware de vídeo.

Expansão da gama de cores
A expansão da gama de cores é um processo frequentemente ignorado. No entanto, ela é barata, fácil de implementar e aprimora os gráficos do seu título. Figura 12. Exemplos de imagens.

Mapeamento de tons automático de Standard Dynamic Range
O mapeamento de tons automático de Standard Dynamic Range (SDR) é outra técnica que traz benefícios quando você move o trabalho da GPU para o hardware de vídeo. O mapeamento de tons automático de SDR é um processo em que um título fornece uma imagem HDR e o sistema XBOX cria automaticamente uma imagem SDR a partir dela. As imagens SDR são usadas em situações em tempo real, como Game DVR, transmissão e streaming. O mapeamento de tons automático de SDR tem os seguintes benefícios.- Ganhos de desempenho de GPU ao mover o trabalho para o hardware de vídeo
- Redução de memória e largura de banda
- Simplificação do código do título
- O título renderiza a imagem SDR em uma segunda cadeia de troca, usando processamento de GPU e memória extra.
- O título não renderiza uma segunda cadeia de troca. Em vez disso, o hardware de vídeo do XBOX Series X|S gera a imagem sem custo de desempenho de GPU nem de uso de memória.
Economizar tempo e memória usando o hardware de vídeo
Se o seu título renderiza em 4K e você usa buffer triplo, aloque 96 MB de memória extra para a segunda cadeia de troca para renderizar sua imagem SDR com mapeamento de tons. No entanto, se o hardware de vídeo fizer o processamento, nenhuma alocação de memória será necessária. Com a GPU, a economia depende de como o título processa seu mapeador de tons e a gradação de cores. O custo do mapeador de tons é economizado se ele for limitado pela unidade lógica aritmética (ALU). Se o mapeador de tons for limitado pela largura de banda, você poderá usar uma LUT 3D. Isso economiza:- 120 microssegundos no XBOX Series X em 4K.
- 120 microssegundos no XBOX Series S em 1440p.
Planos de exibição
Processar planos de exibição no hardware de vídeo, em vez da GPU, resulta em ganhos de desempenho adicionais. Usando o hardware de vídeo, você pode usar várias taxas de atualização, vários espaços de cores e várias resoluções para cada plano de exibição. Por exemplo, você pode renderizar a interface do usuário em 4K e atualizá-la a 30 Hz, enquanto a cena é renderizada em 1440p e atualizada a 60 Hz. Em seguida, o hardware de vídeo dimensiona e compõe os elementos da interface do usuário na imagem final do título. Figura 14. Planos de composição do hardware de vídeo.
- Ela é feita em espaço gama não linear.
- Ela não pode ser usada com HDR.
- É feita em espaço gama linear.
- Pode ser usada com HDR se você estiver usando o mapeamento de tons automático.
120 Hz e 60 FPS+
O maior benefício de uma tela de 120 Hz pode ser que os jogadores podem jogar jogos a 120 FPS. No entanto, uma tela de 120 Hz também pode ser usada com outras taxas de quadros.Largura de banda HDMI
Resoluções mais altas, taxas de atualização mais altas e HDR exigem maior largura de banda HDMI. Uma largura de banda maior impõe restrições sobre o que o console pode enviar para a tela. As especificações HDMI definem a largura de banda máxima que pode ser transmitida entre dispositivos HDMI.HDMI 2.1
- 48 Gbps é largura de banda suficiente para enviar 4K HDR e 120 Hz ao mesmo tempo.
- Algumas telas oferecem suporte a HDMI 2.1 em apenas uma porta e HDMI 2.0 nas outras portas.
HDMI 2.0
- 18 Gbps não é largura de banda suficiente para enviar 4K HDR e 120 Hz ao mesmo tempo.
- As configurações de vídeo do console disponíveis são 1080p a 120 Hz ou 1440p a 120 Hz.
- XDisplayTryEnableHdrMode
- GetDisplayModeListX
- SetFrameIntervalX
- ScheduleFrameEventX

Modo 60FPS Plus
Uma tela de 120 Hz permite que você faça mais do que renderizar a 120 FPS. Agora há um modo 60FPS Plus (60FPS+). Nesse modo, o título é renderizado com VSync bloqueado a 60 Hz. No entanto, ele pode ser executado sem bloqueio em taxas de quadros mais rápidas que 60 FPS (por exemplo, a 90 FPS) sem rasgos de tela nem travamentos de quadros. Esse modo exige que a tela ofereça suporte a 120 Hz e à taxa de atualização variável (VRR). Caso contrário, o título é sincronizado automaticamente a 60 Hz. A VRR é usada para exibir quadros de forma suave. Não use o modo 60 FPS+ se o objetivo for 120 FPS. Em vez disso, use D3D12XBOX_FRAME_INTERVAL_120_HZ sem o sinalizador do modo 60FPS+. Isso é mostrado no exemplo de código a seguir.Modos de renderização de 24 Hz e 40 Hz
A seguir, são descritos os modos de renderização de 24 FPS e 40 FPS com telas de 120 Hz. 24 Hz- O sistema apresenta cinco quadros de 120 Hz.
- Esses quadros são úteis para cinemáticas em tempo real.
- 24 FPS fornece 8,33 ms de tempo extra de GPU em comparação com 30 FPS. Isso pode ser usado para melhorar a qualidade visual.
- O sistema apresenta três quadros de 120 Hz.
- Se o título não conseguir chegar a 60 FPS, 40 FPS é uma boa opção.
- 40 FPS fornece 8,33 ms extras de tempo de GPU em comparação com 60 FPS.
DisplayModeList.
Suspender/retomar
Um jogador pode suspender seu título a qualquer momento para alternar para outro jogo ou aplicativo, ou fazer algo na Página Inicial do XBOX, como definir as Configurações do console. As seguintes condições podem fazer com que os modos de exibição mudem enquanto o jogo está em modo suspenso ou restrito.- As Configurações do console são alternadas entre 60 Hz e 120 Hz
- O HDR é ativado ou desativado nas Configurações do console
- A tela é alterada
- Um cabo HDMI é trocado
- Um receptor de áudio/vídeo é adicionado ou removido
RegisterAppStateChangeNotificationRegisterAppConstrainedChangeNotification
Calibração de jogos HDR
O aplicativo de calibração de jogos HDR mostra padrões de teste para determinar a luminância mínima e máxima do mapeamento de tons da tela. Isso permite que o jogador calibre o console uma vez, e não para cada jogo. Os valores de calibração são armazenados no sistema, por console. Esses valores são usados no sombreador do mapeador de exibição do título. A calibração de jogos HDR tem suporte no XBOX One e no XBOX Series X|S. Figura 16. Calibração de jogos HDR.

Valores de calibração: opção 1
Não implemente suas próprias telas de calibração. Use os valores da API.- Não implemente a tela de calibração do título.
- Use os valores de calibração da API no sombreador do mapeador de exibição do título.
- Recomendamos adicionar uma opção de menu do título para o aplicativo de calibração usando o seguinte código de link profundo.
#include <XLauncher.h>XLaunchUri(nullptr, "hdrgamecalibration://");
Valores de calibração: opção 2
Para implementar uma tela de calibração do título, faça o seguinte.- Contraste: faça um ajuste simples, como
pow(x, displayGamma). - Brilho: faça um ajuste de brilho de branco do papel.
- Brilho máximo: determine o ponto de corte de brilho máximo.
- Se o jogador não usar a calibração do título, o jogo ainda usará os valores padrão corretos.
- Se o jogador usar a calibração do título, os valores iniciais já estarão corretos.


Dolby Vision para jogos
O suporte ao Dolby Vision para aplicativos de mídia, como a Netflix, está disponível desde o lançamento do XBOX One S. O suporte ao Dolby Vision para jogos foi adicionado em meados de 2021, mas apenas no XBOX Series X|S. Benefícios do Dolby Vision:- Simplifica a criação de conteúdo.
- A intenção artística é preservada em todas as telas Dolby Vision.
- O jogador vivencia o jogo como você o masterizou durante o desenvolvimento.
- A calibração HDR não é necessária, portanto o aplicativo de calibração de jogos HDR não é relevante.
Dolby Vision: opção 1 (Dolby Vision nativo)
- O título implementa o Dolby Vision nativo como middleware usando o Software Implementation Development Kit (SIDK) da Dolby.
- O mapeamento de exibição estático e o mapeamento de exibição dinâmico têm suporte.
- O Native Dolby Display Vision inclui mapeadores de tons para HDR10 e SDR.
- O custo de GPU varia de acordo com a opção selecionada.

Dolby Vision: opção 2 (Dolby Vision automático)
- O sistema XBOX converte automaticamente HDR10 em Dolby Vision.
- O sistema aplica o mapeador de exibição estático da Dolby.
- A saída do título é HDR10.
- O título não detecta o Dolby Vision.
- Os títulos podem recusar o Dolby Vision.
- Não há custo de GPU. Tudo é feito usando o hardware de vídeo.


Auto HDR
O recurso Auto HDR adiciona automaticamente HDR a títulos SDR no nível do sistema. Esse recurso geralmente é aplicado a títulos com compatibilidade retroativa. No entanto, ele também está disponível para títulos do GDK. Como o Auto HDR é processado pelo hardware de vídeo, não há custo adicional de CPU, GPU, memória, largura de banda ou latência. O Auto HDR não altera a intenção artística original da imagem SDR. O Auto HDR tem os seguintes benefícios.- Adiciona até 1.000 nits de alcance extra de brilho.
- Adiciona alcance extra de cores até o espaço de cores P3-D65.
Exemplo de imagens HDR simuladas
Imagens HDR não podem ser mostradas aqui, mas a figura 23 simula o efeito em uma tela SDR. Figura 23. Exemplo de imagens HDR simuladas.

Auto HDR e títulos do GDK
Para habilitar o Auto HDR, faça o seguinte, conforme mostrado no exemplo de código.- Alterne a tela para o modo HDR.
- Adicione o sinalizador de habilitação do Auto HDR durante a criação do dispositivo Direct3D.
- O jogador não é informado de que o título usa Auto HDR.
- Não há um indicador de Auto HDR no Painel do XBOX.
- Alternar para o Auto HDR nas Configurações do console não tem efeito sobre o Auto HDR de um título do GDK.
Recomendações do Auto HDR
Use um formato de buffer de troca de alta precisão.- Use R9G9B9E5 ou R10G10B10A2.
- R9G9B9E5 é o melhor porque oferece a maior precisão de cor.
- Evite usar R8G8B8A8 porque ele pode introduzir faixas.
- Pixels em branco puro resultam em 1.000 nits. Eles são brilhantes demais para o HUD ou a interface do usuário.
- Use uma escala de brilho linear para escurecer o HUD ou a interface do usuário quando estiver em HDR.
- Detalhes em áreas brilhantes ficam melhores do que grandes manchas brilhantes com poucos detalhes.
Vídeos de demonstração do Auto HDR
Gears of War Ultimate: Prey: Esses vídeos de demonstração lado a lado são de jogos com compatibilidade retroativa que usam Auto HDR. As demonstrações são mais bem visualizadas em uma tela HDR.Resumo
Descarregue o trabalho da GPU.- Conversões de espaço de cores
- Curvas gama
- Mapeamento de tons automático de SDR
- Planos de exibição
- Dolby Vision
- Auto HDR
Exemplos relacionados a este tópico
- AutoHDR
- HDRAutoToneMapping
- HDRCalibration
- HDRDisplayMapping
- HDRPrecision
- ResponsivenessSample
- Simple120Hz
- SimpleHDR
Próximas etapas
Se quiser revisar informações dos materiais de apresentação relacionados a esta visão geral, baixe os seguintes arquivos do XBOX Developer Download Secure Data Storage (SDS).- Apresentação de slides: Harnessing the power of the XBOX Series X|S HDR and display hardware.pptx em Xfest 2022 Graphics Track PowerPoints (Xfest2022GfxPPTs.ZIP)
- Apresentação em vídeo: GR02.mp4 em Xfest 2022 Graphics Track Videos (Xfest2022GfxVids.ZIP)
Baixar as apresentações e os vídeos do Microsoft PowerPoint
- Acesse Downloads do Game Development Kit (GDK).
- Em Select file type, selecione Conference Materials e, em seguida, selecione Confirm.
- Em Select build/version number, escolha uma das seguintes apresentações de gráficos.
- Xfest 2022 Graphics Track PowerPoints
- Xfest 2022 Graphics Track Videos
- Selecione Download Now e aguarde a conclusão do download do arquivo .zip.
- Acesse sua pasta Downloads local e descompacte (extraia) os arquivos da pasta compactada.
Baixar os exemplos de console do Microsoft Game Development Kit mencionados neste tópico
- Acesse Downloads do Game Development Kit (GDK).
- Em Select file type, selecione GDK e, em seguida, selecione Confirm.
- Em Select build/version number, escolha a opção Microsoft GDKX (Sample only) mais recente.
- Selecione Download Now e aguarde a conclusão do download do arquivo .zip.
- Acesse sua pasta Downloads local e descompacte (extraia) os arquivos da pasta compactada.
- Selecione GDKSamples > Graphics e procure o exemplo.
