Skip to main content
Planifie un événement à signaler une ou plusieurs fois au cours d’une trame.

Syntaxe

Paramètres

Type   _In_
Type : 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*
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
Indicateurs utilisés pour fournir un contrôle supplémentaire sur l’événement planifié. D3D12XBOX_SCHEDULE_FRAME_EVENT_FLAG_DISABLE_SIGNAL 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 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. 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 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 x LengthInMicroseconds 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
Dernière modification le 6 octobre 2026