Метод 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.
При создании ресурса вместе с кучей
pOptimizedClearValue
Тип: константа D3D12_CLEAR_VALUE*
Указывает структуру D3D12_CLEAR_VALUE, описывающую значение по умолчанию для четкого цвета.
pOptimizedClearValue указывает значение, для которого наиболее оптимальные операции очистки. Когда созданный ресурс является текстурой с флагами D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET или D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL, следует выбрать значение, с помощью которого обычно вызывается операция очистки. Вы можете вызвать операцию очистки с другими значениями, но эти операции не будут столь эффективными, как при совпадении значения, переданного в создание ресурса.
При использовании D3D12_RESOURCE_DIMENSION_BUFFERнеобходимо задать для nullptr
значение pOptimizedClearValue.
pProtectedSession
Тип: ID3D12ProtectedResourceSession*
Необязательный указатель на объект, представляющий сеанс для защиты содержимого. Если этот сеанс указан, этот сеанс указывает, что ресурс должен быть защищен. Вы можете получить
riidResource
Тип: REFIID
Ссылка на глобальный уникальный идентификатор (GUID) интерфейса ресурса, возвращаемого в ppvResource.
Хотя riidResource чаще всего является GUIDID3D12Resource, это может быть GUID любого интерфейса. Если объект ресурса не поддерживает интерфейс для этого GUID, создание завершается сбоем с E_NOINTERFACE.
ppvResource
Тип: void**
Необязательный указатель на блок памяти, который получает запрошенный указатель интерфейса на созданный объект ресурса.
ppvResource можно nullptr
, чтобы включить тестирование возможностей. Если ppvResource nullptr
, объект не создается и S_FALSE возвращается, когда pDesc.
Возвращаемое значение
Тип: HRESULT
Если функция успешно выполнена, она возвращает S_OK. В противном случае возвращается кодошибки
Возвращаемое значение | Описание |
---|---|
E_OUTOFMEMORY | Для создания ресурса недостаточно памяти. |
См. коды возврата Direct3D 12 для других возможных возвращаемых значений.
Замечания
Этот метод создает как ресурс, так и кучу, чтобы куча была достаточно большой, чтобы содержать весь ресурс, и ресурс сопоставляется с кучей. Созданная куча называется неявной кучей, так как объект кучи не может быть получен приложением. Перед выпуском окончательной ссылки на ресурс приложение должно убедиться, что GPU больше не будет читать и не записывать в этот ресурс.
Неявная куча создается для доступа к GPU перед возвратом метода в приложение. См. также резиденции.
Не удается изменить сопоставление виртуальных процессоров GPU ресурсов. См. раздел ID3D12CommandQueue::UpdateTileMappings и ресурсов с плитками томов.
Этот метод может вызываться несколькими потоками одновременно.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Сборка Windows 10 20348 |
минимальный поддерживаемый сервер | Сборка Windows 10 20348 |
заголовка | d3d12.h |
библиотеки |
d3d12.lib |
DLL | d3d12.dll |