перечисление 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 позволяет вызывающей объекту выделять ссылочные и выходные текстуры в виде отдельных двухмерных ресурсов текстур. Приложение больше не требуется для выделения массивов текстур, но это необходимо поддерживать. Декодирование уровня 2 не имеет физически непрерывных требований. Оборудование может иметь непрерывные требования к va (ускорение декодирования видео) на этом уровне, и приложения должны создавать массив текстур для этой поддержки. Чтобы включить уровень 2, зарезервированные ресурсы, также называемые плитками или разреженными ресурсами, должны поддерживаться для форматов ссылок и выходных данных, поддерживаемых драйвером. Это можно сделать двумя способами: * Если оборудование поддерживает gpu VA для каждого процесса и имеет шаблон плитки, который поддерживает требования к фигуре плитки зарезервированных ресурсов, можно использовать уже существующий механизм ресурсов D3D12. * Если оборудование поддерживает gpu va для каждого процесса, но шаблон плитки не соответствует требованиям к фигуре плитки зарезервированных ресурсов, а оборудование может поддерживать сопоставление плиток, которое сопоставляет и отменяет сопоставление плиток для всего подресурса для каждого уровня планарного ресурса, который является отдельным подресурсом в D3D12, механизм требует, чтобы они могли сопоставляться с плитками и распаковать плитки независимо друг от друга. Обратите внимание, что этот механизм находится в разработке, но будет замаскировать фигуру плитки в API. Характеристики оборудования, которые помещают оборудование на уровень 2: * Не требуется физически непрерывная память. * Оборудование имеет непрерывное требование va. * Декодирование оборудования может иметь специальный формат плитки или другое определение макета памяти, которое несовместимо с другими подсистемами или видео операций. Требования к сжатому входному буферу совпадают с требованиями уровня 1. |
D3D12DDI_VIDEO_DECODE_TIER_0020_3 Декодирование видео уровня 3. Этот уровень поддерживается в WDDM 2.3. Декодирование уровня 3 позволяет вызывающей объекту выделять ссылочные и выходные текстуры в качестве стандартных двухмерных ресурсов текстур. Приложение больше не требуется для выделения массивов текстур, но это необходимо поддерживать. Декодирование уровня 3 не требует физически непрерывных выделений. Оборудование больше не должно требовать D3D12DDI_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY, но по-прежнему должно поддерживать его. При запросе D3D12DDI_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY член структуры D3D12DDI_VIDEO_DECODE_SUPPORT_DATA_0020 должен иметь значение FALSE. Чтобы включить уровень 3, зарезервированные ресурсы (также называемые плиточными или разреженными) должны поддерживаться для форматов ссылок и выходных данных, поддерживаемых драйвером. Это может случиться в двух следующих сценариях. * Если оборудование поддерживает gpu VA для каждого процесса и имеет шаблон плитки, который поддерживает требования к фигуре плитки зарезервированных ресурсов, можно использовать уже существующий механизм ресурсов D3D12. * Если оборудование поддерживает gpu va для каждого процесса, но шаблон плитки не соответствует требованиям к фигуре плитки зарезервированных ресурсов, а оборудование может поддерживать сопоставление плиток, которое сопоставляет и отменяет сопоставление плиток для всего подресурса для каждого уровня планарного ресурса, который является отдельным подресурсом в 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 (main системной памяти) или L1 (для dGPU, видеопамяти). | Обязательно | Обязательно | Обязательно |
Требуются сжатые битовые данные, чтобы срезы располагались в одном буфере без разрывов между срезами. | Обязательно | Обязательно | Обязательно |
Смещение до первого среза в сжатом входном буфере должно быть выровнено по 256 байтам. | Обязательно | Обязательно | Обязательно |
Драйверы не должны выполнять дополнительные копии сжатых битовых данных. | Обязательно | Обязательно | Обязательно |
Требования
Требование | Значение |
---|---|
Заголовок | d3d12umddi.h (включая D3d12umddi.h) |
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по