ID3D12Device3::EnqueueMakeResident 方法 (d3d12.h)
异步使对象驻留在设备中。
语法
HRESULT EnqueueMakeResident(
D3D12_RESIDENCY_FLAGS Flags,
UINT NumObjects,
[in] ID3D12Pageable * const *ppObjects,
[in] ID3D12Fence *pFenceToSignal,
UINT64 FenceValueToSignal
);
参数
Flags
控制如果应用程序超出其内存预算,是否应使对象驻留。
NumObjects
类型: UINT
ppObjects 数组中要为设备驻留的对象数。
[in] ppObjects
类型: ID3D12Pageable*
指向内存块的指针;包含对象的 ID3D12Pageable 接口指针数组。
尽管大多数 D3D12 对象继承自 ID3D12Pageable,但驻留更改仅在以下方面受支持:
- 描述符堆
- 堆
- 提交的资源
- 查询堆
[in] pFenceToSignal
类型: ID3D12Fence*
指向用于在工作完成时发出信号的围栏的指针。
FenceValueToSignal
类型: UINT64
工作完成后,向围栏发出信号的无符号 64 位值。
返回值
类型: HRESULT
此方法返回 Direct3D 12 返回代码之一。
注解
EnqueueMakeResident 执行与 MakeResident 相同的操作,但不会等待资源成为常驻资源。 相反, EnqueueMakeResident 在工作完成时发出栅栏的信号。
系统不允许在发出围栏信号之前,使用 EnqueueMakeResident 引用资源的工作。 相反,保证对此 API 的调用按顺序发出相应围栏的信号,因此可以在调用到调用时使用相同的围栏。
要求
要求 | 值 |
---|---|
目标平台 | Windows |
标头 | d3d12.h |
Library | D3D12.lib |
DLL | D3D12.dll |