перечисление D3D12_HEAP_TYPE (d3d12.h)
Указывает тип кучи. При резиденте куча находится в определенном пуле физической памяти с определенными свойствами кэша ЦП.
Синтаксис
typedef enum D3D12_HEAP_TYPE {
D3D12_HEAP_TYPE_DEFAULT = 1,
D3D12_HEAP_TYPE_UPLOAD = 2,
D3D12_HEAP_TYPE_READBACK = 3,
D3D12_HEAP_TYPE_CUSTOM = 4,
D3D12_HEAP_TYPE_GPU_UPLOAD
} ;
Константы
D3D12_HEAP_TYPE_DEFAULT Значение: 1 Указывает кучу по умолчанию. Этот тип кучи имеет большую пропускную способность для GPU, но не может предоставлять доступ к ЦП. GPU может считывать и записывать в память из этого пула, а также могут быть изменены барьеры перехода ресурсов. Ожидается, что большинство куч и ресурсов находятся здесь, и обычно заполняются ресурсами в кучах отправки. |
D3D12_HEAP_TYPE_UPLOAD Значение: 2 Указывает кучу, используемую для отправки. Этот тип кучи имеет доступ к ЦП, оптимизированный для отправки на GPU, но не имеет максимальной пропускной способности для GPU. Этот тип кучи лучше всего подходит для данных ЦП-записи один раз, GPU-read-once; но GPU-чтение один раз является более строгим, чем необходимо. GPU-read-once-or-from-cache является приемлемым вариантом использования для данных; но такое использование трудно судить из-за разных конструкций и размеров кэша GPU. Если сомневается, придерживайтесь определения GPU-read-once или профилируйте разницу во многих GPU между копированием данных в _DEFAULT кучу и чтение данных из _UPLOAD кучи. Ресурсы в этой куче должны быть созданы с D3D12_RESOURCE_STATE_GENERIC_READ и не могут быть изменены от этого. Адрес ЦП для таких куч обычно не эффективен для операций чтения ЦП. Ниже приведены типичные варианты использования _UPLOAD куч:
Ниже, скорее всего, не рекомендуется использовать кучу _UPLOAD:
|
D3D12_HEAP_TYPE_READBACK Значение: 3 Указывает кучу, используемую для чтения обратно. Этот тип кучи имеет доступ к ЦП, оптимизированный для чтения данных из GPU, но не имеет максимальной пропускной способности для GPU. Этот тип кучи лучше всего подходит для данных, доступных для записи gpu, ЦП с возможностью чтения. Поведение кэша ЦП является обратной записью, что способствует нескольким чтениям ЦП под кэша. Ресурсы в этой куче должны быть созданы с D3D12_RESOURCE_STATE_COPY_DEST и не могут быть изменены. |
D3D12_HEAP_TYPE_CUSTOM Значение: 4 Указывает настраиваемую кучу. Приложение может указать свойства пула памяти и кэша ЦП напрямую, что может быть полезно для оптимизации UMA, нескольких ядр, нескольких адаптеров или других особых случаев. Для этого приложение должно понять архитектуру адаптера, чтобы сделать правильный выбор. Дополнительные сведения см. в разделе D3D12_FEATURE_ARCHITECTURE, D3D12_FEATURE_DATA_ARCHITECTUREи GetCustomHeapProperties. |
Замечания
Эта перечисление используется следующими элементами API:
Типы кучи делятся на две категории: абстрактные типы кучи и пользовательские типы куч.Ниже приведены абстрактные типы кучи:
- D3D12_HEAP_TYPE_DEFAULT
- D3D12_HEAP_TYPE_UPLOAD
- D3D12_HEAP_TYPE_READBACK
- D3D12_HEAP_TYPE_CUSTOM
Обратите внимание, что текстуры (в отличие от буферов) не могут быть типом UPLOAD или READBACK.
Требования
Требование | Ценность |
---|---|
заголовка | d3d12.h |