перечисление 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) |