ID3D12Device3::EnqueueMakeResident 方法 (d3d12.h)

异步使对象驻留在设备中。

语法

HRESULT EnqueueMakeResident(
       D3D12_RESIDENCY_FLAGS Flags,
       UINT                  NumObjects,
  [in] ID3D12Pageable        * const *ppObjects,
  [in] ID3D12Fence           *pFenceToSignal,
       UINT64                FenceValueToSignal
);

参数

Flags

类型: D3D12_RESIDENCY_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

另请参阅

ID3D12Device

ID3D12Device3