Compartir a través de


DXGKDDI_UPDATECURRENTVALUESFROMCPU función de devolución de llamada (d3dkmddi.h)

El sistema operativo llama a DxgkDdiUpdateCurrentValuesFromCpu para actualizar currentValue de un lote de barreras nativas de la CPU.

Sintaxis

DXGKDDI_UPDATECURRENTVALUESFROMCPU DxgkddiUpdatecurrentvaluesfromcpu;

NTSTATUS DxgkddiUpdatecurrentvaluesfromcpu(
  IN_CONST_PDXGKARG_UPDATECURRENTVALUESFROMCPU pUpdateCurrentValuesFromCpu
)
{...}

Parámetros

pUpdateCurrentValuesFromCpu

[in] Puntero a una estructura de DXGKARG_UPDATECURRENTVALUESFROMCPU que contiene los valores actuales que se van a actualizar.

Comentarios

Esta DDI se usa para admitir la semántica existente de la API de "barrera de señal de LA CPU". En lugar de Dxgkrnl escribiendo un nuevo CurrentValue, se pide al controlador que escriba en CurrentValue para dar a los controladores la oportunidad de insertar cualquier sincronización o barrera de escritura previa necesaria. El sistema operativo sincroniza las actualizaciones del lado cpu y garantiza que el valor más actualizado está disponible para DxgkDdiUpdateCurrentValuesFromCpu. Después de actualizar CurrentValue, el controlador debe desencadenar la GPU para desbloquear las colas de hardware que estaban esperando en esta barrera y se desbloqueó con la actualización a CurrentValue.

En pocas palabras, los pasos que debe seguir el controlador son:


for i = 1 : NumFences
  1. Insert pre-write memory barrier if required
  2. write new value to CurrentValueCpuVa
  3. trigger GPU to unblock any HwQueues that got unblocked by the updated CurrentValue
end

El sistema operativo solo garantiza que el puntero CurrentValueKernelCpuVa es válido durante la duración de esta llamada DDI y no antes o después de ella. Por lo tanto, KMD nunca debe almacenar en caché este puntero para su uso en otro lugar.

Para obtener más información sobre las barreras nativas de GPU, consulte Objetos de barrera de GPU nativas.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 11, versión 24H2
Encabezado d3dkmddi.h
IRQL DISPATCH_LEVEL

Consulte también

DXGKARG_UPDATECURRENTVALUESFROMCPU