перечисление 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.608.0 или более поздней версии. Указывает, что буфер должен использоваться в качестве структуры ускорения луча. При использовании расширенных барьеров D3D12 этот флаг служит заменой для D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE , так как буферы больше не имеют макетов и состояний. |
Замечания
Эта перечисление используется элементом флагов
Требования
Требование | Ценность |
---|---|
заголовка | d3d12.h |
См. также
- перечисления Core