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

多引擎同步