Partager via


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

Voir aussi

Interface ID3D12GraphicsCommandList