перечисление 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. Этот тип кучи лучше всего подходит для данных cpu-write-once, GPU-read-once; но однократное чтение GPU является более строгим, чем необходимо. Gpu read-once-or-from-cache является приемлемым вариантом использования данных; но такое использование трудно оценить из-за разных конструкций и размеров кэша GPU. Если вы сомневаетесь, придерживайтесь определения gpu-read-once или профилируйте разницу между копированием данных в кучу _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 |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по