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


структура 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 уже указывает кодировку цвета и подсемплинирование хрома, OutputColorSpace используется только для определения первичных и гамма, с которыми должны быть закодированы значения пикселей; Другие элементы: цветовая модель, диапазон и коситирование должны игнорироваться, так как они определены в 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 также используется ОС для указания входного цветового пространства MPOS, поэтому он устарел, начиная с 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 для простоя монитора по пути, флаг "Активный" будет снят, и для 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