共用方式為


ID3D12GraphicsCommandList::ClearUnorderedAccessViewFloat 方法 (d3d12.h)

將未排序存取檢視中的所有專案 (UAV) 設定為指定的浮點數。

重要

其行為就像計算作業一樣,因為它不會根據 分派 呼叫之類的周圍工作來排序。 為了確保排序,必須視需要在 ClearUnorderedAccessViewXxx 呼叫之前和/或之後發出屏障呼叫。 這可能出現在某些不需要這類障礙的驅動程式上。 但隱含屏障不是規格保證;因此無法依賴它們。 這與 ClearDepthStencilViewClearRenderTargetView 相反, (例如 DrawXxx 命令) ,遵循命令列表順序。

語法

void ClearUnorderedAccessViewFloat(
  D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
  D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
  ID3D12Resource              *pResource,
  const FLOAT [4]             Values,
  UINT                        NumRects,
  const D3D12_RECT            *pRects
);

參數

ViewGPUHandleInCurrentHeap

類型:[in] D3D12_GPU_DESCRIPTOR_HANDLE

D3D12_GPU_DESCRIPTOR_HANDLE,參考未排序存取檢視的初始化描述項, (要清除的UAV) 。 此描述項必須位於著色器可見描述元堆積中,而這個描述項必須透過 SetDescriptorHeaps 在命令清單上設定。

ViewCPUHandle

類型:[in] D3D12_CPU_DESCRIPTOR_HANDLE

非著色器可見描述元堆積中的 D3D12_CPU_DESCRIPTOR_HANDLE ,參考要清除之未排序存取檢視的初始化描述項 (UAV) 。

重要

這個描述元不得位於著色器可見描述元堆積中。 這是為了讓實作清楚為固定函式硬體作業的驅動程式 (,而不是分派) 以有效率地從描述元讀取,因為著色器可見堆積可能會建立在 WRITE_BACK記憶體 ( 類似於 D3D12_HEAP_TYPE_UPLOAD 堆積類型) ,而從這種類型的記憶體讀取 CPU 會非常緩慢。

pResource

類型:[in] ID3D12Resource*

ID3D12Resource 介面的指標,表示要清除的 unordered-access-view (UAV) 資源。

Values

類型:[in] const FLOAT[4]

4 元件數位,其中包含用來填入未排序存取檢視資源的值。

NumRects

類型:[in] UINT

pRects 參數所指定陣列中的矩形數目。

pRects

Type: [in] const D3D12_RECT*

要清除之資源檢視中矩形 的D3D12_RECT 結構數位。 如果 NULL,ClearUnorderedAccessViewFloat 會清除整個資源檢視。

傳回值

備註

執行階段驗證

對於浮點輸入,運行時間會將反正規化值設定為 0 (,同時保留 NAN) 。

如果您想要將 UAV 清除為特定位模式,請考慮使用 ID3D12GraphicsCommandList::ClearUnorderedAccessViewUint

驗證失敗會導致呼叫 ID3D12GraphicsCommandList::Close 傳回 E_INVALIDARG

偵錯層

如果輸入值超出正規化範圍,偵錯層就會發出錯誤。

如果檢視所參考的子資源不是處於適當的狀態,偵錯層就會發出錯誤。 若為 ClearUnorderedAccessViewFloat,狀態必須為 D3D12_RESOURCE_STATE_UNORDERED_ACCESS

規格需求

需求
目標平台 Windows
標頭 d3d12.h
程式庫 D3d12.lib
Dll D3d12.dll

另請參閱

ID3D12GraphicsCommandList 介面