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


перечисление D3D12DDI_VIDEO_DECODE_TIER_0020 (d3d12umddi.h)

Указывает уровень декодирование видео. Декодирование уровней видео определяет набор возможностей оборудования. Чем выше уровень, тем выше оборудование.

Синтаксис

typedef enum D3D12DDI_VIDEO_DECODE_TIER_0020 {
  D3D12DDI_VIDEO_DECODE_TIER_0020_NOT_SUPPORTED,
  D3D12DDI_VIDEO_DECODE_TIER_0020_1,
  D3D12DDI_VIDEO_DECODE_TIER_0020_2,
  D3D12DDI_VIDEO_DECODE_TIER_0020_3
} ;

Константы

 
D3D12DDI_VIDEO_DECODE_TIER_0020_NOT_SUPPORTED
Профиль декодирования не поддерживается.
D3D12DDI_VIDEO_DECODE_TIER_0020_1
Декодирование видео уровня 1. В декодировании видео уровня 1 оборудование требует декодировать выходные текстуры и ссылочные текстуры для декодирования потока физически смежным при ссылках на видео операции.

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

Характеристики оборудования, размещающие оборудование на уровне 1:

* Для декодирования оборудования требуется физическая непрерывная память для декодирования выходных данных и ссылок. Входные буферы с сжатым битовым потоком также могут потребоваться физически смежные.

* Аппаратное декодирование может иметь специальный формат набивки или другое определение макета памяти, несовместимое с другими двигателями или видеозаготовками.

Требования к сжатым входным буферам:

* Все срезы для заданного кадра должны быть размещены в порядке и непрерывно (между срезами нет пробелов).

* Драйверы не должны выполнять дополнительные копии данных битового потока.

* Первый срез должен начинаться с границы 128-байтов.

* Оборудование должно поддерживать декодирование из буфера, выделенного из D3D12DDI_MEMORY_POOL_L0 (всегда системная память).

* Оборудование должно поддерживать декодирование из D3D12DDI_MEMORY_POOL_L1 (пул по умолчанию) с D3D12DDI_CPU_PAGE_PROPERTY_NOT_AVAILABLE.
D3D12DDI_VIDEO_DECODE_TIER_0020_2
Декодирование видео уровня 2. Декодирование уровня 2 позволяет вызывающему объекту выделять ссылочные и выходные текстуры в виде отдельных ресурсов текстур 2D. Приложение больше не требуется для выделения массивов текстур, но это необходимо поддерживать.

Декодирование уровня 2 не имеет физически смежных требований. Оборудование может иметь требования к непрерывному декодированию va (ускорение декодирования видео) на этом уровне, а приложениям требуется создать массив текстур для поддержки этого.

Чтобы включить зарезервированные ресурсы уровня 2, которые также называются ресурсами с плитками или разреженными ресурсами, должны поддерживаться для ссылочных и выходных форматов, поддерживаемых драйвером. Это можно сделать двумя способами:

* Если оборудование поддерживает va-process GPU и имеет шаблон плитки, поддерживающий требования к фигуре плитки зарезервированных ресурсов, можно использовать уже существующий механизм ресурсов D3D12.

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

Характеристики оборудования, размещающие оборудование на уровне 2:

* Не требует физической непрерывной памяти.

* Оборудование имеет обязательное требование VA.

* Аппаратное декодирование может иметь специальный формат набивки или другое определение макета памяти, несовместимое с другими двигателями или видеозаготовками.

Требования к сжатому входному буферу совпадают с требованиями уровня 1.
D3D12DDI_VIDEO_DECODE_TIER_0020_3
Декодирование видео уровня 3. Этот уровень поддерживается в WDDM 2.3.

Декодирование уровня 3 позволяет вызывающему объекту выделять ссылочные и выходные текстуры как стандартные ресурсы текстур 2D. Приложение больше не требуется для выделения массивов текстур, но это необходимо поддерживать.

Декодирование уровня 3 не требует физически смежных выделений. Оборудование больше не должно требовать D3D12DDI_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY, но по-прежнему должно поддерживать его. При запросе элемент D3D12DDI_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY структуры D3D12DDI_VIDEO_DECODE_SUPPORT_DATA_0020 должен иметь значение FALSE.

Чтобы включить уровень 3, зарезервированные ресурсы (также называемые ресурсами с плитками или разреженными) должны поддерживаться для ссылочных и выходных форматов, поддерживаемых драйвером. Это может произойти двумя способами:

* Если оборудование поддерживает va-process GPU и имеет шаблон плитки, поддерживающий требования к фигуре плитки зарезервированных ресурсов, можно использовать уже существующий механизм ресурсов D3D12.

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

Требования к сжатому входному буферу совпадают с требованиями уровня 1.

Замечания

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

В следующей таблице показаны различные возможности для каждого уровня:

Способность Уровень 1 Уровень 2 Уровень 3
Поддерживает отдельные ссылочные кадры и выходные данные. Нет Нет Обязательно
Поддерживает ссылки и выделяется в виде массива текстур. Обязательно Обязательно Обязательно
При необходимости может потребоваться флаг ресурса REFERENCE_ONLY. Обратите внимание, что все уровни необходимы для работы с флагом, даже если его не требуется. Необязательный Необязательный Нет
Поддержка ссылок, выделенных REFERENCE_ONLY, даже если ограничения не требуют его. Обязательно Обязательно Обязательно
Поддерживает ресурсы с плитками или разреженными для ссылок, входных и выходных данных. Нет Обязательно Обязательно
Сжатые буферы входных данных битового потока могут быть выделены как L0 (основная системная память) или L1 (для dGPU, памяти видео). Обязательно Обязательно Обязательно
Требуется сжатые данные битового потока для размещения срезов в одном выделении буфера без пробелов между срезами. Обязательно Обязательно Обязательно
Смещение к первому срезу в сжатом входном буфере должно быть выровнено 256 байтов. Обязательно Обязательно Обязательно
Драйверы не должны выполнять дополнительные копии сжатых данных битового потока. Обязательно Обязательно Обязательно

Требования

Требование Ценность
заголовка d3d12umddi.h (include D3d12umddi.h)