Passer au contenu principal
L’analyse des appels ExecuteIndirect dans PIX présente des difficultés. Lorsqu’un tampon d’arguments ExecuteIndirect est généré par le GPU, les draws/dispatches enfants de l’ExecuteIndirect peuvent avoir un ordre non déterministe. Cela peut rendre très difficiles l’analyse des performances et les opérations de débogage dans PIX, car le contenu d’un index enfant individuel peut être complètement différent à chaque évaluation.

ExecuteIndirect sur XBOX Series X|S

Sur XBOX Series X|S, la prise en charge de l’analyse d’ExecuteIndirect a été mise à jour pour améliorer considérablement l’expérience utilisateur de PIX. Pour un appel ExecuteIndirect susceptible d’entraîner plusieurs draws/dispatches, ou qui comporte une spécification indirecte de paramètres autres que draw/dispatch (définition des paramètres de signature racine, des tampons de vertex, des tampons d’index, des objets d’état de pipeline, etc.), PIX « verrouille » pendant l’analyse les arguments générés par le GPU et les autres dépendances générées par le GPU consommées par l’ExecuteIndirect sur une copie unique générée au démarrage de l’analyse, lorsque vous affichez un draw/dispatch enfant de l’appel ExecuteIndirect. Les opérations de débogage, comme l’affichage des liaisons du pipeline, restent ainsi cohérentes et ne varient pas constamment en raison du non-déterminisme. Toutefois, ce « verrouillage » des arguments générés par le GPU a un impact significatif sur les performances du GPU. C’est pourquoi les informations de performances, comme les compteurs et les résultats de Dr. PIX, ne sont pas disponibles pour les index enfants individuels de ces appels ExecuteIndirect « complexes ». Les informations de performances sont disponibles pour l’ExecuteIndirect parent, que vous pouvez sélectionner grâce à son propre Global ID unique dans PIX. Ce « verrouillage » de la mémoire ne s’applique qu’aux enfants d’un appel ExecuteIndirect. Par exemple, si l’ExecuteIndirect parent est sélectionné, l’ensemble du tampon d’arguments utilisé par tous ses enfants peut être affiché dans la vue du pipeline. Le contenu de ce tampon peut changer lors d’une actualisation en raison du non-déterminisme des résultats générés par le GPU.

ExecuteIndirect sur les plateformes antérieures

Sur les consoles antérieures à la XBOX Series X|S, PIX ne prend pas en charge le « verrouillage » des arguments ExecuteIndirect décrit ci-dessus. Pour ces plateformes, une option des paramètres de PIX permet de « forcer la réduction » de tous les appels ExecuteIndirect, ce qui revient à traiter chaque ExecuteIndirect comme un seul draw/dispatch.

Voir aussi

Pipeline View PIX Counters Dr. PIX
Dernière modification le 8 octobre 2026