次の方法で共有


ID3D12CommandQueue::Signal メソッド (d3d12.h)

指定した値にフェンスを更新します。

構文

HRESULT Signal(
  ID3D12Fence *pFence,
  UINT64      Value
);

パラメーター

pFence

種類: ID3D12Fence*

ID3D12Fence オブジェクトへのポインター。

Value

種類: UINT64

フェンスを設定する値。

戻り値

型: HRESULT

このメソッドは、Direct3D 12リターン コードのいずれかを返します

注釈

GPU 側からフェンス値を設定するには、このメソッドを使用します。 ID3D12Fence::Signal を使用して、CPU 側からフェンスを設定します。

コマンド キューにシグナルを追加し、計算シェーダーがシミュレーションを完了するまで待機し、最後にフェンス値をシグナル化してインクリメントします。

// Wait for the compute shader to complete the simulation.
UINT64 threadFenceValue = InterlockedIncrement(&m_threadFenceValues[threadIndex]);
ThrowIfFailed(pCommandQueue->Signal(pFence, threadFenceValue));
ThrowIfFailed(pFence->SetEventOnCompletion(threadFenceValue, m_threadFenceEvents[threadIndex]));
WaitForSingleObject(m_threadFenceEvents[threadIndex], INFINITE);

// Add a signal command to the queue.
ThrowIfFailed(m_commandQueue->Signal(m_renderContextFence.Get(), m_renderContextFenceValue));

// Signal and increment the fence value.
ThrowIfFailed(m_commandQueue->Signal(m_renderContextFence.Get(), m_renderContextFenceValue));
m_renderContextFenceValue++;

「D3D12 リファレンス」のコード例を参照してください

要件

要件
対象プラットフォーム Windows
ヘッダー d3d12.h
Library D3D12.lib
[DLL] D3D12.dll

こちらもご覧ください

ID3D12CommandQueue

マルチエンジン同期