Share via


estrutura DXGK_VIDSCHCAPS (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 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 VSyncPowerSaveAware estiver definido como zero (FALSE), o sistema operacional nunca desabilitará a interrupção de sincronização vertical para aplicativos que podem causar a interrupção da sincronização vertical.

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 preempçã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 preempção enquanto operações potencialmente longas estão sendo executadas na GPU. Como resultado, essas solicitações de GPU não são preempcionadas antes que o processo TDR seja 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 estiver definido como 1, o membro MultiEngineAware também deverá ser definido como um valor de 1. Se PreemptionAware estiver definido como 1, mas 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).

Com suporte começando 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 patch, endereços físicos a cada parte do buffer DMA.

Observação

Os dispositivos de exibição que dão suporte a endereços virtuais podem 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 de DMA. Para esses tipos de dispositivos de exibição, o driver deve definir NoDmaPatching como 1.

Se NoDmaPatching estiver 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 de 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).

Com suporte começando 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 de 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 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).

Com suporte começando 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, mas colocará uma restrição de que os valores pendentes de espera e cerca de sinal não podem ser mais 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 conforme visível pela CPU.

Com suporte começando 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 no 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

Requisito Valor
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