Skip to main content
Recupera um conjunto de estatísticas de um quadro.

Sintaxe

Parâmetros

Token   _In_
Tipo: D3D12XBOX_FRAME_PIPELINE_TOKEN
Token de pipeline que identifica o quadro de interesse. TypeSet   _In_ Tipo: D3D12XBOX_FRAME_STATISTICS_TYPE Combinação de sinalizadores de tipo que identificam as estatísticas a serem recuperadas. pCount   _Inout_ Tipo: UINT* Ponteiro para um valor que especifica o tamanho, em entradas, da lista pStatistics. No retorno, o valor é atualizado para conter o número de entradas gravadas na lista. pStatistics   _Out_
Tipo: D3D12XBOX_FRAME_STATISTICS*
Ponteiro para o primeiro elemento de uma matriz de estatísticas de quadro. No retorno, as estatísticas consultadas dos tipos especificados serão gravadas na matriz.

Valor retornado

Tipo: HRESULT Código de êxito ou de erro HRESULT. Retorna S_OK se um ou mais conjuntos de estatísticas dos tipos solicitados estiverem disponíveis (e forem retornados, de acordo com o espaço na lista). Retorna S_FALSE se nenhuma das estatísticas solicitadas estiver disponível ainda. Retorna E_INVALIDARG para tokens de pipeline de quadro desconhecidos, conjuntos de tipos inválidos e organizações de lista inválidas.

Comentários

Embora as estatísticas possam ser consultadas para qualquer token de pipeline de quadro válido, o runtime atualmente mantém um limite de histórico dos últimos 17 quadros. Qualquer quadro originado há mais de 17 intervalos não terá estatísticas disponíveis, e as estatísticas consultadas sobre ele retornarão S_FALSE. Os tipos solicitados também não retornarão estatísticas se os eventos de quadro associados ainda não tiverem ocorrido e, portanto, as estatísticas não estiverem disponíveis. (Um exemplo de evento de quadro associado é uma consulta que inclui a especificação de D3D12XBOX_FRAME_STATISTICS_TYPE_DISPLAY antes que o quadro tenha sido de fato invertido para a tela.) Uma consulta de estatísticas pode retornar mais de uma entrada por tipo incluído no conjunto solicitado. Exemplos de várias estatísticas incluem: A matriz de estatísticas fornecida para GetFrameStatisticsX deve ser dimensionada adequadamente. Embora o método possa ser usado para consultar a contagem de estatísticas disponíveis, o tamanho pode mudar em uma chamada subsequente à medida que os eventos de quadro são concluídos e estatísticas adicionais são produzidas. Todas as estatísticas de quadro que fazem referência a tempo são fornecidas na forma de carimbos de data/hora da CPU (ou seja, QueryPerformanceCounter), mesmo para ações realizadas pela GPU. Isso é feito para preservar uma expressão uniforme do tempo nas estatísticas e, dada a possibilidade de vários tipos de fila manterem relógios independentes, para permanecer independente da execução da fila de comandos. Você pode usar GetClockCalibration para realizar conversões baseadas em fila de carimbos de data/hora da CPU relatados em carimbos de data/hora equivalentes da GPU. Para acompanhar a latência do pipeline desde a origem do quadro até a exibição, um aplicativo consulta as estatísticas continuamente. Os resultados servem como um mecanismo de comentários para informar o título sobre as atualizações no horário de início de quadro agendado feitas por chamadas a ScheduleFrameEventX. O objetivo é agendar o horário de origem de forma que o quadro conclua a renderização e seja apresentado o mais próximo possível da inversão de exibição. Idealmente, não deve haver tempo desperdiçado entre os quadros.
  1. A origem e a consulta de entrada do gamepad para o quadro: FRAME_EVENT_STATISTICS::SignalTime e INPUT_STATISTICS::QueryTime
  2. A gravação final nos recursos de troca do quadro e a chamada para apresentá-los: RENDER_STATISTICS::FrameCompleteTime e PRESENT_STATISTICS::PresentCallTime
  3. A chamada PresentX e a inversão dos recursos para a tela: PRESENT_STATISTICS::PresentCallTime e DISPLAY_STATISTICS::FlipTime
O único atraso do pipeline deve ser uma margem formulada pelo aplicativo entre a chamada PresentX e a inversão, para proteger contra picos na duração do quadro, o que reduziria o risco de perder o VBlank de destino.

Requisitos

Cabeçalho: d3d12_x.h Biblioteca: d3d12_x.lib Plataformas com suporte: família XBOX One
Last modified on October 6, 2026