ID3D12GraphicsCommandList1::AtomicCopyBufferUINT64 メソッド (d3d12.h)
UINT64 型のプライマリ データ要素を、オプションの依存リソースと共に、あるリソースから別のリソースにアトミックにコピーします。
これらの "依存リソース" は、それらを見つけるためにプライマリ データ要素に依存するため、名前が付けられています。通常、キー要素は、1 つ以上の依存リソースを間接的に参照するアドレス、インデックス、またはその他のハンドルです。
この関数は、UINT64 型 (64 ビット) のプライマリ データ要素をサポートします。 この関数の別のバージョン である AtomicCopyBufferUINT では、UINT 型 (32 ビット) のプライマリ データ要素がサポートされています。
構文
void AtomicCopyBufferUINT64(
[in] ID3D12Resource *pDstBuffer,
UINT64 DstOffset,
[in] ID3D12Resource *pSrcBuffer,
UINT64 SrcOffset,
UINT Dependencies,
[in] ID3D12Resource * const *ppDependentResources,
[in] const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges
);
パラメーター
[in] pDstBuffer
種類: ID3D12Resource*
SAL: In
UINT64 プライマリ データ要素がコピーされるリソース。
DstOffset
種類: UINT64
プライマリ データ要素のコピー先を指定する宛先リソース バッファーへのオフセット (バイト単位)。 このオフセットをリソース バッファーのベース アドレスと組み合わせると、UINT64 値に合わせて自然にアラインされるメモリ アドレスになる必要があります。
[in] pSrcBuffer
種類: ID3D12Resource*
SAL: In
UINT64 プライマリ データ要素のコピー元のリソース。 通常、このデータはアドレス、インデックス、またはその他のハンドルであり、シェーダー コードは待機時間の機密情報の最新バージョンを検索するために使用できます。
SrcOffset
種類: UINT64
プライマリ データ要素のコピー元を指定するソース リソース バッファーへのオフセット (バイト単位)。 このオフセットをリソース バッファーのベース アドレスと組み合わせると、UINT64 値に合わせて自然にアラインされるメモリ アドレスになる必要があります。
Dependencies
型: UINT
依存リソースの数。
[in] ppDependentResources
種類: ID3D12Resource*
SAL: In_reads(Dependencies)
データ ペイロードの依存要素を含むリソースの配列。
[in] pDependentSubresourceRanges
型: const D3D12_SUBRESOURCE_RANGE_UINT64*
SAL: In_reads(Dependencies)
データ ペイロードの依存要素を指定するサブリソース範囲の配列。 これらの要素は、プライマリ データ要素自体がアトミックにコピーされる前に完全に更新されます。 これにより、操作全体が論理的にアトミックになります。つまり、プライマリ データ要素が不完全なデータ ペイロードを参照することはありません。
戻り値
なし
解説
通常、このメソッドは、レンダリング パイプラインの通常の待機時間がユーザー エクスペリエンスにとって有害になる可能性があるリソースを更新するために使用されます。 たとえば、アプリケーションでは、最新のユーザー入力 (ヘッドマウントディスプレイのセンサーなど) からビュー マトリックスを計算し、この関数を使用して、入力とレンダリングの間に認識される待機時間を短縮するために、既に GPU にディスパッチされているコマンド リストでこのマトリックスを更新およびアクティブ化できます。
要件
要件 | 値 |
---|---|
対象プラットフォーム | Windows |
ヘッダー | d3d12.h |
Library | D3d12.lib |
[DLL] | D3d12.dll |