Método ID3D12CommandQueue::Signal (d3d12.h)
Novedades una barrera a un valor especificado.
HRESULT Signal(
ID3D12Fence *pFence,
UINT64 Value
);
pFence
Tipo: ID3D12Fence*
Puntero al objeto ID3D12Fence .
Value
Tipo: UINT64
Valor en el que se va a establecer la barrera.
Tipo: HRESULT
Este método devuelve uno de los códigos de retorno de Direct3D 12.
Use este método para establecer un valor de barrera del lado de la GPU. Use ID3D12Fence::Signal para establecer una barrera desde el lado de la CPU.
Agrega una señal a la cola de comandos y, a continuación, espera a que el sombreador de proceso complete la simulación, por último señale e incremente el valor de barrera.
// 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++;
Consulte el código de ejemplo en la referencia de D3D12.
Requisito | Value |
---|---|
Plataforma de destino | Windows |
Encabezado | d3d12.h |
Library | D3D12.lib |
Archivo DLL | D3D12.dll |