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

# GetFrameStatisticsX (família XBOX One)

> Recupera um conjunto de estatísticas de um quadro.

Recupera um conjunto de estatísticas de um quadro.

## Sintaxe

```cpp theme={null}
HRESULT GetFrameStatisticsX(
        D3D12XBOX_FRAME_PIPELINE_TOKEN Token,
        D3D12XBOX_FRAME_STATISTICS_TYPE TypeSet,
        UINT* pCount,
        D3D12XBOX_FRAME_STATISTICS* pStatistics)
```

### Parâmetros

*Token*   \_In\_\
Tipo: [D3D12XBOX\_FRAME\_PIPELINE\_TOKEN](/pt-BR/reference/graphics/d3d12_x/enums/d3d12xbox_frame_pipeline_token)

Token de pipeline que identifica o quadro de interesse.

*TypeSet*   \_In\_
Tipo: [D3D12XBOX\_FRAME\_STATISTICS\_TYPE](/pt-BR/reference/graphics/d3d12_x/enums/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](/pt-BR/reference/graphics/d3d12_x/structs/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](/pt-BR/reference/graphics/d3d12_x/enums/d3d12xbox_frame_statistics_type) 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:

* [PRESENT](/pt-BR/reference/graphics/d3d12_x/structs/d3d12xbox_present_statistics), [RENDER](/pt-BR/reference/graphics/d3d12_x/structs/d3d12xbox_render_statistics) e [DISPLAY](/pt-BR/reference/graphics/d3d12_x/structs/d3d12xbox_display_statistics) quando um quadro aparece em vários planos de exibição
* [FRAME\_EVENT](/pt-BR/reference/graphics/d3d12_x/structs/d3d12xbox_frame_event_statistics) [DISPLAY\_VBLANK](/pt-BR/reference/graphics/d3d12_x/enums/d3d12xbox_frame_event_type) quando vários eventos VBlank ocorrem ao longo do quadro
* [INPUT](/pt-BR/reference/graphics/d3d12_x/structs/d3d12xbox_input_statistics) quando várias consultas de entrada são feitas em nome do quadro

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](https://learn.microsoft.com/en-us/windows/win32/api/d3d12/nf-d3d12-id3d12commandqueue-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](/pt-BR/reference/graphics/d3d12_x/interfaces/id3d12device/methods/id3d12device_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](/pt-BR/reference/graphics/d3d12_x/structs/d3d12xbox_frame_event_statistics)::SignalTime e [INPUT\_STATISTICS](/pt-BR/reference/graphics/d3d12_x/structs/d3d12xbox_input_statistics)::QueryTime
2. A gravação final nos recursos de troca do quadro e a chamada para apresentá-los: [RENDER\_STATISTICS](/pt-BR/reference/graphics/d3d12_x/structs/d3d12xbox_render_statistics)::FrameCompleteTime e [PRESENT\_STATISTICS](/pt-BR/reference/graphics/d3d12_x/structs/d3d12xbox_present_statistics)::PresentCallTime
3. A chamada PresentX e a inversão dos recursos para a tela: [PRESENT\_STATISTICS](/pt-BR/reference/graphics/d3d12_x/structs/d3d12xbox_present_statistics)::PresentCallTime e [DISPLAY\_STATISTICS](/pt-BR/reference/graphics/d3d12_x/structs/d3d12xbox_display_statistics)::FlipTime

O único atraso do pipeline deve ser uma margem formulada pelo aplicativo entre a chamada [PresentX](/pt-BR/reference/graphics/d3d12_x/interfaces/id3d12commandqueue/methods/id3d12commandqueue_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


## Related topics

- [Dynamic Power States (DPS)](/pt-BR/build/game-principles/sustainability/dynamic-power-states.md)
- [XMemGetWorkingSetStatistics](/pt-BR/reference/system/xmem/functions/xmemgetworkingsetstatistics.md)
- [XMemGetWin32HeapStatistics](/pt-BR/reference/system/xmem/functions/xmemgetwin32heapstatistics.md)
- [GetShapeDmaFramesAvailable](/pt-BR/reference/audio/shapedmacontext/functions/getshapedmaframesavailable.md)
- [GetShapeDmaFramesFree](/pt-BR/reference/audio/shapedmacontext/functions/getshapedmaframesfree.md)
