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

# ScheduleFrameEventX (famille XBOX One)

> Planifie un événement à signaler une ou plusieurs fois au cours d'une trame.

Planifie un événement à signaler une ou plusieurs fois au cours d'une trame.

## Syntaxe

```cpp theme={null}
HRESULT ScheduleFrameEventX(
        D3D12XBOX_FRAME_EVENT_TYPE Type,
        UINT IntervalOffsetInMicroseconds,
        D3D12XBOX_SCHEDULE_FRAME_OBJECT_LIST* pAncillarySignalList,
        D3D12XBOX_SCHEDULE_FRAME_EVENT_FLAGS Flags)
```

### Paramètres

*Type*   \_In\_\
Type : [D3D12XBOX\_FRAME\_EVENT\_TYPE](/fr/reference/graphics/d3d12_x/enums/d3d12xbox_frame_event_type)

Type de l'événement à planifier.

*IntervalOffsetInMicroseconds*   \_In\_\
Type : UINT

Décalage temporel auquel l'événement spécifié doit être planifié ; le décalage est exprimé en microsecondes à partir du début de l'intervalle de trame. Les décalages planifiés ne sont pris en charge que pour les événements qui les prennent en charge, comme l'événement d'origine.

*pAncillarySignalList*   \_In\_opt\_\
Type : [D3D12XBOX\_SCHEDULE\_FRAME\_OBJECT\_LIST](/fr/reference/graphics/d3d12_x/structs/d3d12xbox_schedule_frame_object_list)\*

Liste facultative de sept (7) événements auxiliaires au maximum à signaler chaque fois que l'événement de trame planifié se produit.

*Flags*   \_In\_\
Type : [D3D12XBOX\_SCHEDULE\_FRAME\_EVENT\_FLAGS](/fr/reference/graphics/d3d12_x/enums/d3d12xbox_schedule_frame_event_flags)

Indicateurs utilisés pour fournir un contrôle supplémentaire sur l'événement planifié. [D3D12XBOX\_SCHEDULE\_FRAME\_EVENT\_FLAG\_DISABLE\_SIGNAL](/fr/reference/graphics/d3d12_x/enums/d3d12xbox_schedule_frame_event_flags) peut être utilisé pour désactiver un signal précédemment planifié pour les types autres que l'origine, qui, une fois établie, ne peut jamais être désactivée.

## Valeur de retour

Type : HRESULT

Code de réussite ou d'erreur HRESULT.

Retourne E\_INVALIDARG en cas de types d'événements, de décalages d'intervalle, de listes de signaux et de valeurs d'indicateurs non valides.

Retourne E\_INVALIDARG si aucun intervalle de trame n'a été établi avant la tentative de planification d'un événement.

## Remarques

La méthode [WaitFrameEventX](/fr/reference/graphics/d3d12_x/interfaces/id3d12device/methods/id3d12device_waitframeeventx) peut être utilisée pour bloquer sur un événement de trame planifié ou pour l'interroger. Les événements doivent être replanifiés par un nouvel appel à *ScheduleFrameEventX* chaque fois que l'intervalle ou la période de trame a été modifié par un appel à [SetFrameIntervalX](/fr/reference/graphics/d3d12_x/interfaces/id3d12device/methods/id3d12device_setframeintervalx).

L'événement d'origine de trame est planifié pour fournir un contrôle précis de l'heure de début d'une trame et permettre ainsi de réduire au minimum la latence du pipeline. Le système tente de synchroniser l'échantillonnage par le microprogramme des entrées de manette avec l'heure d'origine de trame établie, de manière à ce que les données d'entrée soient acquises juste à temps pour le début de la trame. En interrogeant les entrées immédiatement après la signalisation de l'événement d'origine, l'application obtient les informations de stimulus les plus récentes sur lesquelles le rendu de la trame sera basé. Le décalage entre l'entrée utilisateur et l'affichage est réduit au minimum si un décalage d'origine de trame est choisi aussi près que possible du VBlank de l'affichage cible.

Le temps CPU et le temps GPU nécessaires pour produire une trame (ainsi que le degré de chevauchement du pipeline) varient au cours de la durée de vie de l'application. En réponse aux retours des statistiques de trame, le décalage de l'origine de trame est fréquemment replanifié afin de préserver une latence minimale.

Utilisez en continu la méthode [GetFrameStatisticsX](/fr/reference/graphics/d3d12_x/interfaces/id3d12device/methods/id3d12device_getframestatisticsx) pour surveiller la durée de la trame, du signal d'origine jusqu'à l'écriture finale dans les ressources d'échange de trame et leur présentation. Ensuite, planifiez l'événement d'origine en mettant à jour son décalage afin que les ressources d'échange soient terminées et présentées aussi près que possible de leur VBlank d'affichage cible, avec une certaine marge pour se prémunir contre les pics de durée de trame. L'objectif général est de planifier le décalage de l'heure d'origine pour qu'il soit égal à [PeriodInIntervals](/fr/reference/graphics/d3d12_x/interfaces/id3d12device/methods/id3d12device_setframeintervalx) x [LengthInMicroseconds](/fr/reference/graphics/d3d12_x/interfaces/id3d12device/methods/id3d12device_setframeintervalx) de l'intervalle de trame - *measured\_frame\_duration* - *margin\_for\_variance*.

L'événement d'origine s'appuie en interne sur l'interruption vline pour réaliser sa planification basée sur le décalage d'intervalle ; la granularité dépend donc de la résolution d'affichage actuelle.

Outre l'origine de trame, des événements supplémentaires peuvent être planifiés pour suivre les occurrences de VBlank et de basculement. Contrairement à l'origine, toutefois, ces événements sont planifiés comme de simples notifications, sans contrôle direct sur le minutage. Toujours contrairement à l'origine, les événements VBlank et de basculement peuvent être signalés plusieurs fois par intervalle de trame.

Le premier appel de planification d'un événement de trame est appliqué immédiatement. Les mises à jour ultérieures des événements planifiés, y compris leur désactivation, sont mises en pipeline avec la présentation, de sorte que les modifications apportées au cours d'un intervalle sont appliquées lorsque la prochaine trame présentée est basculée vers l'affichage.

## Configuration requise

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

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

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

## Voir aussi

[ID3D12Device](/fr/reference/graphics/d3d12_x/interfaces/id3d12device/id3d12device)


## Related topics

- [XAsyncSchedule](/fr/reference/system/xasyncprovider/functions/xasyncschedule.md)
- [Répertoire des rubriques NDA : liens actifs vers Microsoft Learn](/fr/nda/nda-topic-directory.md)
- [game_chat_data_frame](/fr/reference/chat/gamechat2/structs/game_chat_data_frame.md)
- [ACP_MESSAGE_AUDIO_FRAME_START](/fr/reference/audio/acphal/structs/acp_message_audio_frame_start.md)
- [SetShapeDmaNumFrames](/fr/reference/audio/shapedmacontext/functions/setshapedmanumframes.md)
