Función D3DKMTUpdateGpuVirtualAddress (d3dkmthk.h)
D3DKMTUpdateGpuVirtualAddress es una operación especial que se usa en el contexto de los recursos de mosaico. Permite al controlador especificar una serie de operaciones de asignación que se aplicarán al espacio de direcciones virtuales del proceso en un único lote de actualizaciones de tabla de páginas.
Sintaxis
NTSTATUS D3DKMTUpdateGpuVirtualAddress(
[in] const D3DKMT_UPDATEGPUVIRTUALADDRESS *unnamedParam1
);
Parámetros
[in] unnamedParam1
Puntero a una estructura de D3DKMT_UPDATEGPUVIRTUALADDRESS que describe la operación.
Valor devuelto
Código devuelto | Descripción |
---|---|
STATUS_SUCCESS | El contexto del dispositivo se creó correctamente. |
STATUS_INVALID_PARAMETER | Los parámetros se validaron y determinaron que son incorrectos. |
Esta función también puede devolver otros valores NTSTATUS .
Comentarios
El intervalo de direcciones virtuales de la unidad de procesamiento de gráficos (GPU) en todas las operaciones (excepto el origen de las operaciones de copia) debe pertenecer a un único intervalo de direcciones virtuales que se obtuvo llamando a ReserveGpuVirtualAddressRange. Del mismo modo, los intervalos de direcciones virtuales de todos los orígenes de las operaciones de copia deben pertenecer a un único intervalo de direcciones virtuales, que se obtuvo llamando a ReserveGpuVirtualAddressRange.
Las actualizaciones de la tabla de páginas se ejecutan en un contexto de paginación, dedicado al contexto de representación especificado y se ejecutan en la GPU solo después del contexto de representación asociado señalizado FenceValue para el objeto de barrera supervisado especificado. Cuando finaliza la actualización de la tabla de páginas, el contexto de paginación señala el objeto de barrera supervisado a FenceValue+1, lo que permite que el contexto de representación realice un interbloqueo estrecho con las actualizaciones de la tabla de páginas.
Los intervalos de direcciones virtuales de las operaciones de actualización pueden intersecrse. Las operaciones se aplicarán en el orden en que se envíen.
En una sola llamada a UpdateVirtualAddress :
- Todos los intervalos de direcciones virtuales de las operaciones de asignación y el intervalo de destino de las operaciones de copia deben pertenecer al mismo intervalo reservado (cero).
- El intervalo de direcciones virtuales de origen en las operaciones de copia puede ser de un intervalo reservado (cero) diferente.
- El intervalo de direcciones virtuales de origen de todas las operaciones de copia debe pertenecer al mismo intervalo reservado (cero).
Los controladores pueden enviar muchas llamadas a UpdateGpuVirtualAddress , que se ponerán en cola detrás de la barrera de representación. Cuando el número de operaciones de actualización en cola supera 128, el subproceso de llamada se bloqueará hasta que el administrador de memoria de vídeo procese las operaciones anteriores.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 10 |
Servidor mínimo compatible | Windows Server 2016 |
Plataforma de destino | Universal |
Encabezado | d3dkmthk.h (incluya D3dkmthk.h) |
Library | Gdi32.lib |
Archivo DLL | Gdi32.dll |