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
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de