> ## 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 (famille XBOX One)

> Récupère un ensemble de statistiques pour une trame.

Récupère un ensemble de statistiques pour une trame.

## Syntaxe

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

### Paramètres

*Token*   \_In\_\
Type : [D3D12XBOX\_FRAME\_PIPELINE\_TOKEN](/fr/reference/graphics/d3d12_x/enums/d3d12xbox_frame_pipeline_token)

Jeton de pipeline qui identifie la trame concernée.

*TypeSet*   \_In\_
Type : [D3D12XBOX\_FRAME\_STATISTICS\_TYPE](/fr/reference/graphics/d3d12_x/enums/d3d12xbox_frame_statistics_type)

Combinaison d'indicateurs de type qui identifient les statistiques à récupérer.

*pCount*   \_Inout\_
Type : UINT\*

Pointeur vers une valeur qui spécifie la taille, en nombre d'entrées, de la liste *pStatistics*. Au retour, la valeur est mise à jour pour contenir le nombre d'entrées écrites dans la liste.

*pStatistics*   \_Out\_\
Type : [D3D12XBOX\_FRAME\_STATISTICS](/fr/reference/graphics/d3d12_x/structs/d3d12xbox_frame_statistics)\*

Pointeur vers le premier élément d'un tableau de statistiques de trame. Au retour, les statistiques interrogées des types spécifiés sont écrites dans le tableau.

### Valeur de retour

Type : HRESULT

Code de réussite ou d'erreur HRESULT.

Retourne S\_OK si un ou plusieurs ensembles de statistiques des types demandés sont disponibles (et retournés, dans la limite de l'espace de la liste).

Retourne S\_FALSE si aucune des statistiques demandées n'est encore disponible.

Retourne E\_INVALIDARG en cas de jetons de pipeline de trame inconnus, d'ensembles de types non valides et d'agencements de liste non valides.

## Remarques

Bien que les statistiques puissent être interrogées pour n'importe quel jeton de pipeline de trame valide, le runtime conserve actuellement un historique limité aux 17 dernières trames. Toute trame dont l'origine remonte à plus de 17 intervalles n'aura aucune statistique disponible, et les statistiques interrogées pour celle-ci retourneront S\_FALSE. Les types demandés ne retournent également aucune statistique si leurs événements de trame associés ne se sont pas encore produits et que les statistiques ne sont donc pas disponibles. (Un exemple d'événement de trame associé est une requête qui inclut la spécification de [D3D12XBOX\_FRAME\_STATISTICS\_TYPE\_DISPLAY](/fr/reference/graphics/d3d12_x/enums/d3d12xbox_frame_statistics_type) avant que la trame n'ait été effectivement basculée vers l'affichage.)

Une requête de statistiques peut retourner plusieurs entrées par type inclus dans l'ensemble demandé. Voici quelques exemples de statistiques multiples :

* [PRESENT](/fr/reference/graphics/d3d12_x/structs/d3d12xbox_present_statistics), [RENDER](/fr/reference/graphics/d3d12_x/structs/d3d12xbox_render_statistics) et [DISPLAY](/fr/reference/graphics/d3d12_x/structs/d3d12xbox_display_statistics) lorsqu'une trame apparaît sur plusieurs plans d'affichage
* [FRAME\_EVENT](/fr/reference/graphics/d3d12_x/structs/d3d12xbox_frame_event_statistics) [DISPLAY\_VBLANK](/fr/reference/graphics/d3d12_x/enums/d3d12xbox_frame_event_type) lorsque plusieurs événements VBlank se produisent au cours de la trame
* [INPUT](/fr/reference/graphics/d3d12_x/structs/d3d12xbox_input_statistics) lorsque plusieurs requêtes d'entrée sont effectuées pour le compte de la trame

Le tableau de statistiques fourni à **GetFrameStatisticsX** doit être dimensionné en conséquence. Bien que la méthode puisse être utilisée pour interroger le nombre de statistiques disponibles, la taille peut changer lors d'un appel ultérieur à mesure que des événements de trame se terminent et que des statistiques supplémentaires sont produites.

Toutes les statistiques de trame qui font référence au temps sont fournies sous la forme d'horodatages CPU (c'est-à-dire *QueryPerformanceCounter*), même pour les actions effectuées par le GPU. Cela permet de conserver une expression uniforme du temps dans les statistiques et, étant donné que plusieurs types de files d'attente peuvent gérer des horloges indépendantes, de rester indépendant de l'exécution des files d'attente de commandes. Vous pouvez utiliser [GetClockCalibration](https://learn.microsoft.com/en-us/windows/win32/api/d3d12/nf-d3d12-id3d12commandqueue-getclockcalibration) pour effectuer des conversions basées sur les files d'attente des horodatages CPU signalés en horodatages GPU équivalents.

Pour suivre la latence du pipeline depuis l'origine de la trame jusqu'à l'affichage, une application interroge les statistiques en continu. Les résultats servent de mécanisme de rétroaction pour informer le titre des mises à jour de l'heure de début de trame planifiée effectuées par les appels à [ScheduleFrameEventX](/fr/reference/graphics/d3d12_x/interfaces/id3d12device/methods/id3d12device_scheduleframeeventx). L'objectif est de planifier l'heure d'origine de manière à ce que la trame termine son rendu et soit présentée aussi près que possible de son basculement à l'affichage. Idéalement, aucun temps ne doit être perdu entre les trames.

1. L'origine et la requête d'entrée de manette pour la trame : [FRAME\_EVENT\_STATISTICS](/fr/reference/graphics/d3d12_x/structs/d3d12xbox_frame_event_statistics)::SignalTime et [INPUT\_STATISTICS](/fr/reference/graphics/d3d12_x/structs/d3d12xbox_input_statistics)::QueryTime
2. L'écriture finale dans les ressources d'échange de la trame et l'appel pour les présenter : [RENDER\_STATISTICS](/fr/reference/graphics/d3d12_x/structs/d3d12xbox_render_statistics)::FrameCompleteTime et [PRESENT\_STATISTICS](/fr/reference/graphics/d3d12_x/structs/d3d12xbox_present_statistics)::PresentCallTime
3. L'appel PresentX et le basculement des ressources vers l'affichage : [PRESENT\_STATISTICS](/fr/reference/graphics/d3d12_x/structs/d3d12xbox_present_statistics)::PresentCallTime et [DISPLAY\_STATISTICS](/fr/reference/graphics/d3d12_x/structs/d3d12xbox_display_statistics)::FlipTime

Le seul délai du pipeline doit être une marge définie par l'application entre l'appel à [PresentX](/fr/reference/graphics/d3d12_x/interfaces/id3d12commandqueue/methods/id3d12commandqueue_presentx) et le basculement, afin de se prémunir contre les pics de durée de trame, ce qui atténue le risque de manquer le VBlank cible.

## Configuration requise

**En-tête :** d3d12\_x.h

**Bibliothèque :** d3d12\_x.lib

**Plateformes prises en charge :** famille XBOX One


## Related topics

- [Dynamic Power States (DPS)](/build/game-principles/sustainability/dynamic-power-states.md)
- [Estados de energía dinámicos (DPS)](/es/build/game-principles/sustainability/dynamic-power-states.md)
- [动态电源状态(DPS)](/zh-CN/build/game-principles/sustainability/dynamic-power-states.md)
- [Répertoire des rubriques NDA : liens actifs vers Microsoft Learn](/fr/nda/nda-topic-directory.md)
- [Documentation de développement de jeux XBOX](/fr-CA/index.md)
