次の方法で共有


ID3D12GraphicsCommandList::ClearUnorderedAccessViewFloat メソッド (d3d12.h)

順序なしアクセス ビュー (UAV) 内のすべての要素を、指定した float 値に設定します。

重要

これは、 ディスパッチ 呼び出しなどの周囲の作業に対して順序付けされないという点で、コンピューティング操作のように動作します。 順序付けを保証するには、必要に応じて 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

種類: [入力] 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 FLOAT[4]

順序付けされていないアクセス ビュー リソースに入力する値を含む 4 コンポーネント配列。

NumRects

型: [in] UINT

pRects パラメーターが指定する配列内の四角形の数。

pRects

型: [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
Library D3d12.lib
[DLL] D3d12.dll

こちらもご覧ください

ID3D12GraphicsCommandList インターフェイス