Поделиться через


структура DXGK_SET_TIMING_PATH_INFO (d3dkmddi.h)

Структура для хранения сведений для изменения пути SetTiming .

Синтаксис

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;

Члены

VidPnTargetId

Идентификатор целевого объекта видеотрансляции видеоадаптера.

OutputColorSpace

Значение D3DDDI_COLOR_SPACE_TYPE , описывающее выходное цветовое пространство, предназначенное для перемещаемых пикселей. Драйвер отвечает за отправку соответствующих метаданных, чтобы убедиться, что устройство отображения настроено для правильной интерпретации пикселей для этого цветового пространства.

Выходное цветовое пространство фиксируется до тех пор, пока не будет изменено другим вызовом SetTiming. Если цветовое пространство, заданное в цепочке буферов для этого целевого объекта, отличается от выходного цветового пространства, драйвер должен преобразовать в выходное цветовое пространство во время сканирования.

Если на целевом объекте включено несколько плоскостей пикселей, драйвер должен выполнить композицию плоскостей в допустимом цветовом пространстве композиции, обычно в линейном пространстве в дополнение к преобразованию составных пикселей в выходное цветовое пространство.

Так как selectedWireFormat уже указывает кодировку цвета и подвыбирание chroma, OutputColorSpace используется только для определения первичных и гамма-значений, с помощью которых следует кодировать значения пикселей; другие элементы: цветовая модель, диапазон и cositing следует игнорировать, так как они определены в SelectedWireFormat. Учитывая, что не планируется поддержка ST.2084 гамма с основными rec.709 или 2.2 гамма с первичной версией Rec 2020, в результате в ОС в выпуске RS2 устанавливаются только два значения, которые:

  • D3DDDI_COLOR_SPACE_RGB_FULL_G22_NONE_P709 для SDR
  • D3DDDI_COLOR_SPACE_RGB_FULL_G2084_NONE_P2020 для HDR10

OutputWireColorSpace

Тип перечисления D3DDDI_COLOR_SPACE_TYPE также используется ОПЕРАЦИОННОй системой для указания входного цветового пространства объектов управления, поэтому он является устаревшим, начиная с WDDM 2.3. Драйверы WDDM 2.3 и более поздних версий должны использовать новый тип D3DDDI_OUTPUT_WIRE_COLOR_SPACE_TYPE.

SelectedWireFormat

Значение D3DKMDT_WIRE_FORMAT_AND_PREFERENCE , указывающее формат провода, который необходимо задать для пути. Поле Предпочтения зарезервировано в этом контексте, поэтому драйвер должен игнорировать его. В оставшихся пяти битовых полях ОС установит один из тридцати битов, чтобы указать, какая кодировка цвета и на какой битовой глубине должна управлять ссылка.

Input

Input.VidPnPathUpdates

Описывает, как элементы VidPn, соответствующие этому пути, были изменены с момента предыдущего успешного вызова.

Поля в структуре DXGK_SET_TIMING_PATH_INFO исключаются из этой сводки, поэтому драйвер всегда должен оценивать эти поля на наличие изменений. Например, если ОС вызывает SetTimings для бездействия монитора по пути, флаг Active будет снят, а для параметра VidPnPathUpdates будет задано значение DXGK_PATH_UPDATE_UNMODIFIED, если затем он вызывает SetTimings для включения питания монитора, будет установлен флаг Активный, а для параметра VidPnPathUpdates по-прежнему будет установлено значение DXGK_PATH_UPDATE_UNMODIFIED.

Input.Active

Если задано значение , указывает, что путь должен быть активирован или оставаться активным. Если путь не задан, указывает, что путь должен быть деактивирован или оставаться неактивным.

Input.IgnoreConnectivity

Если задано значение , указывает, что драйвер должен принудительно выводить данные в целевой объект, даже если устройство отображения не обнаружено. Если значение не задано, драйвер должен сообщить об обновленном ConnectionStatus, если подключение изменилось.

Input.PreserveInherited

Если задано значение , указывает, что драйвер должен сохранить время и содержимое, которые были настроены предыдущим драйвером. Этот флаг используется только в том случае, если адаптер был настроен не текущим экземпляром драйвера. Изначально он будет использоваться при инициализации пути встроенного ПО во время загрузки. Если это не так, специальное поведение не запрашивается.

Input.SyncLockGroup

Синхронизация входных данных группы блокировки. Доступно начиная с версии WDDM 2.4. Указывает, к какой группе синхронизированных отображается каждый путь. Так как WDDM 2.4 — WDDM 2.6 поддерживает только одну группу синхронизации для каждого адаптера и всегда включает синхронизацию, если это возможно, это значение устанавливается равным 1, если включены экраны с поддержкой синхронизации, и 0, когда дисплей не требует синхронизации и всегда должен быть связан с SyncLockStyle со значением DXGK_SYNC_LOCK_STYLE_NONE.

Input.SyncLockStyle

Входные данные в стиле блокировки синхронизации. Доступно начиная с версии WDDM 2.4. Указывает, какой стиль синхронизации запрашивает ОС. Для драйвера WDDM 2.4 – WDDM 2.6 это значение равно DXGK_SYNC_LOCK_STYLE_IDENTICAL , если включены синхронизироваться дисплеи, и DXGK_SYNC_LOCK_STYLE_NONE в противном случае.

Input.Reserved

Это значение зарезервировано для использования системой.

InputFlags

Набор флагов, указывающих, что операционная система хочет сделать драйверу.

Output

Output.RecheckMPO

Если задано значение , указывает, что ОС должна выдать CheckMPO из-за изменений в этом пути.

Output.Reserved

Это значение зарезервировано для использования системой.

OutputFlags

Набор флагов, указывающих результаты, которые ОС должна учитывать, связанные с этим путем.

TargetState

Указывает целевое состояние в результате этого вызова. Так как изменение времени может привести к состоянию подключения как измененных целевых объектов, так и целевых объектов, которые операционная система не намеревалась изменять, это поле сообщает состояние для каждого пути.

Если целевое состояние не изменилось, это поле должно содержать копию последнего состояния, указанного в целевом объекте, включая тот же connectionChangeId, о котором было сообщено ранее.

Если целевое состояние изменено, это поле должно содержать копию изменения подключения в очереди, которое отражает состояние, полученное в результате вызова SetTiming.

GlitchCause

Значение DXGK_GLITCH_CAUSE, указывающее, какие базовые изменения в конвейере отображения вызвали сбой.

GlitchEffect

Значение DXGK_GLITCH_EFFECT, указывающее, как сбой был представлен пользователю.

GlitchDuration

Значение DXGK_GLITCH_DURATION, указывающее, как долго длился сбой. Это предназначено для того, чтобы отразить, как долго существовала основная проблема, но в некоторых случаях видимый эффект может быть дольше. Например, если синхронизация теряется достаточно долго для повторного обнаружения монитором, устройство отображения, скорее всего, займет много кадров для восстановления. Это продолжительность базовой проблемы, о которой следует сообщить, а не время восстановления, так как оно будет отличаться на разных устройствах.

Reserved

Это значение зарезервировано для использования системой.

DiagnosticInfo

Набор сведений, заполняемых драйвером для каждого пути для описания побочных эффектов изменения времени. Во многих случаях сбои неизбежны, поэтому эти поля пытаются понять основную причину и степень влияния на пользователей.

Требования

Требование Значение
Заголовок d3dkmddi.h