DirectCapture
DirectCapture est une fonctionnalité de la plateforme XBOX Game Streaming qui réduit automatiquement au minimum la latence du serveur pour les images compatibles. L’API XGameStreamingGetDisplayDetails vous permet d’interroger les exigences relatives aux images compatibles afin de vous assurer que votre jeu peut tirer parti de DirectCapture. Les exigences relatives à une image compatible sont expliquées ci-dessous. XBOX Game Streaming diffuse les jeux en streaming en capturant (copiant) les images présentées, puis en les encodant pour le streaming. Sans DirectCapture, les images sont converties des paramètres de présentation d’entrée vers un format d’encodage à l’aide du matériel d’affichage. L’image subit une latence de 0 à 66 ms dans une file d’attente de présentation (Present Queue), puis une latence supplémentaire de 8,3 ms lors de son passage par la réécriture d’affichage (DWB, Display Writeback) pour la capture. Le temps passé dans la file d’attente de présentation dépend de facteurs tels que la fréquence d’images du jeu et l’utilisation d’une mise en mémoire tampon double ou triple. La durée de réécriture d’affichage est fixée à 8,3 ms, car elle est liée à une horloge HDMI. Cependant, aucun écran HDMI n’est connecté aux serveurs XBOX Game Streaming ; DirectCapture court-circuite donc ce délai grâce à une implémentation logicielle au lieu d’utiliser le matériel d’affichage. DirectCapture capture les images à encoder en 2 à 12 ms environ en éliminant notamment l’attente de la synchronisation verticale (VSync) et l’attente du basculement de la mise en mémoire tampon double ou triple. La latence est ainsi réduite jusqu’à 72 ms. Pour bénéficier d’une latence plus faible, un jeu doit effectuer la présentation avec des paramètres compatibles avec DirectCapture.- Modes de console pris en charge
- Lockhart Profiling Mode
- Résolutions de rendu de jeu prises en charge
- Toutes, y compris la résolution personnalisée
- Formats de chaîne d’échange pris en charge
- DXGI_FORMAT_R8G8B8A8_UNORM
- DXGI_FORMAT_B8G8R8A8_UNORM
- DXGI_FORMAT_R8G8B8A8_UNORM_SRGB
- DXGI_FORMAT_B8G8R8A8_UNORM_SRGB
- DXGI_FORMAT_R10G10B10A2_UNORM
- DXGI_FORMAT_R9G9B9E5_SHAREDEXP
- Espaces colorimétriques pris en charge
- DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709
- Résolution de rendu du jeu : 3840x2160 pour les jeux XDK
- HDR
- Plans de présentation multiples
Vérification que votre titre utilise DirectCapture pour le streaming
Vous pouvez vérifier que votre titre s’exécute avec DirectCapture en consultant les fichiers journaux de streaming.Collecte des fichiers journaux
Pour collecter les fichiers journaux de streaming :- Lancez le jeu
- Démarrez le streaming et connectez-vous avec l’une des applications de test de contenu (CTA)
- Jouez à une courte section de votre jeu
- Arrêtez le jeu
- Déconnectez la CTA
- Attendez 30 secondes que l’écriture des journaux se termine
- Copiez les journaux dans un répertoire local tel que C:\temp
xbcp xt:\XStreamLogs\XStreamManagementService.etl c:\tempxbcp xt:\XStreamLogs\nanotrace.etl c:\temp
Affichage des messages de transition
- Ouvrez XStreamManagementService.etl avec Windows Performance Analyzer
- Cliquez avec le bouton droit sur System Activity dans le volet gauche et choisissez « Add graph to Analysis View »
- Dans le volet inférieur, développez Microsoft.Xbox.StreamManagementService
- Recherchez le fournisseur Microsoft.Xbox.HostStreamingAgent et développez-le si nécessaire. S’il est absent, répétez les étapes de collecte des fichiers journaux ci-dessus.
- Sélectionnez la tâche DirectCaptureLog et, si nécessaire, développez Unknown Process
- Faites défiler vers la droite et recherchez les colonnes nommées 0_Message, 1_Message, etc. Chacune correspond à un message de DirectCapture, dans l’ordre. S’il y a plusieurs lignes, elles sont triées par heure.
- Consultez le tableau ci-dessous pour connaître la signification de chaque message. Ces messages vous indiquent la séquence des transitions de DirectCapture, ainsi que les raisons pour lesquelles DirectCapture a été désactivé le cas échéant.
Informations détaillées sur les images
- Ouvrez nanotrace.etl avec Windows Performance Analyzer
- Accédez au fournisseur « Microsoft.Xbox.CloudStreaming », sélectionnez la tâche « VideoFrameCaptureSourceChanged », puis développez le processus « ApplicationClipService.exe » pour afficher tous les événements « VideoFrameCaptureSourceChanged ».
- Vérifiez le champ « NewCaptureSource »
- Votre titre bénéficie de la latence réduite de DirectCapture pour le streaming à partir du moment où la valeur est « DCap »
- Les valeurs « DWB » signifient que DirectCapture n’est pas utilisé et que le mécanisme de capture par défaut est utilisé. Cela se produit dans les cas suivants :
- Le titre produit une image incompatible avec DirectCapture
- Le système affiche une superposition sur le titre (par exemple, une notification système)
Remarques
- L’historique de nanotrace.etl est limité ; si vous ne voyez pas « VideoFrameCaptureSourceChanged », votre session a peut-être été trop longue. Pour vérifier, exécutez une session plus courte et consultez l’ETL.
- Sur les kits de développement, la prise en charge de DirectCapture est limitée au XBOX Series X Dev Kit
- Pour plus d’informations, regardez XBOX Game Streaming: Reducing Latency and Optimizing for the Best Mobile Experiences.
