Função D3DKMTUpdateGpuVirtualAddress (d3dkmthk.h)

D3DKMTUpdateGpuVirtualAddress é uma operação especial usada no contexto de recursos de bloco. Ele permite que o driver especifique várias operações de mapeamento a serem aplicadas ao espaço de endereço virtual do processo em um único lote de atualizações de tabela de página.

Sintaxe

NTSTATUS D3DKMTUpdateGpuVirtualAddress(
  [in] const D3DKMT_UPDATEGPUVIRTUALADDRESS *unnamedParam1
);

Parâmetros

[in] unnamedParam1

Um ponteiro para uma estrutura D3DKMT_UPDATEGPUVIRTUALADDRESS que descreve a operação.

Retornar valor

Código de retorno Descrição
STATUS_SUCCESS O contexto do dispositivo foi criado com êxito.
STATUS_INVALID_PARAMETER Os parâmetros foram validados e determinados como incorretos.

Essa função também pode retornar outros valores NTSTATUS .

Comentários

O intervalo de endereços virtuais de GPU (unidade de processamento gráfico) em todas as operações (exceto a origem das operações de cópia) deve pertencer a um único intervalo de endereços virtuais que foi obtido chamando ReserveGpuVirtualAddressRange. Da mesma forma, os intervalos de endereços virtuais de todas as fontes em operações de cópia devem pertencer a um único intervalo de endereços virtuais, que foi obtido chamando ReserveGpuVirtualAddressRange.

As atualizações da tabela de página são executadas em um contexto de paginação, dedicadas ao contexto de renderização especificado e executadas na GPU somente após o contexto de renderização associado sinalizar FenceValue para o objeto de cerca monitorado especificado. Quando as atualizações da tabela de páginas são concluídas, o contexto de paginação sinaliza o objeto de cerca monitorado para FenceValue+1, permitindo que o contexto de renderização faça um estreita interconectamento com as atualizações da tabela de página.

Os intervalos de endereços virtuais nas operações de atualização têm permissão para interseção. As operações serão aplicadas na ordem em que forem enviadas.

Em uma única chamada UpdateVirtualAddress :

  • Todos os intervalos de endereços virtuais em operações de mapeamento e o intervalo de destino em operações de cópia devem pertencer ao mesmo intervalo reservado (zero).
  • O intervalo de endereços virtuais de origem em operações de cópia tem permissão para ser de um intervalo reservado diferente (zero).
  • O intervalo de endereços virtuais de origem em todas as operações de cópia deve pertencer ao mesmo intervalo reservado (zero).

Os drivers podem enviar muitas chamadas UpdateGpuVirtualAddress , que serão enfileiradas atrás da cerca de renderização. Quando o número de operações de atualização na fila exceder 128, o thread de chamada será bloqueado até que as operações anteriores sejam processadas pelo gerenciador de memória de vídeo.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 10
Servidor mínimo com suporte Windows Server 2016
Plataforma de Destino Universal
Cabeçalho d3dkmthk.h (inclua D3dkmthk.h)
Biblioteca Gdi32.lib
DLL Gdi32.dll

Confira também

D3DKMT_UPDATEGPUVIRTUALADDRESS

ReserveGpuVirtualAddressRange