次の方法で共有


ID3D12GraphicsCommandList4::CopyRaytracingAccelerationStructure メソッド (d3d12.h)

指定した変換の適用中に、ソース アクセラレーション構造体をコピー先のメモリにコピーします。

構文

void CopyRaytracingAccelerationStructure(
  [in] D3D12_GPU_VIRTUAL_ADDRESS                         DestAccelerationStructureData,
  [in] D3D12_GPU_VIRTUAL_ADDRESS                         SourceAccelerationStructureData,
  [in] D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode
);

パラメーター

[in] DestAccelerationStructureData

宛先メモリ。 必要なサイズは、指定した Mode に必要な場合は、EmitRaytracingAccelerationStructurePostbuildInfo を事前に呼び出すことによって検出できます。

宛先の開始アドレスは、指定された Mode に関係なく、D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BYTE_ALIGNMENTとして定義された 256 バイトに揃える必要があります。

コピー先のメモリ範囲は、ソースと重複できません。 それ以外の場合、結果は未定義です。

メモリが指すリソースの状態は、 Mode パラメーターによって異なります。 詳細については、「 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE」を参照してください。

[in] SourceAccelerationStructureData

指定した Mode に基づいてコピー/変換するアクセラレーション構造体またはその他の種類のデータのアドレス。 データは変更されず、使用できます。 この操作では、 SourceAccelerationStructureData が指すデータのみがコピーされ、ソース データが指し示すその他のデータ (アクセラレーション構造など) はコピーされません。 たとえば、最上位レベルの加速度構造の場合、それが指す下位レベルの加速度構造は操作でコピーされません。

ソース メモリは、指定された Mode に関係なく、D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BYTE_ALIGNMENTとして定義された 256 バイトに揃える必要があります。

メモリが指すリソースの状態は、 Mode パラメーターによって異なります。 詳細については、「 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE」を参照してください。

[in] Mode

実行するコピー操作の種類。 詳細については、「 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE」を参照してください。

戻り値

なし

解説

レイトレーシングアクセラレーション構造体には内部ポインターが含まれており、デバイスに依存する不透明なレイアウトを持つことがあるため、それらをコピーしたり操作したりする場合は、ドライバーが要求された操作を処理できるように専用の API が必要です。

このメソッドは、グラフィックスまたはコンピューティング コマンド リストから呼び出すことができますが、バンドルからは呼び出されません。

要件

要件
サポートされている最小のクライアント Windows 10 Version 1809 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2016 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー d3d12.h
Library D3D12.lib
[DLL] D3D12.dll

こちらもご覧ください

ID3D12GraphicsCommandList4