Compartir a través de


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

El sistema operativo llama a dxgkDdiUpdateCurrentValuesFromCpu para actualizar el 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.

Observaciones

Esta DDI se usa para admitir la semántica existente de la API de "barrera de señal de CPU". En lugar de Dxgkrnl escribir un nuevo CurrentValue, se pide al controlador que escriba en CurrentValue para dar a los controladores la oportunidad de insertar las barreras o sincronización de escritura previa necesarias. 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 esta barrera y se desbloqueó con la actualización de 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 sea 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 Valor
cliente mínimo admitido Windows 11, versión 24H2
encabezado de d3dkmddi.h
irQL DISPATCH_LEVEL

Consulte también

DXGKARG_UPDATECURRENTVALUESFROMCPU