Syntaxe
Paramètres
pLaunchParameters _In_opt_Type : D3D12XBOX_COMPUTE_SHADER_LAUNCH_PARAMETERS* Pointeur vers les paramètres de lancement du nuanceur de calcul à remplacer dans l’objet d’état de pipeline.
Valeur renvoyée
Type : void Aucune valeur renvoyée.Remarques
Permet de remplacer de façon sélective les paramètres de taille du LDS et des groupes de threads ainsi que le mode WGP/CU des paramètres de lancement de l’objet d’état de pipeline de calcul actuellement défini. La fonction permet de modifier les paramètres de façon légère, ce qui convient aux cas d’utilisation où 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 les dispatchs indirects au moyen du type d’argumentD3D12XBOX_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 indirectement) 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 nuanceur ne peut pas se fier aux valeurs système
SV_DispatchThreadID ou SV_GroupIndex, car elles sont calculées à l’aide de la taille de groupe spécifiée au moment de la compilation du nuanceur (attribut HLSL [numthreads(XSize, YSize, ZSize)] sur le point d’entrée du nuanceur). La seule exception à cette limitation est lorsque le nuanceur a été compilé à l’origine avec un groupe de threads 1D et que vous modifiez uniquement cette même dimension, ce qui vous permet de continuer à utiliser SV_GroupIndex.Si votre nuanceur a été compilé avec une taille de groupe de threads inférieure ou égale à la taille de vague sous-jacente, le compilateur de nuanceurs peut éliminer par optimisation tous les appels que vous faites à
GroupMemoryBarrier[WithGroupSync]. Si ces conditions s’appliquent et que vous prévoyez modifier la taille de groupe au-delà d’une seule vague, vous devez vous assurer que le nuanceur est compilé avec une taille de groupe numthreads supérieure à une seule vague pour empêcher une telle optimisation. Nous vous recommandons de définir numthreads dans le nuanceur à la taille de groupe maximale avec laquelle vous prévoyez l’exécuter.Configuration requise
En-tête : d3d12_xs.h Bibliothèque : d3d12_xs.libPlateformes prises en charge : consoles XBOX Series
