DXGK_VIDSCHCAPS estrutura (d3dkmddi.h)

A estrutura DXGK_VIDSCHCAPS identifica os recursos de agendamento de GPU (unidade de processamento gráfico), em sinalizadores de campo de bit, que um driver pode dar suporte.

Sintaxe

typedef struct _DXGK_VIDSCHCAPS {
  union {
    struct {
      UINT MultiEngineAware : 1;
      UINT VSyncPowerSaveAware : 1;
      UINT PreemptionAware : 1;
      UINT NoDmaPatching : 1;
      UINT CancelCommandAware : 1;
      UINT No64BitAtomics : 1;
      UINT LowIrqlPreemptCommand : 1;
      UINT HwQueuePacketCap : 4;
      UINT NativeGpuFence : 1;
#if ...
      UINT Reserved : 20;
#elif
      UINT Reserved : 21;
#elif
      UINT Reserved : 25;
#elif
      UINT Reserved : 27;
#else
      UINT Reserved : 30;
#endif
    };
    UINT Value;
  };
} DXGK_VIDSCHCAPS;

Membros

MultiEngineAware

Um valor UINT que especifica se o driver dá suporte à criação e à destruição de um contexto de dispositivo (por meio das funções DxgkDdiCreateContext e DxgkDdiDestroyContext ) e o uso de um contexto de dispositivo (por meio das funções DxgkDdiPresent e DxgkDdiRender ). Se o driver não der suporte à criação de contexto, para cada chamada para o driver que passaria um identificador para um contexto, o subsistema de kernel de elementos gráficos do Microsoft DirectX substituirá o identificador para o contexto por um identificador para o dispositivo.

Definir esse membro é equivalente a definir o primeiro bit do membro Value de 32 bits (0x00000001).

VSyncPowerSaveAware

Um valor UINT que especifica se o driver dá suporte à funcionalidade de economia de energia de sincronização vertical.

Se o VSyncPowerSaveAware estiver definido como 1 (TRUE), o sistema operacional poderá economizar energia desabilitando e habilitando a interrupção de sincronização vertical que ocorre do uso de alguns aplicativos. Se o VSyncPowerSaveAware estiver definido como zero (FALSE), o sistema operacional nunca desabilitará a interrupção de sincronização vertical para aplicativos que podem fazer com que a interrupção da sincronização vertical ocorra.

Definir esse membro é equivalente a definir o segundo bit do membro Value de 32 bits (0x00000002).

Com suporte a partir do Windows Server 2008 e do Windows Vista com SP1.

PreemptionAware

Um valor UINT que especifica se o driver dá suporte à política de preempção de GPU de Windows 8 e versões posteriores do Windows. Com essa política, o sistema operacional sempre emite solicitações de pré-implantação para a GPU antes de iniciar o processo de TDR (Detecção e Recuperação de Tempo Limite) ** .

Se PreemptionAware estiver definido como 1 (TRUE), o driver oferecerá suporte à política de preempção de Windows 8 e versões posteriores do Windows.

Se PreemptionAware estiver definido como zero (FALSE), o driver oferecerá suporte à política de preempção do Windows 7. Com essa política, o sistema operacional pode não emitir solicitações de pré-implantação enquanto operações de execução potencialmente longas estão sendo executadas na GPU. Como resultado, essas solicitações de GPU não são preempcionadas antes do processo TDR ser iniciado. Isso pode fazer com que o processo TDR redefina repetidamente a GPU, o que pode levar a um erro de parada do sistema.

Observação

Se PreemptionAware for definido como 1, o membro MultiEngineAware também deverá ser definido como um valor de 1. Se PreemptionAware estiver definido como 1, mas o MultiEngineAware estiver definido como zero, o sistema operacional interromperá o processo de inicialização do driver e retornará um código de falha.

Definir esse membro é equivalente a definir o terceiro bit do membro Value de 32 bits (0x00000004).

Suporte para começar com Windows 8.

NoDmaPatching

Um valor UINT que especifica se o driver desabilita a detecção de vazamento para buffers DMA divididos em várias partes. Essa detecção é executada depois que a função DxgkDdiPatch do driver é chamada para atribuir ou corrigir endereços físicos a cada parte do buffer DMA.

Observação

Exibir dispositivos que dão suporte a endereços virtuais pode reprogramar um endereço virtual para um novo local de memória de vídeo sem precisar corrigir o valor do endereço do buffer DMA. Para esses tipos de dispositivos de exibição, o driver deve definir NoDmaPatching como 1.

Se NoDmaPatching for definido como 1 (TRUE), o driver desabilitará a detecção de vazamento e o comportamento da divisão de buffer de DMA será o mesmo que no Windows 7.

Se NoDmaPatching estiver definido como 0 (FALSE), o driver habilitará a detecção de vazamento para endereços de buffer DMA corrigidos. O sistema operacional executa a detecção de vazamento antes de chamar a função DxgkDdiPatch do driver.

Observação

Se NoDmaPatching estiver definido como 1, os membros PreemptionAware e MultiEngineAware também deverão ser definidos como um valor de 1. Se NoDmaPatching estiver definido como 1, mas PreemptionAware ou MultiEngineAware estiver definido como zero, o sistema operacional interromperá o processo de inicialização do driver e retornará um código de falha.

Definir esse membro é equivalente a definir o quarto bit do membro Value de 32 bits (0x0000008).

Suporte para começar com Windows 8.

CancelCommandAware

Um valor UINT que especifica se o driver dá suporte à limpeza de recursos internos (por meio da função DxgkDdiCancelCommand ) depois que um comando é removido da fila de hardware.

Se CancelCommandAware estiver definido como 1 (TRUE), o driver oferecerá suporte à limpeza de recursos associados a um pacote DMA cancelado. Se CancelCommandAware estiver definido como zero (FALSE), o driver não oferecerá suporte à limpeza de recursos.

Observação

Se CancelCommandAware estiver definido como 1, o membro MultiEngineAware também deverá ser definido como um valor de 1. Se CancelCommandAware estiver definido como 1, mas o MultiEngineAware estiver definido como zero, o sistema operacional retornará um código de falha.

Definir esse membro é equivalente a definir o quinto bit do membro Value de 32 bits (0x0000010).

Suporte para começar com Windows 8.

No64BitAtomics

Valor Significado
TRUE Indica que uma GPU é capaz de atualizar apenas valores de 32 bits atomicamente. Nesse caso, o sistema operacional manipulará automaticamente o caso de quebra de cerca, no entanto, colocará uma restrição de que um valor de cerca de espera e sinal pendente não pode ser maior do que UINT_MAX/2, além do último valor de cerca sinalizado.
FALSE Indica que uma GPU é capaz de atualizar valores de 64 bits atomicamente tão visíveis pela CPU.

Suporte para começar com Windows 10.

LowIrqlPreemptCommand

HwQueuePacketCap

Número máximo de pacotes DMA permitidos para serem enfileirados em um nó.

NativeGpuFence

Reserved

Esse membro é reservado e deve ser definido como zero.

Value

Um membro do sindicato que DXGK_VIDSCHCAPS contém que pode conter um valor de 32 bits que identifica os recursos de agendamento de GPU que o driver pode dar suporte.

Requisitos

   
Cliente mínimo com suporte Disponível a partir do Windows Vista.
Cabeçalho d3dkmddi.h (inclua D3dkmddi.h)

Confira também

DXGK_DRIVERCAPS

DxgkDdiCancelCommand

DxgkDdiCreateContext

DxgkDdiDestroyContext

DxgkDdiPatch

DxgkDdiPresent

DxgkDdiRender