Método ID3D12Fence::SetEventOnCompletion (d3d12.h)
Especifica un evento que se genera cuando la barrera alcanza un valor determinado.
Sintaxis
HRESULT SetEventOnCompletion(
UINT64 Value,
HANDLE hEvent
);
Parámetros
Value
Tipo: UINT64
Valor de barrera cuando se va a señalar el evento.
hEvent
Tipo: HANDLE
Identificador del objeto de evento.
Valor devuelto
Tipo: HRESULT
Este método devuelve E_OUTOFMEMORY si los componentes del kernel no tienen suficiente memoria para almacenar el evento en una lista. Consulte Códigos de retorno de Direct3D 12 para ver otros valores devueltos posibles.
Comentarios
Para especificar varias barreras antes de que se desencadene un evento, consulte SetEventOnMultipleFenceCompletion.
Si hEvent es un identificador nulo, esta API no devolverá hasta que se hayan alcanzado los valores de barrera especificados.
Este método se puede llamar de forma segura desde varios subprocesos a la vez.
Ejemplos
El ejemplo D3D12Multithreading usa ID3D12Fence::SetEventOnCompletion de la siguiente manera:
// 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);
Consulte el código de ejemplo en la referencia de Direct3D 12.
Requisitos
Plataforma de destino | Windows |
Encabezado | d3d12.h |
Library | D3D12.lib |
Archivo DLL | D3D12.dll |