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

다중 엔진 동기화