Compartilhar via


estrutura DXGK_SET_TIMING_PATH_INFO (d3dkmddi.h)

Estrutura para armazenar informações para modificar o caminho SetTiming .

Sintaxe

typedef struct _DXGK_SET_TIMING_PATH_INFO {
  D3DDDI_VIDEO_PRESENT_TARGET_ID     VidPnTargetId;
  union {
    D3DDDI_COLOR_SPACE_TYPE             OutputColorSpace;
    D3DDDI_OUTPUT_WIRE_COLOR_SPACE_TYPE OutputWireColorSpace;
  };
  D3DKMDT_WIRE_FORMAT_AND_PREFERENCE SelectedWireFormat;
  union {
    struct {
      DXGK_PATH_UPDATE     VidPnPathUpdates : 2;
      UINT                 Active : 1;
      UINT                 IgnoreConnectivity : 1;
      UINT                 PreserveInherited : 1;
      UINT                 SyncLockGroup : 3;
      DXGK_SYNC_LOCK_STYLE SyncLockStyle : 4;
#if ...
      UINT                 Reserved : 20;
#else
      UINT                 Reserved : 27;
#endif
    } Input;
    UINT InputFlags;
  };
  union {
    struct {
      UINT RecheckMPO : 1;
      UINT Reserved : 31;
    } Output;
    UINT OutputFlags;
  };
  DXGK_CONNECTION_CHANGE             TargetState;
  union {
    struct {
      DXGK_GLITCH_CAUSE    GlitchCause;
      DXGK_GLITCH_EFFECT   GlitchEffect;
      DXGK_GLITCH_DURATION GlitchDuration;
      UINT8                Reserved;
    };
    UINT DiagnosticInfo;
  };
} DXGK_SET_TIMING_PATH_INFO;

Membros

VidPnTargetId

O identificador do destino presente do vídeo de um adaptador de exibição.

OutputColorSpace

Um valor D3DDDI_COLOR_SPACE_TYPE que descreve o espaço de cor de saída destinado aos pixels transportados. O driver é responsável por enviar metadados apropriados para garantir que o dispositivo de exibição esteja configurado para interpretar pixels corretamente para esse espaço de cores.

O colorspace de saída é corrigido até ser modificado por outra chamada SetTiming. Se o conjunto de colorspaces na cadeia de troca apresentada a esse destino for diferente do colorspace de saída, o driver será necessário para converter no colorspace de saída durante a verificação.

Se vários planos de pixel estiverem habilitados no destino, o driver deverá executar a composição dos planos em um colorspace de composição válido, normalmente um espaço linear além de converter os pixels compostos no colorspace de saída.

Como SelectedWireFormat já indica a codificação de cores e a subampação chroma, o OutputColorSpace é usado apenas para determinar as primárias e gama com as quais os valores de pixel devem ser codificados; os outros elementos: modelo de cores, intervalo e cositing devem ser ignorados conforme são definidos pelo SelectedWireFormat. Considerando que não há planos para dar suporte ao gama ST.2084 com primárias rec.709 ou gama 2.2 com primárias do Rec 2020, o resultado é que apenas dois valores são definidos pelo sistema operacional na versão RS2, que são:

  • D3DDDI_COLOR_SPACE_RGB_FULL_G22_NONE_P709, para SDR
  • D3DDDI_COLOR_SPACE_RGB_FULL_G2084_NONE_P2020, para HDR10

OutputWireColorSpace

O tipo de enumeração D3DDDI_COLOR_SPACE_TYPE também é usado pelo sistema operacional para especificar o espaço de cor de entrada de MPOs, portanto, ele é preterido começando no WDDM 2.3. Os drivers WDDM 2.3 e posteriores devem usar o novo tipo D3DDDI_OUTPUT_WIRE_COLOR_SPACE_TYPE.

SelectedWireFormat

Um valor D3DKMDT_WIRE_FORMAT_AND_PREFERENCE que indica o formato de fio a ser definido para o caminho. O campo Preferência é reservado nesse contexto, portanto, deve ser ignorado pelo driver. Nos cinco campos de bit restantes, o sistema operacional definirá um dos trinta bits para indicar qual codificação de cor e em qual profundidade de bit o link deve ser controlado.

Input

Input.VidPnPathUpdates

Descreve como os elementos VidPn correspondentes a esse caminho foram alterados desde a chamada anterior bem-sucedida.

Os campos na estrutura DXGK_SET_TIMING_PATH_INFO são excluídos desse resumo para que o driver sempre precise avaliar esses campos para quaisquer alterações. Por exemplo, se o sistema operacional chamar SetTimings para ocioso do monitor em um caminho, o sinalizador Ativo será limpo e o VidPnPathUpdates será definido como DXGK_PATH_UPDATE_UNMODIFIED, se ele chamar SetTimings para ligar o monitor, o sinalizador Ativo será definido e o VidPnPathUpdates ainda será definido como DXGK_PATH_UPDATE_UNMODIFIED.

Input.Active

Se definido, indica que o caminho deve ser ativado ou permanecer ativo. Se estiver claro, indica que o caminho deve ser desativado ou permanecer inativo.

Input.IgnoreConnectivity

Se definido, indica que o driver deve forçar a saída para o destino, mesmo que nenhum dispositivo de exibição tenha sido detectado. Se estiver claro, o driver deverá relatar um ConnectionStatus atualizado se a conectividade tiver sido alterada.

Input.PreserveInherited

Se definido, indica que o driver deve preservar os intervalos e o conteúdo que foram configurados por um driver anterior. Esse sinalizador só é usado quando o adaptador foi configurado por algo diferente da instância atual do driver. Inicialmente, isso será usado quando o caminho foi inicializado por firmware durante a inicialização. Se estiver claro, nenhum comportamento especial será solicitado.

Input.SyncLockGroup

Sincronizar entrada do grupo de bloqueio. Disponível a partir do WDDM 2.4. Indica a qual grupo de exibições sincronizadas cada caminho pertence. Como o WDDM 2.4 – WDDM 2.6 só dá suporte a um único grupo de sincronização por adaptador e sempre habilita a sincronização quando possível, esse valor é definido como 1 quando as exibições sincronizadas são habilitadas e 0 quando a exibição não é necessária para ser sincronizada e sempre deve ser emparelhada com SyncLockStyle do valor DXGK_SYNC_LOCK_STYLE_NONE.

Input.SyncLockStyle

Sincronizar entrada de estilo de bloqueio. Disponível a partir do WDDM 2.4. Indica qual estilo de sincronização o sistema operacional está solicitando. Para um driver WDDM 2.4 – WDDM 2.6, esse valor será definido como DXGK_SYNC_LOCK_STYLE_IDENTICAL se as exibições sincronizadas estiverem habilitadas e DXGK_SYNC_LOCK_STYLE_NONE caso contrário.

Input.Reserved

Esse valor é reservado para uso do sistema.

InputFlags

Um conjunto de sinalizadores que especifica o que o sistema operacional deseja que o driver faça.

Output

Output.RecheckMPO

Se definido, indica que o sistema operacional precisa emitir um CheckMPO devido a alterações nesse caminho.

Output.Reserved

Esse valor é reservado para uso do sistema.

OutputFlags

Um conjunto de sinalizadores que especificam os resultados que o sistema operacional precisa estar ciente em relação a esse caminho.

TargetState

Indica o estado de destino como resultado dessa chamada. Como alterar os intervalos pode causar o estado de conexão de destinos e destinos modificados que o sistema operacional não pretendia alterar, esse campo comunica o estado de cada caminho.

Se o estado de destino não for alterado, esse campo deverá conter uma cópia do último estado relatado no destino, incluindo o mesmo ConnectionChangeId que foi relatado anteriormente.

Se o estado de destino for alterado, esse campo deverá conter uma cópia da alteração de conexão enfileirada, que reflete o estado resultante da chamada SetTiming.

GlitchCause

Um valor DXGK_GLITCH_CAUSE que indica quais alterações subjacentes no pipeline de exibição causaram a falha.

GlitchEffect

Um valor DXGK_GLITCH_EFFECT que indica como a falha foi apresentada ao usuário.

GlitchDuration

Um valor DXGK_GLITCH_DURATION que indica aproximadamente quanto tempo a falha durou. Isso se destina a refletir quanto tempo o problema subjacente estava presente, mas o efeito visível pode ser maior em alguns casos. Por exemplo, quando a sincronização é perdida tempo suficiente para um monitor ter que detectar novamente, o dispositivo de exibição provavelmente levará muitos quadros para recuperar. É o comprimento do problema subjacente que deve ser relatado, não o tempo de recuperação, pois isso variará entre os dispositivos.

Reserved

Esse valor é reservado para uso do sistema.

DiagnosticInfo

Conjunto de informações preenchidas pelo driver para cada caminho para descrever quaisquer efeitos colaterais da alteração de tempo. Em muitos casos, falhas são inevitáveis, portanto, esses campos tentam entender a causa subjacente e a extensão do impacto do usuário.

Requisitos

Requisito Valor
Cabeçalho d3dkmddi.h