ID3D12GraphicsCommandList ::ClearUnorderedAccessViewFloat, méthode (d3d12.h)
Définit tous les éléments d’une vue d’accès non ordonné (UAV) sur les valeurs float spécifiées.
Important
Cela se comporte comme une opération de calcul en ce sens qu’elle n’est pas ordonnée par rapport au travail environnant, comme les appels dispatch . Pour garantir l’ordre, les appels de barrière doivent être émis avant et/ou après l’appel ClearUnorderedAccessViewXxx si nécessaire. Il peut apparaître sur certains conducteurs que de telles barrières ne sont pas nécessaires. Mais les barrières implicites ne sont pas une garantie spec ; donc on ne peut pas compter sur eux. Cela contraste avec ClearDepthStencilView et ClearRenderTargetView qui (comme les commandes DrawXxx ), respectent l’ordre des listes de commandes.
Syntaxe
void ClearUnorderedAccessViewFloat(
D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
ID3D12Resource *pResource,
const FLOAT [4] Values,
UINT NumRects,
const D3D12_RECT *pRects
);
Paramètres
ViewGPUHandleInCurrentHeap
Type : [in] D3D12_GPU_DESCRIPTOR_HANDLE
Une D3D12_GPU_DESCRIPTOR_HANDLE qui fait référence à un descripteur initialisé pour la vue d’accès non ordonné (UAV) qui doit être effacée. Ce descripteur doit se trouver dans un tas de descripteur visible par le nuanceur, qui doit être défini dans la liste de commandes via SetDescriptorHeaps.
ViewCPUHandle
Type : [in] D3D12_CPU_DESCRIPTOR_HANDLE
Un D3D12_CPU_DESCRIPTOR_HANDLE dans un tas de descripteur visible non-nuanceur qui fait référence à un descripteur initialisé pour la vue d’accès non ordonné (UAV) qui doit être effacée.
Important
Ce descripteur ne doit pas se trouver dans un tas de descripteur visible par le nuanceur. Il s’agit de permettre aux pilotes qui implémentent le clair en tant qu’opération matérielle à fonction fixe (plutôt qu’en tant que répartiteur) de lire efficacement à partir du descripteur, car des tas visibles par le nuanceur peuvent être créés dans WRITE_BACK mémoire (comme les types de tas D3D12_HEAP_TYPE_UPLOAD ), et les lectures du processeur à partir de ce type de mémoire sont excessivement lentes.
pResource
Type : [in] ID3D12Resource*
Pointeur vers l’interface ID3D12Resource qui représente la ressource unordered-access-view (UAV) à effacer.
Values
Type : [in] const FLOAT[4]
Tableau à 4 composants contenant les valeurs avec laquelle remplir la ressource d’affichage d’accès non ordonné.
NumRects
Type : [in] UINT
Nombre de rectangles dans le tableau spécifié par le paramètre pRects .
pRects
Type : [in] const D3D12_RECT*
Tableau de structures D3D12_RECT pour les rectangles de l’affichage des ressources à effacer. Si la valeur est NULL, ClearUnorderedAccessViewFloat efface l’ensemble de l’affichage des ressources.
Valeur de retour
None
Remarques
Validation d'exécution
Pour les entrées à virgule flottante, le runtime définit les valeurs dénormalisées sur 0 (tout en préservant les NNA).
Si vous souhaitez effacer l’UAV sur un modèle de bits spécifique, envisagez d’utiliser ID3D12GraphicsCommandList ::ClearUnorderedAccessViewUint.
L’échec de validation entraîne l’appel à ID3D12GraphicsCommandList ::Close qui retourne E_INVALIDARG.
Couche Debug
La couche de débogage génère des erreurs si les valeurs d’entrée se trouvent en dehors d’une plage normalisée.
La couche de débogage génère une erreur si les sous-ressources référencées par la vue ne sont pas dans l’état approprié. Pour ClearUnorderedAccessViewFloat, l’état doit être D3D12_RESOURCE_STATE_UNORDERED_ACCESS.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Windows |
En-tête | d3d12.h |
Bibliothèque | D3d12.lib |
DLL | D3d12.dll |