Перечисление D3D12_RESOURCE_FLAGS (d3d12.h)
Определяет константы, определяющие параметры для работы с ресурсами.
Синтаксис
typedef enum D3D12_RESOURCE_FLAGS {
D3D12_RESOURCE_FLAG_NONE = 0,
D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET = 0x1,
D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL = 0x2,
D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS = 0x4,
D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE = 0x8,
D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER = 0x10,
D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS = 0x20,
D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY = 0x40,
D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY = 0x80,
D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE = 0x100
} ;
Константы
D3D12_RESOURCE_FLAG_NONE Значение: 0 Параметры не указаны. |
D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET Значение: 0x1 Позволяет создать целевое представление отрисовки для ресурса; а также позволяет ресурсу переходить в состояние D3D12_RESOURCE_STATE_RENDER_TARGET. Некоторые архитектуры адаптеров выделяют дополнительную память для текстур с этим флагом, чтобы уменьшить эффективную пропускную способность во время обычной отрисовки. Эта характеристика может быть не полезной для текстур, в которых никогда не выполняется отрисовка, а также не доступна для текстур, сжатых с помощью форматов BC. Приложение не должно устанавливать этот флаг, если отрисовка никогда не будет выполняться. Действуют следующие ограничения и взаимодействия.
|
D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL Значение: 0x2 Позволяет создать представление трафарета глубины для ресурса, а также позволяет ресурсу переходить в состояние D3D12_RESOURCE_STATE_DEPTH_WRITE и (или) D3D12_RESOURCE_STATE_DEPTH_READ. Большинство архитектур адаптеров выделяют дополнительную память для текстур с этим флагом, чтобы уменьшить эффективную пропускную способность и максимизировать оптимизацию для раннего тестирования глубины. Приложение не должно устанавливать этот флаг, если операции глубины никогда не будут выполняться. Действуют следующие ограничения и взаимодействия.
|
D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS Значение: 0x4 Разрешает создание неупорядоченного представления доступа для ресурса, а также переход ресурса в состояние D3D12_RESOURCE_STATE_UNORDERED_ACCESS. Некоторые архитектуры адаптеров должны использовать менее эффективные макеты текстур, чтобы обеспечить эту функциональность. Если текстура редко используется для неупорядоченного доступа, возможно, стоит создать две текстуры и скопировать между ними. Одна текстура будет иметь этот флаг, а другая — нет. Приложению следует избегать установки этого флага, если неупорядоченные операции доступа никогда не будут выполняться. Действуют следующие ограничения и взаимодействия.
|
D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE Значение: 0x8 Запрещает создание представления ресурсов шейдера для ресурса, а также отключает переход ресурса в состояние D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE или D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE. Некоторые архитектуры адаптеров получают пропускную способность для текстур трафаретов глубины, если представления ресурсов шейдера исключены. Если текстура редко используется для ресурсов шейдера, возможно, стоит скопировать две текстуры между ними. Одна текстура будет иметь этот флаг, а другая — нет. Приложение должно установить этот флаг, если текстуры трафарета глубины никогда не будут использоваться из представлений ресурсов шейдера. Действуют следующие ограничения и взаимодействия.
|
D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER Значение: 0x10 Позволяет использовать ресурс для данных между адаптерами, а также функций, включенных D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS. Ресурсы перекрестных адаптеров обычно исключают методы, которые снижают эффективную пропускную способность текстур во время использования, а для некоторых архитектур адаптеров может потребоваться другое поведение кэширования. Приложению следует избегать установки этого флага, если данные ресурса никогда не будут использоваться с другим адаптером. Действуют следующие ограничения и взаимодействия.
|
D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS Значение: 0x20 Позволяет одновременно обращаться к ресурсу несколькими разными очередями, устройствами или процессами (например, позволяет использовать ресурс с переходами ResourceBarrier , выполняемыми в нескольких списках команд, выполняемых одновременно). Одновременный доступ позволяет использовать несколько модулей чтения и один модуль записи, если модуль записи одновременно не изменяет тексели, к которым обращаются другие читатели. Некоторые архитектуры адаптеров не могут использовать методы для уменьшения эффективной пропускной способности текстур во время использования. Однако приложению следует избегать установки этого флага, если во время частых неперекрывающихся операций записи в текстуры не требуется несколько модулей чтения. Использование этого флага может поставить под угрозу границы ресурсов для выполнения ожиданий и предотвратить использование сжатия с ресурсом. Действуют следующие ограничения и взаимодействия.
|
D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY Значение: 0x40 Предполагается, что этот ресурс может использоваться только в качестве опорной рамки декодирования. Он может быть записан или прочитан только операцией декодирования видео. D3D12_VIDEO_DECODE_TIER_1 и D3D12_VIDEO_DECODE_TIER_2 могут сообщать о D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_REFERENCE_ONLY_ALLOCATIONS_REQUIRED в флаге конфигурации структуры D3D12_FEATURE_DATA_VIDEO_DECODE_SUPPORT . В этом случае приложение должно выделить опорные кадры с флагом ресурса D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY . D3D12_VIDEO_DECODE_TIER_3 не должны задавать [D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_REFERENCE_ONLY_ALLOCATIONS_REQUIRED] (.. Флаг конфигурации /d3d12video/ne-d3d12video-d3d12_video_decode_configuration_flags) и не должен требовать использования этого флага ресурса. |
D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY Значение: 0x80 Указывает, что этот ресурс может использоваться только в качестве опорной рамки кодирования. Он может быть записан или прочитан только операцией кодирования видео. |
D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE Значение: 0x100 Зарезервировано для последующего использования. Не используйте. Требуется пакет SDK для DirectX 12 Agility 1.7 или более поздней версии. Указывает, что буфер должен использоваться в качестве структуры ускорения луча. |
Комментарии
Это перечисление используется элементом FlagsD3D12_RESOURCE_DESC.
Требования
Требование | Значение |
---|---|
Заголовок | d3d12.h |