ID3D12GraphicsCommandList::ClearUnorderedAccessViewUint メソッド (d3d12.h)
順序なしアクセス ビュー (UAV) 内のすべての要素を、指定した整数値に設定します。
重要
これは、 ディスパッチ 呼び出しなどの周囲の作業に対して順序付けされないという点で、コンピューティング操作のように動作します。 順序付けを保証するには、必要に応じて ClearUnorderedAccessViewXxx 呼び出しの前後にバリア呼び出しを発行する必要があります。 一部のドライバーでは、このような障壁は必要ない場合があります。 しかし、暗黙的な障壁は仕様保証ではありません。信頼できないのです。 これは、 ClearDepthStencilView や ClearRenderTargetView ( DrawXxx コマンドなど) とは対照的です。これは、コマンド リストの順序を考慮します。
構文
void ClearUnorderedAccessViewUint(
D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
ID3D12Resource *pResource,
const UINT [4] Values,
UINT NumRects,
const D3D12_RECT *pRects
);
パラメーター
ViewGPUHandleInCurrentHeap
種類: [入力] D3D12_GPU_DESCRIPTOR_HANDLE
クリア する順序 なしアクセス ビュー (UAV) の初期化された記述子を参照するD3D12_GPU_DESCRIPTOR_HANDLE。 この記述子は、シェーダーに表示される記述子ヒープ内にある必要があります。これは、 SetDescriptorHeaps を使用してコマンド リストで設定する必要があります。
ViewCPUHandle
種類: [入力] D3D12_CPU_DESCRIPTOR_HANDLE
非シェーダー表示記述子ヒープ内の D3D12_CPU_DESCRIPTOR_HANDLE 。クリアする順序なしアクセス ビュー (UAV) の初期化された記述子を参照します。
重要
この記述子は、シェーダーに表示される記述子ヒープに含めてはいけません。 これは、(ディスパッチとしてではなく) 固定関数ハードウェア操作として clear を実装するドライバーが記述子から効率的に読み取ることができるようにするためです。シェーダーに表示されるヒープは メモリWRITE_BACK ( D3D12_HEAP_TYPE_UPLOAD ヒープの種類と同様) に作成される可能性があり、この種類のメモリからの CPU 読み取りは非常に遅くなります。
pResource
型: [in] ID3D12Resource*
クリアする unordered-access-view (UAV) リソースを表す ID3D12Resource インターフェイスへのポインター。
Values
型: [in] const UINT[4]
順序付けされていないアクセス ビュー リソースに入力する値を含む 4 コンポーネント配列。
NumRects
型: [in] UINT
pRects パラメーターが指定する配列内の四角形の数。
pRects
型: [in] const D3D12_RECT*
クリアするリソース ビューの四角形の D3D12_RECT 構造体の配列。 NULL の場合、ClearUnorderedAccessViewUint はリソース ビュー全体をクリアします。
戻り値
なし
解説
ランタイムの検証
検証エラーが発生すると、 ID3D12GraphicsCommandList::Close が呼び出 され、E_INVALIDARGが返されます。
デバッグ レイヤー
デバッグ レイヤーは、入力値が正規化された範囲外の場合にエラーを発行します。
ビューによって参照されるサブリソースが適切な状態でない場合、デバッグ レイヤーはエラーを発行します。 ClearUnorderedAccessViewUint の場合、状態はD3D12_RESOURCE_STATE_UNORDERED_ACCESSする必要があります。
要件
要件 | 値 |
---|---|
対象プラットフォーム | Windows |
ヘッダー | d3d12.h |
Library | D3d12.lib |
[DLL] | D3d12.dll |