ID3D12Fence::SetEventOnCompletion method (d3d12.h)
Specifies an event that's raised when the fence reaches a certain value.
Syntax
HRESULT SetEventOnCompletion(
UINT64 Value,
HANDLE hEvent
);
Parameters
Value
Type: UINT64
The fence value when the event is to be signaled.
hEvent
Type: HANDLE
A handle to the event object.
Return value
Type: HRESULT
This method returns E_OUTOFMEMORY if the kernel components don’t have sufficient memory to store the event in a list. See Direct3D 12 return codes for other possible return values.
Remarks
To specify multiple fences before an event is triggered, refer to SetEventOnMultipleFenceCompletion.
If hEvent is a null handle, then this API will not return until the specified fence value(s) have been reached.
This method can be safely called from multiple threads at one time.
Examples
The D3D12Multithreading sample uses ID3D12Fence::SetEventOnCompletion as follows:
// Wait for the command list to execute; we are reusing the same command
// list in our main loop but for now, we just want to wait for setup to
// complete before continuing.
// Signal and increment the fence value.
const UINT64 fenceToWaitFor = m_fenceValue;
ThrowIfFailed(m_commandQueue->Signal(m_fence.Get(), fenceToWaitFor));
m_fenceValue++;
// Wait until the fence is completed.
ThrowIfFailed(m_fence->SetEventOnCompletion(fenceToWaitFor, m_fenceEvent));
WaitForSingleObject(m_fenceEvent, INFINITE);
Refer to the Example code in the Direct3D 12 reference.
Requirements
Requirement | Value |
---|---|
Target Platform | Windows |
Header | d3d12.h |
Library | D3D12.lib |
DLL | D3D12.dll |