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

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

## 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-CA/reference/graphics/d3d12_x/enums/d3d12xbox_frame_pipeline_token)

Jeton de pipeline qui identifie l'image visée.

*TypeSet*   \_In\_
Type : [D3D12XBOX\_FRAME\_STATISTICS\_TYPE](/fr-CA/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 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-CA/reference/graphics/d3d12_x/structs/d3d12xbox_frame_statistics)\*

Pointeur vers le premier élément d'un tableau de statistiques d'image. Au retour, les statistiques interrogées des types spécifiés seront é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, selon l'espace disponible dans la liste).

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

Retourne E\_INVALIDARG pour les jetons de pipeline d'image inconnus, les ensembles de types non valides et les dispositions de liste non valides.

## Remarques

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

Une requête de statistiques peut retourner plus d'une entrée par type inclus dans l'ensemble demandé. Voici des exemples de statistiques multiples :

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

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 d'image se terminent et que des statistiques supplémentaires sont produites.

Toutes les statistiques d'image qui font référence au temps sont fournies sous forme d'horodatages CPU (c'est-à-dire *QueryPerformanceCounter*), même pour les actions effectuées par le GPU. Cela permet de préserver une expression uniforme du temps dans les statistiques et, étant donné que plusieurs types de files d'attente peuvent maintenir des horloges indépendantes, de demeurer 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 l'image 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 apportées à l'heure de début d'image planifiée par les appels à [ScheduleFrameEventX](/fr-CA/reference/graphics/d3d12_x/interfaces/id3d12device/methods/id3d12device_scheduleframeeventx). L'objectif est de planifier l'heure d'origine de manière à ce que l'image termine son rendu et soit présentée le plus près possible de son basculement à l'affichage. Idéalement, aucun temps ne devrait être perdu entre les images.

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

Le seul délai du pipeline devrait être une marge définie par l'application entre l'appel à [PresentX](/fr-CA/reference/graphics/d3d12_x/interfaces/id3d12commandqueue/methods/id3d12commandqueue_presentx) et le basculement, afin de se protéger contre les pics de durée d'image, ce qui atténuerait 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)
