Condividi tramite


Metodo ID3D12CommandQueue::Signal (d3d12.h)

Aggiornamenti un recinto a un valore specificato.

Sintassi

HRESULT Signal(
  ID3D12Fence *pFence,
  UINT64      Value
);

Parametri

pFence

Tipo: ID3D12Fence*

Puntatore all'oggetto ID3D12Fence .

Value

Tipo: UINT64

Valore da impostare su.

Valore restituito

Tipo: HRESULT

Questo metodo restituisce uno dei codici restituiti Direct3D 12.

Commenti

Usare questo metodo per impostare un valore di recinzione dal lato GPU. Usare ID3D12Fence::Signal per impostare una recinzione dal lato CPU.

Esempio

Aggiunge un segnale alla coda dei comandi, quindi attende che il calcolo shader completi la simulazione, infine segnali e incrementi il valore del recinto.

// 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++;

Fare riferimento al codice di esempio nel riferimento D3D12.

Requisiti

Requisito Valore
Piattaforma di destinazione Windows
Intestazione d3d12.h
Libreria D3D12.lib
DLL D3D12.dll

Vedi anche

ID3D12CommandQueue

Sincronizzazione multi-motore