énumération D3D12DDI_PREDICATION_OP (d3d12umddi.h)
Contient des valeurs pour les options d’opération de prédication. Cette méthode est utilisée pour indiquer que les opérations vidéo et les commandes de manipulation de ressources suivantes ne sont pas réellement effectuées si les données de prédicat obtenues du prédicat sont égales à l’opération spécifiée.
Syntax
typedef enum D3D12DDI_PREDICATION_OP {
D3D12DDI_PREDICATION_OP_EQUAL_ZERO,
D3D12DDI_PREDICATION_OP_NOT_EQUAL_ZERO
} ;
Constantes
D3D12DDI_PREDICATION_OP_EQUAL_ZERO Active la prédication si tous les bits d’une mémoire tampon de 64 bits sont zéro (0). |
D3D12DDI_PREDICATION_OP_NOT_EQUAL_ZERO Active la prédication si au moins l’une des mémoires tampons de 64 bits n’est pas égale à zéro (0). |
Remarques
La prédication permet à l’appelant d’avoir une instruction if dans la mémoire tampon de commandes. La commande ID3D12CommandList ::SetPredication marque le début de l’instruction if. L’instruction if se termine à l’appel suivant à ID3D12CommandList ::SetPredication ou lorsque la liste de commandes est fermée. En outre, la prédication ne prend pas en charge les si imbriqués, else-if ou autre. L’expression à évaluer pour si est passée en tant que paramètres à l’appel ID3D12*CommandList ::SetPredication. Un pointeur vers une valeur de 64 bits est passé en tant que mémoire tampon D3D12 et décalage d’octets aligné de 64 bits. L’opération spécifie la comparaison.
Si l’expression prend la valeur true, les commandes de l’instruction if-statement ne sont pas exécutées.
La valeur elle-même n’est déterminée qu’une fois que la commande SetPredication s’exécute sur le GPU. La valeur de la mémoire tampon doit être « capturée » par la commande SetPredication lorsqu’elle est exécutée sur le GPU, de sorte que les modifications ultérieures apportées à la mémoire tampon ne changent pas si les commandes de l’instruction if sont exécutées ou non. La valeur stockée dans la mémoire tampon peut provenir de n’importe où. Par exemple, la valeur d’état des statistiques de requête de décodage, une valeur écrite par un nuanceur, etc.
Dans une liste de commandes, les applications peuvent appeler ID3D12*CommandList ::SetPredication avec un pointeur de ressource Null pour désactiver la prédication pour les commandes suivantes dans la liste de commandes. Sinon, l’état de prédication est réinitialisé à désactivé lorsque l’utilisateur ferme et réinitialise la liste de commandes pour exécution, de sorte que setPredication n’est pas conservé dans les listes de commandes.
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | d3d12umddi.h (inclure D3d12umddi.h) |