Метод ID3D12Device8::CreateCommittedResource2 (d3d12.h)
Создает как ресурс, так и неявную кучу (при необходимости для защищенного сеанса), чтобы куча была достаточно большой и содержала весь ресурс, а ресурс сопоставляется с кучей. Пример кода также см. в разделе ID3D12Device::CreateCommittedResource .
Синтаксис
HRESULT CreateCommittedResource2(
const D3D12_HEAP_PROPERTIES *pHeapProperties,
D3D12_HEAP_FLAGS HeapFlags,
const D3D12_RESOURCE_DESC1 *pDesc,
D3D12_RESOURCE_STATES InitialResourceState,
const D3D12_CLEAR_VALUE *pOptimizedClearValue,
ID3D12ProtectedResourceSession *pProtectedSession,
REFIID riidResource,
void **ppvResource
);
Параметры
pHeapProperties
Тип: _In_ const D3D12_HEAP_PROPERTIES*
Указатель на структуру D3D12_HEAP_PROPERTIES , которая предоставляет свойства для кучи ресурса.
HeapFlags
Тип: D3D12_HEAP_FLAGS
Параметры кучи в виде побитового сочетания D3D12_HEAP_FLAGS констант перечисления.
pDesc
Тип: const D3D12_RESOURCE_DESC1*
Указатель на структуру D3D12_RESOURCE_DESC1 , описывающую ресурс, включая регион MIP.
InitialResourceState
Начальное состояние ресурса в виде побитового или сочетания D3D12_RESOURCE_STATES констант перечисления.
При создании ресурса вместе с кучей D3D12_HEAP_TYPE_UPLOAD необходимо задать для Параметра InitialResourceStateзначение D3D12_RESOURCE_STATE_GENERIC_READ.
При создании ресурса вместе с кучей D3D12_HEAP_TYPE_READBACK необходимо задать для Параметра InitialResourceStateзначение D3D12_RESOURCE_STATE_COPY_DEST.
pOptimizedClearValue
Тип: const D3D12_CLEAR_VALUE*
Задает структуру D3D12_CLEAR_VALUE , которая описывает значение по умолчанию для прозрачного цвета.
pOptimizedClearValue указывает значение, для которого наиболее оптимальными являются операции очистки. Если созданный ресурс является текстурой с флагами D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET или D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL , следует выбрать значение, с которым чаще всего будет вызываться операция очистки. Операцию очистки можно вызвать с другими значениями, но эти операции не будут столь эффективными, как если бы значение совпадало со значением, переданным при создании ресурса.
При использовании D3D12_RESOURCE_DIMENSION_BUFFER необходимо задать для параметра pOptimizedClearValue значение nullptr
.
pProtectedSession
Тип: ID3D12ProtectedResourceSession*
Необязательный указатель на объект , представляющий сеанс для защиты содержимого. Если этот сеанс указан, этот сеанс указывает, что ресурс должен быть защищен. Id3D12ProtectedResourceSession можно получить, вызвав ID3D12Device4::CreateProtectedResourceSession.
riidResource
Тип: REFIID
Ссылка на глобальный уникальный идентификатор (GUID) интерфейса ресурса, возвращаемого в ppvResource.
Хотя riidResource чаще всего является GUIDID3D12Resource, он может быть GUID любого интерфейса. Если объект ресурса не поддерживает интерфейс для этого GUID, создание завершается сбоем с E_NOINTERFACE.
ppvResource
Тип: void**
Необязательный указатель на блок памяти, который получает запрошенный указатель интерфейса на созданный объект ресурса.
PpvResource может иметь значение nullptr
, чтобы включить тестирование возможностей. Если ppvResource имеет значение nullptr
, объект не создается, а S_FALSE возвращается, если pDesc является допустимым.
Возвращаемое значение
Тип: HRESULT
Если функция выполняется успешно, она возвращает S_OK. В противном случае возвращается код ошибкиHRESULT.
Возвращаемое значение | Описание |
---|---|
E_OUTOFMEMORY | Недостаточно памяти для создания ресурса. |
Другие возможные возвращаемые значения см. в разделе Коды возврата Direct3D 12 .
Комментарии
Этот метод создает как ресурс, так и кучу, чтобы куча была достаточно большой, чтобы содержать весь ресурс, а ресурс сопоставляется с кучей. Созданная куча называется неявной кучей, так как объект кучи не может быть получен приложением. Перед выпуском окончательной ссылки на ресурс приложение должно убедиться, что GPU больше не будет выполнять чтение и запись в этот ресурс.
Неявная куча становится резидентной для доступа к GPU, прежде чем метод вернет управление в приложение. См. также раздел Место жительства.
Невозможно изменить сопоставление ресурсов GPU VA. См . раздел ID3D12CommandQueue::UpdateTileMappings и ресурсы с плитками тома.
Этот метод может вызываться несколькими потоками одновременно.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | сборка Windows 10 20348 |
Минимальная версия сервера | сборка Windows 10 20348 |
Верхняя часть | d3d12.h |
Библиотека | d3d12.lib |
DLL | d3d12.dll |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по