перечисление IDDCX_ADAPTER_FLAGS (iddcx.h)

IDDCX_ADAPTER_FLAGS указывает логические флаги возможностей для непрямого видеоадаптера.

Синтаксис

typedef enum IDDCX_ADAPTER_FLAGS {
  IDDCX_ADAPTER_FLAGS_NONE = 0,
  IDDCX_ADAPTER_FLAGS_USE_SMALLEST_MODE = 0x1,
  IDDCX_ADAPTER_FLAGS_CAN_USE_MOVE_REGIONS = 0x2,
  IDDCX_ADAPTER_FLAGS_REMOTE_SESSION_DRIVER = 0x4,
  IDDCX_ADAPTER_FLAGS_PREFER_PHYSICALLY_CONTIGUOUS = 0x8,
  IDDCX_ADAPTER_FLAGS_REMOTE_ALL_CURSOR_POSITION = 0x10,
  IDDCX_ADAPTER_FLAGS_PREFER_PRECISE_PRESENT_REGIONS = 0x20,
  IDDCX_ADAPTER_FLAGS_CAN_PROCESS_FP16 = 0x40,
  IDDCX_ADAPTER_FLAGS_REMOTE_ALL_TARGET_MODES_MONITOR_COMPATIBLE = 0x80
} ;

Константы

 
IDDCX_ADAPTER_FLAGS_NONE
Значение: 0
Указывает, что для адаптера не установлены флаги.
IDDCX_ADAPTER_FLAGS_USE_SMALLEST_MODE
Значение: 0x1
Модель непрямого отображения автоматически поддерживает виртуальные режимы ОС, позволяя ОС легко изменять режим с помощью масштабирования диспетчера окон рабочего стола (DWM) для каждого кадра без изменения режима отображения. Недостаток возникает, когда пользователь использует режим меньшего рабочего стола: изображение рабочего стола, предоставленное драйверу, больше размера рабочего стола, что приводит к трате пропускной способности кодирования и передачи.

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

Установка этого флага приводит к изменению режима при каждом изменении разрешения рабочего стола.
IDDCX_ADAPTER_FLAGS_CAN_USE_MOVE_REGIONS
Значение: 0x2
Этот флаг был нерекомендуем, начиная с IddCx версии 1.7. Драйверы по-прежнему могут устанавливать этот флаг для IddCx 1.7 и более поздних версий, но это не будет действовать. Если драйвер предназначен для работы в предварительной версии IddCx 1.7 и устанавливает этот флаг, этот драйвер должен иметь логику для обработки перемещений; В противном случае пользователи будут видеть визуальные проблемы при запуске в системах, предшествующих IddCx 1.7.

Указывает, может ли драйвер использовать области перемещения, предоставляемые ОС, в дополнение к грязное прямоугольникам при кодировании образа. Драйвер должен присвоить этому параметру значение TRUE только в том случае, если он использует регионы перемещения, так как при создании этих дополнительных ресурсов операционная система влечет за собой затраты. Если драйвер задает значение FALSE, ОС преобразует все области перемещения в грязное прямоугольники.
IDDCX_ADAPTER_FLAGS_REMOTE_SESSION_DRIVER
Значение: 0x4
Указывает, является ли драйвер драйвером удаленного сеанса, поддерживающим удаленные мониторы сеансов, а не консольные мониторы сеансов. Драйвер удаленного сеанса не может поддерживать мониторы сеансов консоли, а драйвер сеанса консоли не может поддерживать удаленные мониторы сеансов. Поддерживается начиная с IddCx версии 1.4.
IDDCX_ADAPTER_FLAGS_PREFER_PHYSICALLY_CONTIGUOUS
Значение: 0x8
Указывает, что драйвер предпочитает использовать физически непрерывную память для буферов цепочки буферов, что позволяет драйверу напрямую сканировать буферы без необходимости промежуточного копирования. Поддерживается начиная с IddCx версии 1.6.
IDDCX_ADAPTER_FLAGS_REMOTE_ALL_CURSOR_POSITION
Значение: 0x10
Указывает, что драйвер хочет получать все изменения положения курсора; то есть он хочет получать как ввод с помощью мыши, внедренный в удаленный сеанс от удаленного клиента, так и процедурные перемещения, вызванные вызовом API из приложения или ОС на сервере.

Этот флаг действителен только в сочетании с IDDCX_ADAPTER_FLAGS_REMOTE_SESSION_DRIVER. IddCxAdapterInitAsync завершится ошибкой , если IDDCX_ADAPTER_FLAGS_REMOTE_ALL_CURSOR_POSITION задан без IDDCX_ADAPTER_FLAGS_REMOTE_SESSION_DRIVER.

Поддерживается начиная с IddCx версии 1.7.
IDDCX_ADAPTER_FLAGS_PREFER_PRECISE_PRESENT_REGIONS
Значение: 0x20
Драйвер, устанавливающий этот флаг, запрашивает более точное отслеживание грязное регионах обновлений рабочего стола. Это более точное отслеживание имеет небольшие издержки на загрузку ЦП, поэтому драйверы должны устанавливать этот флаг только в том случае, если меньшие грязное регионов полезны для драйвера.

Поддерживается начиная с IddCx версии 1.8.
IDDCX_ADAPTER_FLAGS_CAN_PROCESS_FP16
Указывает, что драйвер может обрабатывать поверхности цепочки буферов IEEE с плавающей запятой половинной точности (FP16). Драйвер должен задавать IDDCX_ADAPTER_FLAGS_CAN_PROCESS_FP16 даже для адаптеров, которые не поддерживают HDR или SDR WCG. ОС отправляет hdr или SDR WC-поверхности и режимы драйверу, когда правильное сочетание монитора, целевых возможностей, параметров O и т. д. Поэтому драйвер, который задает IDDCX_ADAPTER_FLAGS_CAN_PROCESS_FP16 , также должен поддерживать функции IddCx версии 1.10, которые позволяют это сделать. Драйвер, поддерживающий HDR10, должен иметь следующие возможности:

* Получение и обработка поверхностей формата FP16 в цепочке буферов.
* Применение указанного белого уровня SDR к курсорам мыши.

Драйверы консоли также должны:

* Используйте новое преобразование цвета матрицы 3x4.
* Примите и используйте метаданные HDR.

Удаленные драйверы также должны:

* При необходимости укажите цветометрию и уровень белого SDR.

Поддерживается начиная с IddCx версии 1.10. См. заметки.
IDDCX_ADAPTER_FLAGS_REMOTE_ALL_TARGET_MODES_MONITOR_COMPATIBLE
Значение: 0x80
Этот флаг можно установить только удаленным драйверам.

Удаленные драйверы могут использовать IDDCX_ADAPTER_FLAGS_ALL_TARGET_MODES_MONITOR_COMPATIBLE , чтобы разрешить им указывать целевые режимы, которые не являются частью дескриптора монитора. Обычно ОПЕРАЦИОННая система выбирает режим на основе того, что он находится в списке монитора и целевого режима, сообщаемых через EVT_IDD_CX_PARSE_MONITOR_DESCRIPTION или EVT_IDD_CX_MONITOR_GET_DEFAULT_DESCRIPTION_MODES , если дескриптор недоступен, и список целевых режимов. Для удаленных сценариев могут потребоваться режимы, которых нет в дескрипторове. Вместо этого драйвер может использовать целевые режимы для их описания и указать ОПЕРАЦИОННОй системе, что они не должны проверяться в режимах мониторинга.

Когда удаленный драйвер устанавливает этот флаг, он указывает, что каждый целевой режим, сообщаемый в вызовах EVT_IDD_CX_MONITOR_QUERY_TARGET_MODES2 и IddCxMonitorUpdateModes2 , гарантированно совместим с подключенным монитором. После этого ОПЕРАЦИОННая система не будет вызывать EVT_IDD_CX_PARSE_MONITOR_DESCRIPTION2 или EVT_IDD_CX_MONITOR_GET_DEFAULT_DESCRIPTION_MODES.

Поддерживается начиная с IddCx версии 1.10. См. заметки.

Комментарии

Чтобы определить, принимает ли ОС параметры драйверов IDDCX_ADAPTER_FLAGS_CAN_PROCESS_FP16 или IDDCX_ADAPTER_FLAGS_ALL_TARGET_MODES_MONITOR_COMPATIBLE, драйвер должен использовать макрос IDD_IS_FUNCTION_AVAILABLE для проверка наличия одного из DDIs версии 1.10, например IDD_IS_FUNCTION_AVAILABLE(IddCxSwapChainReleaseAndAcquireBuffer2). Этот макрос принимает значение TRUE в ОС, поддерживаемой версией 1.10, и false в противном случае. Дополнительные сведения см. в Обновления для IddCx версии 1.10 и более поздних версий.

Требования

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

См. также раздел

IDDCX_ADAPTER_CAPS

IddCxAdapterInitAsync