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 枚举常量的按位 OR 组合。
pDesc
类型:常 D3D12_RESOURCE_DESC1*
指向描述资源(包括 mip 区域)的 D3D12_RESOURCE_DESC1 结构的指针。
InitialResourceState
资源的初始状态,作为 D3D12_RESOURCE_STATES 枚举常量的按位 OR 组合。
将资源与 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时,必须将 pOptimizedClearValue 设置为 nullptr
。
pProtectedSession
类型:ID3D12ProtectedResourceSession*
指向表示内容保护会话的对象的可选指针。 如果提供,则此会话指示应保护资源。 可以通过调用 ID3D12Device4::CreateProtectedResourceSession来获取 ID3D12ProtectedResourceSession。
riidResource
类型:REFIID
对资源接口的全局唯一标识符(GUID)的引用,以 ppvResource返回。
虽然 riidResource 通常是 ID3D12Resource的 GUID,但它可能是任何接口 GUID。 如果资源对象不支持此 GUID的接口,则创建失败并 E_NOINTERFACE。
ppvResource
类型:void**
指向内存块的可选指针,该块接收指向所创建资源对象的请求接口指针。
ppvResource 可以 nullptr
启用功能测试。 当
返回值
类型: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 |