estrutura DXGK_VIDSCHCAPS (d3dkmddi.h)
A estrutura de DXGK_VIDSCHCAPS tem sinalizadores de campo de bit que identificam os recursos de agendamento da GPU que um KMD (driver de miniporto no modo kernel) 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;
UINT OptimizedNativeFenceSignaledInterrupt : 1;
#if ...
UINT Reserved : 19;
#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.
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 possam causar a interrupção da sincronização vertical. 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). Com suporte começando com Windows 8.
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. Observe que, 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.
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 de execução 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.
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. Com suporte começando com Windows 8.
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. Observe que quando NoDmaPatching é definido como 1, os membros PreemptionAware e MultiEngineAware também devem ser definidos como 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.
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.
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. Com suporte começando com Windows 8.
Se CancelCommandAware estiver definido como 1 (TRUE), o driver oferecerá suporte à limpeza de recursos associados a um pacote de DMA cancelado. Observe que quando CancelCommandAware é definido como 1, o membro MultiEngineAware também deve ser definido como 1. Se CancelCommandAware estiver definido como 1, mas MultiEngineAware estiver definido como zero, o sistema operacional retornará um código de falha.
Se CancelCommandAware estiver definido como zero (FALSE), o driver não oferecerá suporte à limpeza de recursos.
No64BitAtomics
Se No64BitAtomics estiver definido como 1 (TRUE), o driver indicará que a 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. Com suporte começando com Windows 10.
Se No64BitAtomics estiver definido como zero (FALSE), o driver indicará que a GPU é capaz de atualizar valores de 64 bits atomicamente, conforme visível pela CPU.
LowIrqlPreemptCommand
HwQueuePacketCap
Número máximo de pacotes DMA permitidos para serem enfileirados em um nó.
NativeGpuFence
Se o sistema operacional tiver habilitado o recurso DXGK_FEATURE_NATIVE_FENCE , o driver poderá declarar suporte para a funcionalidade de cerca de GPU nativa durante a inicialização do adaptador definindo o bit NativeGpuFence como 1. Essa funcionalidade é exposta ao modo de usuário por meio de um bit correspondente D3DKMT_WDDM_3_1_CAPS::NativeGpuFenceSupported . Para obter mais informações, consulte Objetos de cerca de GPU nativos. Disponível a partir do Windows 11, versão 22H2 (WDDM 3.1).
OptimizedNativeFenceSignaledInterrupt
O driver define esse TRUE se, em uma interrupção sinalizada, a GPU puder especificar em DXGKARGCB_NOTIFY_INTERRUPT_DATA::NativeFenceSignaled apenas o identificador KMD do HWQueue que estava em execução. Para obter mais informações, consulte Objetos de cerca de GPU nativos. Disponível a partir do Windows 11, versão 22H2 (WDDM 3.1).
Reserved
Esse membro é reservado e deve ser definido como zero.
Value
Uma maneira alternativa de acessar os sinalizadores de campo de bits na união.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista |
Cabeçalho | d3dkmddi.h (inclua D3dkmddi.h) |