Método ID3D12GraphicsCommandList::ClearUnorderedAccessViewFloat (d3d12.h)
Establece todos los elementos de una vista de acceso desordenado (UAV) en los valores flotantes especificados.
Importante
Esto se comporta como una operación de proceso en que no se ordena con respecto al trabajo circundante, como las llamadas de dispatch . Para garantizar la ordenación, las llamadas de barrera deben emitirse antes o después de la llamada ClearUnorderedAccessViewXxx según sea necesario. Es posible que aparezca en algunos conductores que estas barreras no son necesarias. Pero las barreras implícitas no son una garantía de especificación; por lo que no se pueden confiar en ellos. Esto contrasta con ClearDepthStencilView y ClearRenderTargetView , que (como los comandos DrawXxx ), respetan el orden de la lista de comandos.
Sintaxis
void ClearUnorderedAccessViewFloat(
D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
ID3D12Resource *pResource,
const FLOAT [4] Values,
UINT NumRects,
const D3D12_RECT *pRects
);
Parámetros
ViewGPUHandleInCurrentHeap
Tipo: [in] D3D12_GPU_DESCRIPTOR_HANDLE
Un D3D12_GPU_DESCRIPTOR_HANDLE que hace referencia a un descriptor inicializado para la vista de acceso desordenado (UAV) que se va a borrar. Este descriptor debe estar en un montón de descriptores visibles para sombreador, que debe establecerse en la lista de comandos mediante SetDescriptorHeaps.
ViewCPUHandle
Tipo: [in] D3D12_CPU_DESCRIPTOR_HANDLE
Un D3D12_CPU_DESCRIPTOR_HANDLE en un montón de descriptores visibles no sombreador que hace referencia a un descriptor inicializado para la vista de acceso sin ordenar (UAV) que se va a borrar.
Importante
Este descriptor no debe estar en un montón de descriptores visibles para sombreador. Esto permite a los controladores que implementan la claridad como una operación de hardware de función fija (en lugar de como un envío) para leer eficazmente desde el descriptor, ya que los montones visibles para sombreador se pueden crear en WRITE_BACK memoria (similar a D3D12_HEAP_TYPE_UPLOAD tipos de montón) y las lecturas de CPU de este tipo de memoria son prohibitivamente lentas.
pResource
Tipo: [in] ID3D12Resource*
Puntero a la interfaz ID3D12Resource que representa el recurso unordered-access-view (UAV) que se va a borrar.
Values
Tipo: [in] const FLOAT[4]
Matriz de 4 componentes que contiene los valores con los que rellenar el recurso unordered-access-view.
NumRects
Tipo: [in] UINT
Número de rectángulos de la matriz que especifica el parámetro pRects .
pRects
Tipo: [in] const D3D12_RECT*
Matriz de estructuras de D3D12_RECT para los rectángulos de la vista de recursos que se van a borrar. Si es NULL, ClearUnorderedAccessViewFloat borra toda la vista de recursos.
Valor devuelto
None
Observaciones
Validación en tiempo de ejecución
En el caso de las entradas de punto flotante, el tiempo de ejecución establece valores desnormalizados en 0 (a la vez que conserva las NAN).
Si desea borrar el UAV en un patrón de bits específico, considere la posibilidad de usar ID3D12GraphicsCommandList::ClearUnorderedAccessViewUint.
El error de validación produce la llamada a ID3D12GraphicsCommandList::Close devolviendo E_INVALIDARG.
Capa de depuración
La capa de depuración emite errores si los valores de entrada están fuera de un intervalo normalizado.
La capa de depuración emite un error si los subrecursos a los que hace referencia la vista no están en el estado adecuado. Para ClearUnorderedAccessViewFloat, el estado debe ser D3D12_RESOURCE_STATE_UNORDERED_ACCESS.
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Windows |
Encabezado | d3d12.h |
Library | D3d12.lib |
Archivo DLL | D3d12.dll |