Passer au contenu principal
Remplacement sélectif des paramètres de lancement de l’objet d’état de pipeline de calcul.

Syntaxe

Paramètres

pLaunchParameters   _In_opt_
Type : D3D12XBOX_COMPUTE_SHADER_LAUNCH_PARAMETERS*
Pointeur vers les paramètres de lancement du compute shader à remplacer dans l’objet d’état de pipeline.

Valeur de retour

Type : void Aucune valeur de retour.

Remarques

Permet de remplacer de manière sélective la taille LDS, la taille des groupes de threads et les paramètres de mode WGP/CU des paramètres de lancement de l’objet d’état de pipeline de calcul actuellement défini. Cette fonction vous permet de modifier les paramètres de façon légère, ce qui convient aux cas d’usage dans lesquels vous ne pouvez pas construire de manière statique toutes les permutations nécessaires des objets d’état de pipeline de calcul. Cette fonction peut également être utilisée pour des dispatchs indirects à l’aide du type d’argument D3D12XBOX_INDIRECT_ARGUMENT_TYPE_COMPUTE_SHADER_LAUNCH_PARAMETERSX (consultez D3D12_INDIRECT_ARGUMENT_TYPE) sur la file d’attente de commandes graphiques.
Vous devez appeler SetPipelineState (ou utiliser l’argument D3D12XBOX_INDIRECT_ARGUMENT_TYPE_PIPELINE_STATE correspondant pour le définir de manière indirecte) avec un objet d’état de pipeline de calcul avant d’utiliser cette fonction. Les paramètres restent remplacés jusqu’à ce que vous définissiez un nouvel objet d’état de pipeline de calcul ou que le pilote effectue une opération (comme un effacement ou une décompression de ressource) qui réinitialise par ailleurs l’objet d’état de pipeline de calcul actuellement défini.
Lorsque vous remplacez la taille des groupes de threads, votre shader ne peut pas s’appuyer sur les valeurs système SV_DispatchThreadID ou SV_GroupIndex, car elles sont calculées à partir de la taille de groupe spécifiée lors de la compilation du shader (attribut HLSL [numthreads(XSize, YSize, ZSize)] sur le point d’entrée du shader). La seule exception à cette limitation est lorsque le shader a été compilé à l’origine en tant que groupe de threads 1D et que vous ne modifiez que cette même dimension, ce qui vous permet de continuer à utiliser SV_GroupIndex.
Si votre shader a été compilé avec une taille de groupe de threads inférieure ou égale à la taille de vague sous-jacente, le compilateur de shaders peut supprimer par optimisation tous les appels que vous effectuez à GroupMemoryBarrier[WithGroupSync]. Si ces conditions s’appliquent et que vous avez l’intention d’étendre la taille du groupe au-delà d’une seule vague, vous devez vous assurer que le shader est compilé avec une taille de groupe numthreads supérieure à une seule vague afin d’empêcher cette optimisation. Nous vous recommandons de définir numthreads dans le shader sur la taille de groupe maximale avec laquelle vous prévoyez de l’exécuter.

Configuration requise

En-tête : d3d12_xs.h Bibliothèque : d3d12_xs.lib
Plateformes prises en charge : consoles XBOX Series

Voir aussi

ID3D12GraphicsCommandList6
Dernière modification le 6 octobre 2026