Compartilhar via


D3DKMDT_FENCESTORAGESURFACEDATA estrutura (d3dkmddi.h)

A estrutura D3DKMDT_FENCESTORAGESURFACEDATA descreve os segmentos de memória em que o armazenamento de cerca deve ser colocado.

Sintaxe

typedef struct _D3DKMDT_FENCESTORAGESURFACEDATA {
  UINT                          PhysicalAdapterIndex;
  DXGKARG_FENCESTORAGEVALUETYPE FenceStorageValueType;
  D3DDDI_NATIVEFENCE_TYPE       FenceStorageType;
  UINT                          PrivateDriverDataSize;
  BYTE                          *pPrivateDriverData;
  DXGKARG_FENCESTORAGEFLAGS     Flags;
  UINT                          Reserved;
  DXGK_ALLOCATIONINFO           AllocationInfo;
} D3DKMDT_FENCESTORAGESURFACEDATA;

Membros

PhysicalAdapterIndex

[in] O índice do adaptador físico em uma configuração LDA em que o armazenamento de cerca será residente.

FenceStorageValueType

[in] Um valor DXGKARG_FENCESTORAGEVALUETYPE que especifica o tipo do valor de cerca nativa.

FenceStorageType

[in] Um valor D3DDDI_NATIVEFENCE_TYPE que especifica o tipo da cerca nativa.

PrivateDriverDataSize

[in] O tamanho, em bytes, dos dados de driver privado que pPrivateDriverData aponta para.

pPrivateDriverData

[in] Um ponteiro para os dados do driver privado. Reservado para uso futuro.

Flags

[in] Um valor DXGKARG_FENCESTORAGEFLAGS que especifica os sinalizadores para o armazenamento de cerca.

Reserved

[in] Reservado para uso futuro.

AllocationInfo

[out] Uma estrutura DXGK_ALLOCATIONINFO na qual o driver deve retornar propriedades de alocação.

Observações

Quando o sistema operacional chama a função DxgkDdiGetStandardAllocation do driver do modo kernel com um tipo de alocação padrão de D3DKMDT_STANDARDALLOCATION_FENCESTORAGE, o driver deve retornar os segmentos de memória em que o armazenamento de cerca deve ser colocado em D3DKMDT_FENCESTORAGESURFACEDATA.

Com base nos campos de entrada, o driver precisa preencher as seguintes informações de alocação em AllocationInfo:

  • supportedWriteSegmentSet
  • EvictionSegmentSet
  • preferredSegment

O driver deve ignorar o ponteiro para dados privados. O driver não deve verificar se o ponteiro é NULL e não deve solicitar dados privados definindo seu tamanho.

Os valores monitorados de cercas nativas devem ser colocados em um segmento de memória visível da CPU, pois são atualizados usando ponteiros de CPU.

Após a criação de um objeto de cerca nativa que tenha o tipo D3DDDI_NATIVEFENCE_TYPE_INTRA_GPU, o driver de modo de usuário deve sempre definir o valor inicial enviando um pacote DMA usando um endereço virtual de GPU. Os valores atuais são empacotados em uma página de memória 4K, que pode estar em um segmento de memória local visível não CPU. Portanto, o sistema operacional não tem uma maneira de definir o valor inicial.

As alocações compartilhadas são sempre colocadas na memória do sistema.

Para obter mais informações, consulte objetos de cerca de GPU nativa.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows 11, versão 24H2 (WDDM 3.2)
cabeçalho d3dkmddi.h

Consulte também

D3DDDI_NATIVEFENCE_TYPE

D3DKMDT_STANDARDALLOCATION_TYPE

DXGK_ALLOCATIONINFO

DXGKARG_FENCESTORAGEFLAGS

DXGKARG_FENCESTORAGEVALUETYPE

DXGKARG_GETSTANDARDALLOCATIONDRIVERDATA

DxgkDdiGetStandardAllocation