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
程式庫 D3D12.lib
Dll D3D12.dll

另請參閱

ID3D12CommandQueue

多引擎同步處理